At the end of this guide, you should have a clear understanding of what Ethereum Improvement Proposals (EIPs) are, their purpose, and everything you need to know to submit your proposal. We'll also cover the various development stages an EIP goes through before it becomes a standard.
Let’s get into it…
An EIP is a design document in the Ethereum ecosystem that describes and proposes new features or changes to the Ethereum blockchain or ecosystem. It provides detailed technical specifications and the motivation behind the proposed changes.
These changes could involve processes like those in EIP-5757, which defines how external resources are added to EIPs. Or, more significant changes such as the blockchain hard fork proposed in EIP-779 in response to the 2016 DAO hack, which resulted in the Ethereum blockchain splitting into two blockchains: Ethereum Classic and Ethereum.
The purpose of EIPs is to ensure that any changes or improvements to Ethereum are transparent, thoroughly discussed, vetted, and documented by the community.
Let's take a look at a more detailed explanation of the purpose of EIPs.
EIPs help establish standards for different aspects of the Ethereum ecosystem which encourages compatibility and interoperability (the ability for various components within the Ethereum ecosystem to interact together effectively).
For example, EIP-20 defines the standard for ERC-20 tokens, ensuring tokens follow a consistent structure and can be easily integrated into wallets, exchanges, and other platforms.
Similarly, EIP-137 defines the specifications for the Ethereum Name Service (ENS). It allows users to use human-readable names instead of addresses which improves both user experience (UX) and interoperability within the Ethereum ecosystem and external platforms.
EIPs serve as technical specification documents for new features or processes within Ethereum and a historical record of how the Ethereum blockchain has grown.
The EIP repository on GitHub and Ethereum’s official website have a list of all EIPs proposed and all features implemented since their creation in 2015.
EIPs make it possible for anyone in the Ethereum community to contribute to Ethereum’s development, even without having to write code. Just commenting and sharing your opinion about a proposal could go a long way in shaping the entire ecosystem.
When Ethereum transitioned from Proof-of-Work (PoW) to Proof-of-Stake (PoS) in the Ethereum 2.0 upgrade, multiple EIPs were required, and all Ethereum clients had to confirm they had implemented all required EIPs. You’ll typically see the required EIPs in the Requires
section of the EIP document.
EIPs go through several stages (which we’ll discuss in the later part of this guide) before adoption. Each, designed to ensure community participation and it is in the best interest of the network.
EIPs were introduced in October 2015 by some of Ethereum’s earliest contributors, including Vitalik Buterin, Martin Becze, Gavin Wood, and others.
The idea was based on the Bitcoin Improvement Proposal (BIP) and has since been refined, even though the core purpose remains the same — a formal process for proposing, discussing, and implementing changes to Ethereum's protocol, smart contract standards, and ecosystem.
The first EIP (EIP-1), created in 2015, laid out the guidelines for creating and managing these proposals. Since then, hundreds of EIPs have been proposed. Some became key parts of the Ethereum protocol while others were rejected or became stagnant. We’ll see the different stages of the EIP proposal and approval process later in this article.
EIP editors review proposals to make sure they meet the minimum requirement for a standard EIP. They check for technical soundness, grammar, spelling, code style, etc. Anyone can apply to become an EIP editor following the EIP editor's handbook.
The EIP number is the unique number assigned to every EIP. It’s usually in the format EIP-N, where “N” is the assigned number.
In most cases, the EIP number is derived from the first Pull Request or Issue for that proposal on the EIP GitHub repository. For example, the number for EIP-20 was derived from the first issue number as shown below:
However, as the EIP idea develops, and discussions continue in the Ethereum Magicians Forum, the final decision on what number to assign to the EIP largely depends on the EIP editors. This is why EIP numbers aren’t necessarily sequential as you can see in the screenshot below from the EIPs website.
There are three types of EIPs. We’ll discuss each of them in detail.
A Standard Track EIP describes changes that impact most or all Ethereum implementations. This can include changes to the network protocol, block or transaction validity rules, application standards/conventions, or anything affecting the interoperability of Ethereum applications.
Components of a Standard Track EIP
A Standard Track EIP typically includes:
Standard Track EIPs are separated into four categories based on their impact on the network.
Core
alter existing fundamental rules and usually require all nodes on the network to upgrade their software to maintain consensus. A good example is how EIP-1559 introduced a base fee mechanism with an optional tip for miners from the auction-style fee market. That upgrade made it impossible for clients to validate new blocks if they didn’t upgrade.Networking
are EIPs concerned with how nodes communicate with each other. They do not require all clients to upgrade to maintain consensus. However, while Nodes that do not upgrade can still participate in the network, they may not benefit from the new features.Interface
EIPs are focused on standardizing and improving how applications and tools interact with Ethereum, leading to better UX, developer experience (DX), and overall ecosystem interoperability. They can be adopted incrementally without major impacts on a client’s ability to use the network. For instance, EIP-2255 proposes a standard interface for how wallets request and check permissions on the client side.ERC
EIPs define standards for application-level functionality and establish common interfaces and behaviors for smart contracts and other applications on the Ethereum blockchain. One of the most well known ERCs is the ERC-20 (EIP-20) which defines standards for how tokens are created.
Meta EIPs propose improvements to Ethereum processes and guidelines–either to change them or add to them. Though they don’t function at the protocol level, they are just as important as the Standard Track EIPs.
Even though they don’t propose changes to the protocol, they still require community consensus and become compulsory standards that all participants typically follow after implementation. One example of a Meta EIP is EIP-1 which proposes guidelines for EIPs that are generally followed by the community.
Other examples of Meta EIPs include:
Informational EIPs provide guidelines or general information to the Ethereum community without proposing new features. Informational EIPs do not necessarily represent community consensus and can be ignored or followed at the user's discretion.
An example is EIP-6953, which outlines the various network upgrade activation triggers that have been used over time — the goal is to provide a repository that shows a pattern for how network upgrades have been done throughout the history of Ethereum.
Now that we have a clear understanding of what EIPs are and the types of EIPs, let’s explore the proposal process from the start to when it gets approved.
Anyone can create an EIP, as long as they have a GitHub account and follow the requirements.
EIPs go through several stages before they become part of Ethereum. While some EIPs make it to the final stage, others do not.
The development process is rigorous and the duration varies widely depending on the complexity of the proposal, the level of community interest and support, and the current priorities of the Ethereum development community.
Here is a diagram illustrating the entire stages of the EIP development on a high level:
Let’s take a closer look at all the stages:
This stage is about bringing your idea to life. You just thought of a ground-breaking idea that could potentially make Ethereum better (let’s say your idea introduces cross-blockchain interoperability 🙂). You:
This is only the idea stage and it’s not tracked in the EIP repository yet. It’s now your responsibility to gather support from the community for your EIP idea.
Your EIP will move from the idea stage to the draft stage after it has gathered enough support, the community decides it’s a good fit, and it’s properly formatted. At this point, an EIP editor assigns an EIP number and it is merged into the EIP repository. Your EIP will now be formally tracked.
Once your EIP is a draft, you can update it and prepare it for peer review. This is also where you should get more eyes on the proposal. At this point, the draft is more stable and the community will likely want to commit to contributing to it. Review lasts a minimum of 45 days to allow time for proper feedback. If you gather enough support and the review goes successfully, an EIP editor will move it to the next stage in the process: Last Call
.
Last Call is the final review stage for an EIP before it’s moved to Final
. At this stage, there is no expectation for major changes to the EIP. If there is a major change, it will revert back to Review status. Here, an EIP editor assigns the Last Call status and sets a review end date (last-call-deadline
), usually 14 days in the future.
At this stage, the EIP cannot be changed, and it becomes a candidate for inclusion in an upcoming Ethereum upgrade.
However, it’s not automatically added to the next upgrade. Core devs, EIP authors, and the general community will discuss (in the weekly AllCoreDev meeting and the Ethereum Magician Forum) and select the EIPs that are suitable for specific upgrades. These EIPs are then thoroughly tested, bundled, and scheduled for a network upgrade.
If an EIP has no activity for 6-months or more while in Draft
, Review
, or Last Call
status, it becomes Stagnant
. However, EIP authors or editors can return the status to active again by moving it back to Draft
or its previous status. Otherwise, it remains Stagnant indefinitely.
An EIP is marked Withdrawn
if its authors formally withdraw it. This status is permanent, and the EIP number cannot be reused. If you are interested in pursuing the same idea in the future, you must submit a new proposal. Here is an example of an EIP with the withdrawn status and the reason.
This status is for EIPs intended to be continuously updated without reaching finality. At the time of this writing, two EIPs have this tag: EIP-1 and EIP-5069. Both are in the Meta category of EIPs.
In this article, we’ve discussed what EIPs are, how they are relevant in the Ethereum ecosystem, and how to propose your own EIP.
Here are the highlights of what we discussed: