/EIPs

The Ethereum Improvement Proposal repository

Primary LanguageSolidityCreative Commons Zero v1.0 UniversalCC0-1.0

Ethereum Improvement Proposals (EIPs)

Before you initiate a pull request, please read the EIP-1 process document. Ideas should be thoroughly discussed on Ethereum Research or Ethereum Magicians first.

This repository tracks ongoing improvements to Ethereum. It contains:

For help implementing an EIP, please visit Ethereum Stack Exchange.

If you would like to become an EIP Editor, please check EIP-5069.

Mission

The goal of the EIP project is to document standardized protocols for Ethereum clients and applications and to document them in a high-quality and implementable way.

Preferred Citation Format

The canonical URL for an 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.

Consider any document not published at https://eips.ethereum.org/ as a working paper. Additionally, consider published EIPs with a status of "draft", "review", or "last call" to be incomplete drafts, and note that their specification is likely to be subject to change.

Validation and Automerging

All pull requests in this repository must pass automated checks before they can be automatically merged:

  • EIP-Bot determines when PRs can be automatically merged 1
  • EIP-1 rules are enforced using eipw2
  • HTML formatting and broken links are enforced using HTMLProofer2
  • Spelling is enforced with CodeSpell2
  • False positives sometimes occur. When this happens, please submit a PR editing .codespell-whitelist.
  • Markdown best practices are checked using markdownlint2

It is possible to run the EIP validator locally:

cargo install eipv
eipv <INPUT FILE / DIRECTORY>

Build the status page locally

Install prerequisites

  1. Open Terminal.

  2. Check whether you have Ruby 2.1.0 or higher installed:

    ruby --version
  3. If you don't have Ruby installed, install Ruby 2.1.0 or higher.

  4. Install Bundler:

    gem install bundler
  5. Install dependencies:

    bundle install

Build your local Jekyll site

  1. Bundle assets and start the server:

    bundle exec jekyll serve
  2. Preview your local Jekyll site in your web browser at http://localhost:4000.

More information on Jekyll and GitHub Pages here.

Footnotes

  1. https://github.com/ethereum/EIPs/blob/master/.github/workflows/auto-review-bot.yml

  2. https://github.com/ethereum/EIPs/blob/master/.github/workflows/ci.yml 2 3 4