Reference Implementations
Rosetta reference implementations are a good way to start learning how to develop a Rosetta implementation. Currently, you can find both rosetta-bitcoin
and rosetta-ethereum
sample implementations in GitHub. The sample implementations include configuration files for rosetta-bitcoin
and for rosetta-ethereum
as well.
You can use these samples to write your own configurations for testing with the rosetta-cli
tool. Our How to Write a Rosetta API Configuration File for rosetta-cli Testing documentation provides additional information on how to get started writing your own Rosetta implementation.
rosetta-bitcoin
rosetta-bitcoin
provides a reference implementation of the Rosetta API for Bitcoin in Golang. You can read more about rosetta-bitcoin
in the launch blog post.
Features
- Rosetta API implementation (both Data API and Construction API)
- UTXO cache for all accounts (accessible using the
/account/balance
endpoint) - Stateless, offline, curve-based transaction construction from any SegWit-Bech32 address
rosetta-ethereum
rosetta-ethereum
provides a reference implementation of the Rosetta API for Ethereum in Golang. You can read more about rosetta-ethereum
in the launch blog post.
Features
- Comprehensive tracking of all ETH balance changes
- Stateless, offline, curve-based transaction construction (with address checksum validation)
- Atomic balance lookups using go-ethereum's GraphQL Endpoint
- Idempotent access to all transaction traces and receipts
You can find a collection of community-driven implementations on the Rosetta API Community site and the rosetta-ecosystem repository on GitHub.