A Go implementation of the Polkadot JAM Protocol, built by the New-JAMneration team.
- ✅ Milestone 1 (M1) — Passed. See our on-chain attestation.
Our development documentation is maintained on HackMD for real-time collaboration and easy updates.
This is our mindmap link: JAM Mindmap
If you want to update the mindmap, you can go to the JAM-mindmap repository.
- Full documentation index: READMERef/INDEX.md
- Main documentation: HackMD Development Guide
- Development documentation: Github Document
- Requires team member access - please contact project maintainers if you need access
- Go 1.25.5+
- Rust toolchain — required to build the VRF submodule (see the Rust VRF Compile Guide)
makeand a POSIX shell- (Optional) Docker — for release builds and fuzz-target runs
This project uses git submodules (Rust-VRF and test-data vectors), so clone with submodules:
git clone --recurse-submodules https://github.com/New-JAMneration/JAM-Protocol.gitIf you already cloned without --recurse-submodules:
git submodule update --init --recursivego mod tidymake runmake buildRun single test:
make test-jam-test-vectors mode=safrole size=fullmake test-jam-test-vectors-trace mode=safroleRun all:
make test-jam-test-vectorsmake test-jam-test-vectors-traceWe continuously validate the node against the JAM Conformance fuzz protocol. See the Fuzz Validation guide for vectors, trace, socket, and CI steps.
- Release and Publish: see the release and publish guide.
- Rust Submodule: for compiling and using the Rust library, see the Rust VRF Compile Guide.
- Encoder/Decoder: for details of the encoder and decoder, see the Encoder & Decoder guide.
- Coding Style: our codebase follows the Google Go Style Guide for consistent and maintainable code.
- Code Formatting: we use
gofmtto maintain consistent code formatting. See the commands here. - Commit Message: please stick to the Semantic Commit Messages when submitting a commit.
- Pull Request: before creating a pull request, please rebase (instead of merging) your branch onto the target branch. Also, follow these instructions to link your PR to the assigned ticket's issue.
Licensed under the Apache License 2.0.
