Skip to main content

Contributing

Erigon Client Code​

The Erigon node software is developed in the erigontech/erigon repository. Code contributions follow the standard GitHub fork-and-PR workflow.

Getting started​

  1. Fork the repository and clone your fork:
    git clone https://github.com/<your-username>/erigon.git
    cd erigon
  2. Build the project (requires Go 1.26+ and a C++ compiler):
    make erigon
  3. Run the test suite:
    go test ./...

Reporting bugs and requesting features​

  • Bugs: open a GitHub issue with steps to reproduce, your OS, Go version, and Erigon version.
  • Feature requests: open an issue describing the use case and expected behaviour before writing any code — this avoids wasted effort if the direction needs alignment.
  • For questions or informal discussion, join the Erigon Discord.

Opening a pull request​

  • Target the main branch for new features and non-critical fixes.
  • Target the relevant release/x.y branch for release-specific backports.
  • Keep PRs focused — one logical change per PR makes review faster.
  • Feel free to open a draft PR early if you want feedback on the direction before the implementation is complete.
  • Include a clear description of what changed, why, and how it was tested.

Code style and guidelines​

  • Follow the existing Go conventions in the codebase.
  • Run make lint before submitting — the CI will enforce it.
  • All new code should be covered by tests where practical.
  • Use the package-prefix commit message format: eth, rpc: make trace configs optional. This keeps the git log scannable by subsystem.

Documentation​

The Erigon documentation is built with Docusaurus and lives in the erigontech/erigon repository under docs/site/.

Reporting issues​

Open an issue in the repository to suggest corrections, flag outdated content, or request new pages.

Editing locally​

  1. Clone the repository and install dependencies:
    git clone https://github.com/erigontech/erigon.git
    cd erigon/docs/site
    npm install
  2. Start the local dev server:
    npm run start
  3. Open http://localhost:3000 in your browser — changes to Markdown files hot-reload automatically.

Submitting a pull request​

  1. Create a new branch from the branch the documentation is published from — the one named by the DOCS_DEPLOY_BRANCH repository variable, which is not necessarily the newest release branch. If you cannot read repository variables, open an issue asking which branch to target before you start, or open the pull request as a draft and ask there before building on the branch.
  2. Edit or add .md / .mdx files under docs/site/docs/.
  3. Verify your changes render correctly in the local dev server.
  4. Open a pull request against that same branch, with a clear description of what changed and why.