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.25+ 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
release/3.4. - Edit or add
.md/.mdxfiles underdocs/site/docs/. - Verify your changes render correctly in the local dev server.
- Open a pull request against
release/3.4with a clear description of what changed and why.