GuidesAPI Reference
DocumentationLog In

Overview

Rosetta is a universal layer for interacting with blockchains of all shapes and sizes. Rosetta is not, nor does it claim to be, the miracle solution for making every blockchain look exactly the same. Rosetta standardizes and structures deployment, communication, and data formats but gives extensive flexibility to developers to innovate without needing to appeal to some gatekeeper.

🚧

The nuance and individuality of each blockchain continues to push the crypto community forward. Attempting to limit this flourishing of ideas would be a colossal failure, however, structuring these ideas can propel everyone forward.

Deployment Constraints

The first steps to reliably interacting with any blockchain are deploying a node and wallet (often in the form of an SDK). The deployment of these two components is frequently a very specialized process as nodes can require multiple services to function correctly and wallets can require specialized flows to construct complex transactions or connect detached signers. Both the Data API and Construction API elaborate on explicit expectations around deployment.

Structured Communication

Efficiently and reliably communicating with nodes and wallets (fetching block data, retrieving account state, submitting transactions, etc) often requires a myriad of network-specific strategies that must be discussed with a blockchain team to ensure correctness. Once complete, these integrations require constant maintenance to ensure software upgrades do not cause unintended behavior, data irregularities, or degradations in performance. Both the Data API and Construction API establish a strict interface for communication.

Standard Data Format

It is very rarely the case that any 2 blockchains (excluding forks) share similar data formats. For example, a representation of all balance-changing events in a transaction looks extremely different in Bitcoin and Ethereum. The Data API and Construction API share a standard data format that is low-level enough to support nearly all blockchains and expressive enough to provide implementers enough flexibility to represent the nuances of network-specific information. These formats are generic enough to natively support sharded blockchains, staking, and smart contracts.