We, the Ethereum Improvement Proposal (EIP) Editors, maintain a repository of documents related to the Ethereum protocol and its ecosystem. Consider us both archivists making sure the community as a whole does not lose its history, and a publisher making sure interested parties can stay up-to-date with the latest proposals.
Our mission is to serve the broad Ethereum community, both present and future, by:
Publishing Proposals: Making proposals, including their history and associated discussions available over the long term at no cost.
By doing so, we foster transparency and ensure that valuable insights from past proposals are accessible for future decision-making and learning.
Facilitating Discussion: Providing a forum for discussing proposals open to anyone who wants to participate civilly.
By encouraging open dialogue and collaboration, we aim to harness the collective knowledge and expertise of the Ethereum community in shaping proposals.
Upholding Quality: Upholding a measure of minimally-subjective quality for each proposal as defined by its target audience.
By adhering to defined criteria, we promote the development of high-quality and relevant proposals that drive the evolution of Ethereum.
On the other hand, we do not:
Decide Winners: If there are multiple competing proposals, we will publish all of them. We are not in the business of deciding what is the right path for Ethereum, nor do we believe that there is One True Way to satisfy a need.
Assert Correctness: While we might offer technical feedback from time to time, we are not experts nor do we vet every proposal in depth. Publishing a proposal is not an endorsement or a statement of technical soundness.
Manage: We do not track implementation status, schedule work, or set fork dates or contents.
Track Registries: We want all proposals to eventually become immutable, but a registry will never get there if anyone can keep adding items. To be clear, exhaustive and/or static lists are fine.
Documenting all of the things we would not do is impossible, and the above are just a few examples. We reserve the right to do less work whenever possible!
We, the Editors, consist of some number of EIP Editors and one Keeper elected by and from the EIP Editors.
EIP Editors are responsible for governing the EIP process itself, electing a Keeper, and stewarding proposals in immutable statuses.
The Keeper's two responsibilities (above their EIP Editor duties) are: to determine when rough consensus has been reached on a matter, and determine when/if it is appropriate to re-open an already settled matter.
Working Groups are semi-autonomous bodies focused on proposals related to specific topics or areas. They are bound by the policies set by the EIP Editors, but otherwise are responsible for defining their own governance, membership, and workflows. Working Groups steward proposals not in immutable statuses.
EIP Editors may be members of Working Groups, though their editorship does not imply any special privilege in the Working Group.
Working Groups are self-organizing, and can have their formal privileges granted or revoked by the EIP Editors as needed. Working Groups are free to separate from this organization at any time.
Aside from defining reasonable policies, EIP Editors cannot interfere in the day-to-day running of a Working Group.
Anyone may apply to join as an EIP Editor. Specific eligibility requirements are left to individual current EIP Editors, but the general requirements are:
EIP Editors are expected to meet these requirements throughout their tenure, and not doing so is grounds for removal. Any member may delegate some or all of their responsibilities/powers to tools and/or to other people.
Membership requirements for Working Groups are defined in their respective charters.
For decisions that are unlikely to be controversial—especially for decisions affecting a single proposal—an EIP Editor may choose whatever option they deem appropriate in accordance with our mission.
Electing a Keeper, adding/removing EIP Editors, and any possibly-controversial decisions must all be made using variations of this formal process.
For any matter requiring a decision, a call for input must be published in writing to the usual channels frequented by EIP Editors.
Initially, to establish a valid quorum, all EIP Editors must express their opinion (or vote where appropriate) on the matter under consideration.
After thirty days from the call for input, if not all EIP Editors have responded, the quorum is reduced to the Editors that have responded. This deadline may be extended in exceptional situations.
Any EIP Editor can call for an election for Keeper. The EIP Editor with the most votes once quorum is met is named Keeper until the next election completes. If there is a tie, we'll randomly choose between the EIP Editors with the most votes. Business continues as usual while the election is running.
An EIP Editor is added once quorum is met, provided no current EIP Editor objects.
An EIP Editor is removed once quorum is met, provided no current EIP Editor (aside from the one being removed) objects. If the removed Editor was also the Keeper, an election for a new Keeper begins immediately.
All other decisions are made through a "rough consensus" process. This does not require all EIP Editors to agree, although this is preferred. In general, the dominant view of the Editors shall prevail. Dominance, in this process, is not determined by persistence or volume but rather a more general sense of agreement. Note that 51% does not mean "rough consensus" has been reached, and 99% is better than rough. It is up to the Keeper to determine if rough consensus has been reached. Every EIP Editor is entitled to have their opinion heard and understood before the Keeper makes that determination.
No one, not the EIP Editors and certainly not the Keeper, holds veto powers (except when adding/removing an Editor as defined above.) It is imperative that the EIP process evolve, albeit cautiously.
This section has been adapted from RFC 2418.
Proposals are assigned an identifier by the EIP Editors before being accepted into a Working Group.
The steward of a proposal defines the rules it must follow and is responsible for enforcing those rules. The steward is distinct from the authors of a proposal, who do the important bits, like writing the proposal in the first place.
When created, a proposal is first stewarded by a Working Group. When the proposal moves into an immutable status (more on that later), it changes hands and enters the stewardship of the EIP Editors.
The stewards of a proposal make sure that it is (or at least eventually becomes):
Stewards may make minor changes to proposals to keep things moving smoothly, but they should not make normative changes without author consent.
Each proposal moves through several statuses as it progresses through the editorial process. Each Working Group defines the statuses for proposals relevant to their topic, and how a proposal moves between them.
As alluded to earlier, there are two types of statuses: mutable and immutable. The ultimate goal of every Working Group is to have their proposals graduate to an immutable status.
Mutable statuses are assigned to proposals in active development. Code review is not necessarily required for changes while in a mutable status, although individual Working Groups may mandate otherwise. Proposals in mutable statuses are stewarded by their respective Working Groups.
When ready, a proposal can be moved into an immutable status. Proposals in immutable statuses do not change, except for errata and markup/formatting. These proposals are either completed and ready for use, or permanently withdrawn. Proposals in immutable statuses are stewarded by the EIP Editors, and always require code reviews.
In addition to the requirements set out by each Working Group, all proposals must adhere to some overarching rules.
Whenever present, dates should be in the yyyy-mm-dd
format. If more precision is required, use a format from RFC 3339.
When mentioning other proposals, use the format "EIP-X" or "ERC-X" as appropriate, without the quotes. There should be a single hyphen between the prefix and the number, with no intervening white space.
Images, diagrams and auxiliary files should be included in a subdirectory of the assets
folder for that proposal as follows: assets/eip-N
(where N is to be replaced with the proposal's number). When linking to an auxiliary file, use relative paths such as ../assets/eip-1/image.png
.
Keeping a proposal immutable upon completion is an important property of the EIP process. Mentioning/linking to other proposals or external resources pokes a hole in that immutability.
In practice, this means:
Similarly, external links (http://...
, doi:10.17487/RFC1034
, The Hobbit by J.R.R. Tolkien
, etc.) should meet the requirements set out in EIP-5757 and are approved by the proposal's Working Group. See that Working Group for more information.
All content contained within a proposal's file must be available under CC0 1.0 Universal, and may be made additionally available under other terms. For example, content released with an SPDX ID of CC0 OR GPL-2.0
is acceptable, while CC0 AND GPL-2.0
is not.
Auxiliary files should be made available under CC0 1.0 Universal.
If you hold or are aware of any legal protections (copyright, patent, trademark, etc.) that might interact with a proposal, please inform the EIP Editors. We will do our best to publish this information, however we cannot guarantee its correctness or completeness.
Each proposal must begin with an RFC 822 style header preamble. The preamble must be preceded and followed by a single line containing three hyphens (---
).
The first seven headers must be the following, in order: eip
, title
, description
, author
, discussions-to
, working-group
, and status
.
Only the headers explicitly listed here and by a proposal's Working Group are permitted. Other headers shall not be present.
eip
A unique unsigned integer assigned by the EIP Editors as a permanent identifier for the proposal.
For example:
eip: 1234
title
A short (44 octets or less) collection of words—not a sentence—identifying the proposal without too much ambiguity.
Avoid variations of the word "standard", because nearly all proposals are standards of some kind. Similarly, don't include the proposal's number.
For example:
title: Limit account nonce to 2^64-1
description
A full, but short (140 octets or less), sentence that conveys the essence of the proposal.
Avoid variations of the word "standard", because nearly all proposals are standards of some kind. Similarly, don't include the proposal's number.
For example:
description: Introduce an instruction which pushes the constant value 0 onto the stack.
author
List of the author(s) of the proposal, plus their username(s) and/or email address(es). Used for notifications and access control. Those who prefer anonymity may use a pseudonym in place of a real name.
The format of the author
header value must be:
Random J. User <address@example.com>
or
Random J. User (@username)
or
Random J. User (@username) <address@example.com>
if the email address and/or GitHub username is included, and
Random J. User
if neither the email address nor the GitHub username are given.
At least one author must be paired with a GitHub username.
For example:
author: Paul Simon (@paulsimon) <paul.simon@example.com>, Art Garfunkel, Joni Mitchell (@jmitchell)
discussions-to
Location (URL) where discussions related to the proposal can be found. This header should not change once a proposal is accepted.
The preferred location for discussions is the Ethereum Magicians forum, though Working Groups may permit other locations that have a proven history of availability, openness, and the ability to continue the discussion after long periods of inactivity (unlike, for example, Reddit.)
For example:
discussions-to: https://ethereum-magicians.org/t/example/12345
working-group
The identifier of the Working Group originally stewarding a proposal.
For example:
working-group: Core
status
Where the proposal sits in the EIP process. See the proposal's Working Group documentation for permitted values.
For example:
status: Final
Proposal content must be formatted with Markdown, specifically CommonMark as registered in RFC 7764 with some extensions.
See the List of EIP Editors.
We thank the following Editors for their time and effort over the years:
This document was derived heavily from Bitcoin's [BIP 1] written by Amir Taaki which in turn was derived from Python's PEP 1. In many places text was simply copied and modified. Although the PEP 1 text was written by Barry Warsaw, Jeremy Hylton, and David Goodger, they are not responsible for its use in the Ethereum Improvement Process, and should not be bothered with technical questions specific to Ethereum or the EIP Process. Please direct all comments to the EIP Editors.
Copyright and related rights waived via CC0.