Rosetta
Overview
Rosetta is an open standard introduced by Coinbase to simplify the integration of blockchain-based tokens in exchanges, block explorers, and wallets. This documentation might help if you want to deploy a token on ICP that aims to be tradable on CeFi exchanges or if you are working on a block explorer or wallet.
There exist two implementations of the Rosetta-API standard. One for the ICP Ledger and the other for ledgers that implement the ICRC-1 standard.
The Rosetta API standard consists of two parts: The data API is used to fetch data from the network. It is a read only endpoint and does not make any changes to the state of Rosetta. View more details on how to use the data-api endpoints.
The second part is the construction API. It is used to create transactions that require a valid signature from the user. More details on how to use the construction-api endpoints can be found here for ICP Rosetta and here for ICRC Rosetta.
Canister communication
The Rosetta API is communicating with two separate canisters in the background. The communication with the ledger canister will provide the user with account balance statements, transferring, burning and approving tokens as well as fetching the chain of blocks from the ledger to store locally on an SQLite database for faster data-api access.
The communication with the governance canister will provide users with neuron management capabilities, fetching the state of neurons and proposals, as well as allowing for state changes in regards to staking and proposal voting. For details on how to call these endpoints, look at the guides for ICP Rosetta and ICRC Rosetta.