Skip to main content

Welcome

Rosetta is an open-source specification and set of tools for blockchain integration. Rosetta’s goal is to make blockchain integration simpler, faster, and more reliable than using a native integration.

Origins

Writing reliable blockchain integrations is complicated and time-consuming. The process requires careful analysis of the unique aspects of each blockchain and extensive communication with its developers to understand the best strategies to deploy nodes, recognize deposits, and construct transactions, among other actions. Even a minor misunderstanding can lead to downtime, or even worse, loss of funds. Not to mention, the integration must be modified and tested each time a blockchain team releases new software.

Instead of spending time working on their blockchain, project developers spend countless hours answering similar support questions for each platform integrating their blockchain. With their questions answered, each integrating platform then writes similar code to interface with the blockchain, instead of spending their engineering resources working on unique products and applications.

Coinbase initially developed Rosetta as the middleware used to integrate blockchains into its platform securely and painlessly. We decided to open source the entire project in the hopes that it eases development and integration time for both developers and crypto platforms alike.

Principles

The Rosetta APIs make a set of explicit design choices to enable simpler, faster, and more reliable blockchain integrations. We highly recommend reading about the design principles to familiarize yourself with these choices prior to building with Rosetta.

Start Building

Transaction facilitation via the Rosetta API is made up of two core components, the Data API and the Construction API. Together, these APIs allow for anyone to read and write to blockchains in a standard format over a standard communication protocol. You can find the specifications for these APIs in the rosetta-specifications repository and the Full Reference document on this website.

caution

If you are a blockchain team interested in implementing these APIs, check out our Getting Started document to view your project options.

Developers looking to build on top of these APIs should take a look at the rosetta-sdk-go and rosetta-cli repositories for some code examples of how to do so.

Automated Testing

Automated testing is the key to a reliable and robust ecosystem of standard users. We have implemented a testing suite for Data API and Construction API implementations. After developing an implementation, use the rosetta-cli tool to test against your code to check for any issues.

caution

If you would like a manual process automated, or you have ideas for additional tests, please open an issue in the rosetta-cli repository.

Community

If you have any questions about Rosetta or want to share something cool that you made, visit our Discord.

Was this helpful?