Ethereum Improvement Proposals (EIPs)
Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards. Browse all current and draft EIPs on the official EIP site.
Before you initiate a pull request, please read the EIP-1 process document.
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 <triangular brackets>. If you use your email address, that address must be the one publicly shown on your GitHub profile.
Project Goal
The Ethereum Improvement Proposals repository exists as a place to share concrete proposals with potential users of the proposal and the Ethereum community at large.
Preferred Citation Format
The canonical URL for a EIP that has achieved draft status at any point is at https://eips.ethereum.org/. For example, the canonical URL for EIP-1 is https://eips.ethereum.org/EIPS/eip-1.
Please consider anything which is not published on https://eips.ethereum.org/ as a working paper.
And please consider anything published at https://eips.ethereum.org/ with a status of "draft" as an incomplete draft.
Validation
EIPs must pass some validation tests. The EIP repository ensures this by running tests using html-proofer and eip_validator.
It is possible to run the EIP validator locally:
gem install eip_validator
eip_validator <INPUT_FILES>
Automerger
The EIP repository contains an "auto merge" feature to ease the workload for EIP editors. If a change is made via a PR to a draft EIP, then the authors of the EIP can GitHub approve the change to have it auto-merged. This is handled by the EIP-Bot.
Local development
Prerequisites
-
Open Terminal.
-
Check whether you have Ruby 2.1.0 or higher installed:
$ ruby --version
-
If you don't have Ruby installed, install Ruby 2.1.0 or higher.
-
Install Bundler:
$ gem install bundler
- Install dependencies:
$ bundle install
Build your local Jekyll site
- Bundle assets and start the server:
$ bundle exec jekyll serve
- Preview your local Jekyll site in your web browser at
http://localhost:4000
.
More information on Jekyll and GitHub pages here.