You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: EIPS/eip-1.md
+16-10
Original file line number
Diff line number
Diff line change
@@ -12,8 +12,8 @@ What is an EIP?
12
12
13
13
EIP stands for Ethereum Improvement Proposal. An EIP is a design document providing information to the Ethereum community, or describing a new feature for Ethereum or its processes or environment. The EIP should provide a concise technical specification of the feature and a rationale for the feature. The EIP author is responsible for building consensus within the community and documenting dissenting opinions.
14
14
15
-
EIP Rational
16
-
------------
15
+
EIP Rationale
16
+
-------------
17
17
18
18
We intend EIPs to be the primary mechanisms for proposing new features, for collecting community input on an issue, and for documenting the design decisions that have gone into Ethereum. Because the EIPs are maintained as text files in a versioned repository, their revision history is the historical record of the feature proposal.
19
19
@@ -44,11 +44,13 @@ Each EIP must have a champion - someone who writes the EIP using the style and f
44
44
45
45
Vetting an idea publicly before going as far as writing an EIP is meant to save the potential author time. Asking the Ethereum community first if an idea is original helps prevent too much time being spent on something that is guaranteed to be rejected based on prior discussions (searching the Internet does not always do the trick). It also helps to make sure the idea is applicable to the entire community and not just the author. Just because an idea sounds good to the author does not mean it will work for most people in most areas where Ethereum is used. Examples of appropriate public forums to gauge interest around your EIP include [the Ethereum subreddit], [the Issues section of this repository], and [one of the Ethereum Gitter chat rooms]. In particular, [the Issues section of this repository] is an excellent place to discuss your proposal with the community and start creating more formalized language around your EIP.
46
46
47
-
Once the champion has asked the Ethereum community whether an idea has any chance of acceptance a draft EIP should be presented as a [pull request]. This gives the author a chance to continuously edit the draft EIP for proper formatting and quality. This also allows for further public comment and the author of the EIP to address concerns about the proposal.
47
+
Once the champion has asked the Ethereum community whether an idea has any chance of acceptance a draft EIP should be presented as a [pull request].
48
+
49
+
If the EIP collaborators approve, the EIP editor will assign the EIP a number (generally the issue or PR number related to the EIP) and merge your pull request. The EIP editor will not unreasonably deny an EIP. Reasons for denying EIP status include duplication of effort, being technically unsound, not providing proper motivation or addressing backwards compatibility, or not in keeping with the Ethereum philosophy.
48
50
49
-
If the EIP collaborators approve, the EIP editor will assign the EIP a number (generally the issue or PR number related to the EIP), label it as Standards Track, Informational, or Meta, give it status “Draft”, and add it to the git repository. The EIP editor will not unreasonably deny an EIP. Reasons for denying EIP status include duplication of effort, being technically unsound, not providing proper motivation or addressing backwards compatibility, or not in keeping with the Ethereum philosophy.
51
+
Once the first draft has been merged, you may submit follow-up pull requests with further changes to your draft until such point as you believe the EIP to be mature and ready to proceed to the next phase.
50
52
51
-
Standards Track EIPs consist of three parts, a design document, implementation, and finally if warranted an update to the [formal specification]. The EIP should be reviewed and accepted before an implementation is begun, unless an implementation will aid people in studying the EIP. Standards Track EIPs must be implemented in at least three viable Ethereum clients before it can be considered Final.
53
+
Standards Track EIPs consist of three parts, a design document, implementation, and finally if warranted an update to the [formal specification]. The EIP should be reviewed and accepted before an implementation is begun, unless an implementation will aid people in studying the EIP. Standards Track Core EIPs must be implemented in at least three viable Ethereum clients before it can be considered Final.
52
54
53
55
For an EIP to be accepted it must meet certain minimum criteria. It must be a clear and complete description of the proposed enhancement. The enhancement must represent a net improvement. The proposed implementation, if applicable, must be solid and must not complicate the protocol unduly.
54
56
@@ -123,9 +125,9 @@ Each EIP must begin with an RFC 822 style header preamble, preceded and followed
123
125
124
126
` title: `<EIPtitle>
125
127
126
-
` author: `<list of author's real names and optionally, email address>
128
+
` author: `<list of author's real names and optionally, email address or username>
127
129
128
-
` * discussions-to: ` <emailaddress>
130
+
` * discussions-to: ` <url>
129
131
130
132
` status: `<Draft | Active | Accepted | Deferred | Rejected | Withdrawn | Final | Superseded>
131
133
@@ -147,15 +149,19 @@ The author header lists the names, and optionally the email addresses of all the
if the email address or GitHub username is included, and
151
157
152
158
Random J. User
153
159
154
160
if the email address is not given.
155
161
156
162
Note: The resolution header is required for Standards Track EIPs only. It contains a URL that should point to an email message or other web resource where the pronouncement about the EIP is made.
157
163
158
-
While an EIP is in private discussions (usually during the initial Draft phase), a discussions-to header will indicate the mailing list or URL where the EIP is being discussed. No discussions-to header is necessary if the EIP is being discussed privately with the author.
164
+
While an EIP is a draft, a discussions-to header will indicate the mailing list or URL where the EIP is being discussed. No discussions-to header is necessary if the EIP is being discussed privately with the author.
159
165
160
166
The type header specifies the type of EIP: Standards Track, Meta, or Informational. If the track is Standards please include the subcategory (core, networking, interface, or ERC).
161
167
@@ -206,7 +212,7 @@ For each new EIP that comes in, an editor does the following:
206
212
207
213
- Read the EIP to check if it is ready: sound and complete. The ideas must make technical sense, even if they don't seem likely to be accepted.
208
214
- The title should accurately describe the content.
209
-
-Edit the EIP for language (spelling, grammar, sentence structure, etc.), markup (Github flavored Markdown), code style
215
+
-Check the EIP for language (spelling, grammar, sentence structure, etc.), markup (Github flavored Markdown), code style
210
216
211
217
If the EIP isn't ready, the editor will send it back to the author for revision, with specific instructions.
Copy file name to clipboardExpand all lines: README.md
+14-1
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,20 @@ Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platfo
4
4
A browsable version of all current and draft EIPs can be found on [the official EIP site](http://eips.ethereum.org/).
5
5
6
6
# Contributing
7
-
First review [EIP-1](EIPS/eip-1.md). Then clone the repository and add your EIP to it. There is a [template EIP here](eip-X.md). Then submit a Pull Request to Ethereum's [EIPs repository](https://github.com/ethereum/EIPs).
7
+
8
+
1. Review [EIP-1](EIPS/eip-1.md).
9
+
2. Fork the repository by clicking "Fork" in the top right.
10
+
3. Add your EIP to your fork of the repository. There is a [template EIP here](eip-X.md).
11
+
4. Submit a Pull Request to Ethereum's [EIPs repository](https://github.com/ethereum/EIPs).
12
+
13
+
Your first PR should be a first draft of the final EIP. It must meet the formatting criteria enforced by the build (largely, correct metadata in the header). An editor will manually review the first PR for a new EIP and assign it a number before merging it. Make sure you include a `discussions-to` header with the URL to a discussion forum or open GitHub issue where people can discuss the EIP as a whole.
14
+
15
+
Once your first PR is merged, we have a bot that helps out by automatically merging PRs to draft EIPs. For this to work, it has to be able to tell that you own the draft being edited. Make sure that the 'author' line of your EIP contains either your Github username or your email address inside <triangularbrackets>. If you use your email address, that address must be the one publicly shown on [your GitHub profile](https://github.com/settings/profile).
16
+
17
+
When you believe your EIP is mature and ready to progress past the draft phase, you should do one of two things:
18
+
19
+
-**For a Standards Track EIP of type Core**, ask to have your issue added to [the agenda of an upcoming All Core Devs meeting](https://github.com/ethereum/pm/issues), where it can be discussed for inclusion in a future hard fork. If implementers agree to include it, the EIP editors will update the state of your EIP to 'Accepted'.
20
+
-**For all other EIPs**, open a PR changing the state of your EIP to 'Final'. An editor will review your draft and ask if anyone objects to its being finalised. If the editor decides there is no rough consensus - for instance, because contributors point out significant issues with the EIP - they may close the PR and request that you fix the issues in the draft before trying again.
8
21
9
22
# EIP status terms
10
23
***Draft** - an EIP that is open for consideration
0 commit comments