GuidesAPI Reference
DocumentationLog In

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.