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
- Fork the repository and clone your fork:
git clone https://github.com/<your-username>/erigon.gitcd erigon
- Build the project (requires Go 1.26+ and a C++ compiler):
make erigon
- 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
mainbranch for new features and non-critical fixes. - Target the relevant
release/x.ybranch 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 lintbefore 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
- Clone the repository and install dependencies:
git clone https://github.com/erigontech/erigon.gitcd erigon/docs/sitenpm install
- Start the local dev server:
npm run start
- Open
http://localhost:3000in your browser — changes to Markdown files hot-reload automatically.
Submitting a pull request
- Create a new branch from the branch the documentation is published from — the one named by the
DOCS_DEPLOY_BRANCHrepository 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. - Edit or add
.md/.mdxfiles underdocs/site/docs/. - Verify your changes render correctly in the local dev server.
- Open a pull request against that same branch, with a clear description of what changed and why.