Começando com Rosetta
A API Rosetta é composta por dois componentes principais; a API de Dados e a API de Construção. Juntas, essas APIs permitem que você leia e escreva em blockchains em um formato comum através de um protocolo de comunicação padrão. As especificações para essas APIs podem ser encontradas no repositório rosetta-specifications.
Para detalhes completos, leia a especificação da API Rosetta. Para uma visão geral das interações, veja o Fluxo de Operações.
Aqui você encontrará exemplos para desenvolvedores, exemplos para exchanges e as chamadas da API Rosetta.
Exemplos para Desenvolvedores
Esta seção descreve alguns exemplos que você pode testar como um desenvolvedor que deseja usar Rosetta. No entanto, aconselhamos que você deve ter cautela se testar isso na mainnet.
Código de amostra para os casos de uso típicos de Rosetta:
- Enviando transações
- Registro de chave de staking e delegação
- Retiradas
- Enviando transações com ativos múltiplos únicos
Exemplos Postman
Esta Coleção Postman demonstra como consultar o saldo de uma conta, construir uma transação multi-ativo, assinar a transação e submetê-la. Este cenário é testado todas as noites para garantir a correção. Você simplesmente importa no Postman para começar.
Exemplos para Exchanges
Esta seção fornece alguns exemplos de endpoints de como exchanges podem usar Rosetta para suas necessidades de integração:
- Obter endereço a partir de chave pública
- Determinar o tamanho da transação
- Obter qualquer informação necessária para construir uma transação para uma rede específica
- Criar transação não assinada
- Confirmar a correção do corpo da tx não assinada
- Criar a transação assinada
- Gerar o hash da transação
- Submeter transação assinada para o blockchain
Obter endereço a partir de chave pública
/construction/derive
Requisição:
{
"network_identifier": {
"blockchain": "cardano",
"network": "testnet"
},
"public_key": {
"hex_bytes": "22ae46272bffe077cecc46e1494d790d4ad453ae1c4228aa0c2e9671dcb16341",
"curve_type": "edwards25519"
},
"metadata": {}
}
Resposta:
{
"address":
"addr_test1vzx9ztw59gzp7txrhs4z03u2sfzx8y49vxn3vchzasplx3cwph08p"
}
Determinar o tamanho da transação
/construction/preprocess
Requisição:
{
"network_identifier": {
"blockchain": "cardano",
"network": "testnet"
},
"operations": [
{
"operation_identifier": {
"index": 0
},
"type": "input",
"status": "",
"account": {
"address": "addr_test1vzx9ztw59gzp7txrhs4z03u2sfzx8y49vxn3vchzasplx3cwph08p"
},
"amount": {
"value": "-999968487129",
"currency": {
"symbol": "ADA",
"decimals": 6
}
},
"coin_change": {
"coin_identifier": {
"identifier": "8f0e1bb31ff09a8dcc8a1b13d6ccb8f873f8d94b17bb7236c62e2d9d63d5426b:0"
},
"coin_action": "coin_spent"
},
"metadata": {
"tokenBundle": [
{
"policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6",
"tokens": [
{
"value": "1",
"currency": {
"symbol": "31",
"decimals": 0,
"metadata": {
"policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6"
}
}
},
{
"value": "1",
"currency": {
"symbol": "32",
"decimals": 0,
"metadata": {
"policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6"
}
}
}
]
}
]
}
},
{
"operation_identifier": {
"index": 1
},
"type": "output",
"status": "",
"account": {
"address": "addr_test1vrpxrjmr5rk43ace43g2hnmxzguegns3vpqc8phx7tcu8wsgmynq6"
},
"amount": {
"value": "999968106116",
"currency": {
"symbol": "ADA",
"decimals": 6
}
},
"metadata": {
"tokenBundle": [
{
"policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6",
"tokens": [
{
"value": "1",
"currency": {
"symbol": "31",
"decimals": 0,
"metadata": {
"policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6"
}
}
},
{
"value": "1",
"currency": {
"symbol": "32",
"decimals": 0,
"metadata": {
"policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6"
}
}
}
]
}
]
}
}
]
}
**Resposta:**
{ "options": { "relative_ttl": 1000, "transaction_size": 235 } }
### Criar transação não assinada
`/construction/payloads`
**Requisição:**
{ "network_identifier": { "blockchain": "cardano", "network": "testnet" }, "operations": [ { "operation_identifier": { "index": 0 }, "type": "input", "status": "", "account": { "address": "addr_test1vzx9ztw59gzp7txrhs4z03u2sfzx8y49vxn3vchzasplx3cwph08p" }, "amount": { "value": "-999968487129", "currency": { "symbol": "ADA", "decimals": 6 } }, "coin_change": { "coin_identifier": { "identifier": "8f0e1bb31ff09a8dcc8a1b13d6ccb8f873f8d94b17bb7236c62e2d9d63d5426b:0" }, "coin_action": "coin_spent" }, "metadata": { "tokenBundle": [ { "policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6", "tokens": [ { "value": "1", "currency": { "symbol": "31", "decimals": 0, "metadata": { "policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6" } } }, { "value": "1", "currency": { "symbol": "32", "decimals": 0, "metadata": { "policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6" } } } ] } ] } }, { "operation_identifier": { "index": 1 }, "type": "output", "status": "", "account": { "address": "addr_test1vrpxrjmr5rk43ace43g2hnmxzguegns3vpqc8phx7tcu8wsgmynq6" }, "amount": { "value": "999968106116", "currency": { "symbol": "ADA", "decimals": 6 } }, "metadata": { "tokenBundle": [ { "policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6", "tokens": [ { "value": "1", "currency": { "symbol": "31", "decimals": 0, "metadata": { "policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6" } } }, { "value": "1", "currency": { "symbol": "32", "decimals": 0, "metadata": { "policyId": "2bbd69730ab71f9c3825aef68d01400fc7c7f8270ed34082528b17a6" } } } ] } ] } } ], "metadata": { "ttl": "20416653" }, "suggested_fee": [ { "value": "165897", "currency": { "symbol": "ADA", "decimals": 6 } } ] }
**Resposta:**
{ "unsigned_transaction": "8279010a613430303831383235383230386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623030303138313832353831643630633236316362363361306564353866373139616335306162636636363132333939343465313136303431383338366536663266316333626138323162303030303030653864326265363638346131353831633262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136613234313331303134313332303130323161303030356430353530333161303133373838386481a7746f7065726174696f6e5f6964656e746966696572a165696e64657800647479706565696e7075746673746174757360676163636f756e74a16761646472657373783f616464725f7465737431767a78397a74773539677a70377478726873347a3033753273667a783879343976786e337663687a6173706c78336377706830387066616d6f756e74a26576616c75656d2d3939393936383438373132396863757272656e6379a26673796d626f6c6341444168646563696d616c73066b636f696e5f6368616e6765a26f636f696e5f6964656e746966696572a16a6964656e7469666965727842386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623a306b636f696e5f616374696f6e6a636f696e5f7370656e74686d65746164617461a16b746f6b656e42756e646c6581a268706f6c69637949647838326262643639373330616237316639633338323561656636386430313430306663376337663832373065643334303832353238623137613666746f6b656e7382a26576616c756561316863757272656e6379a36673796d626f6c62333168646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136a26576616c756561316863757272656e6379a36673796d626f6c62333268646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136", "payloads": [ { "address": "addr_test1vzx9ztw59gzp7txrhs4z03u2sfzx8y49vxn3vchzasplx3cwph08p", "hex_bytes": "6dd67acae1ad818eab971f27cc20bd6e030cf9783b32b0052d6d98bb13792b30", "signature_type": "ed25519" } ] }
**Resposta:**
(A resposta corresponde ao payload do preprocess)
Assine localmente payloads[0].hex_bytes da resposta anterior/payloads para usar na próxima requisição.
### Criar a transação assinada
`/construction/combine`
**Requisição:**
{ "network_identifier": { "blockchain": "cardano", "network": testnet" }, "unsigned_transaction": "8279010a613430303831383235383230386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623030303138313832353831643630633236316362363361306564353866373139616335306162636636363132333939343465313136303431383338366536663266316333626138323162303030303030653864326265363638346131353831633262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136613234313331303134313332303130323161303030356430353530333161303133373838386481a7746f7065726174696f6e5f6964656e746966696572a165696e64657800647479706565696e7075746673746174757360676163636f756e74a16761646472657373783f616464725f7465737431767a78397a74773539677a70377478726873347a3033753273667a783879343976786e337663687a6173706c78336377706830387066616d6f756e74a26576616c75656d2d3939393936383438373132396863757272656e6379a26673796d626f6c6341444168646563696d616c73066b636f696e5f6368616e6765a26f636f696e5f6964656e746966696572a16a6964656e7469666965727842386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623a306b636f696e5f616374696f6e6a636f696e5f7370656e74686d65746164617461a16b746f6b656e42756e646c6581a268706f6c69637949647838326262643639373330616237316639633338323561656636386430313430306663376337663832373065643334303832353238623137613666746f6b656e7382a26576616c756561316863757272656e6379a36673796d626f6c62333168646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136a26576616c756561316863757272656e6379a36673796d626f6c62333268646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136", "signatures": [ { "signing_payload": { "account_identifier": { "address": "addr_test1vzx9ztw59gzp7txrhs4z03u2sfzx8y49vxn3vchzasplx3cwph08p", "metadata": {} }, "hex_bytes": "6dd67acae1ad818eab971f27cc20bd6e030cf9783b32b0052d6d98bb13792b30", "signature_type": "ed25519" }, "public_key": { "hex_bytes": "22ae46272bffe077cecc46e1494d790d4ad453ae1c4228aa0c2e9671dcb16341", "curve_type": "edwards25519" }, "signature_type": "ed25519", "hex_bytes": "c7ba69cc50abce863c4900e55289ea27f473073b58fbd44a310140f3fb20494019f674588a2df9d8b6d454c55643a96e26dee332ef060e5960357f65687dde02" } ] }
{ "network_identifier": { "blockchain": "cardano", "network": testnet" }, "unsigned_transaction": "8279010a613430303831383235383230386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623030303138313832353831643630633236316362363361306564353866373139616335306162636636363132333939343465313136303431383338366536663266316333626138323162303030303030653864326265363638346131353831633262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136613234313331303134313332303130323161303030356430353530333161303133373838386481a7746f7065726174696f6e5f6964656e746966696572a165696e64657800647479706565696e7075746673746174757360676163636f756e74a16761646472657373783f616464725f7465737431767a78397a74773539677a70377478726873347a3033753273667a783879343976786e337663687a6173706c78336377706830387066616d6f756e74a26576616c75656d2d3939393936383438373132396863757272656e6379a26673796d626f6c6341444168646563696d616c73066b636f696e5f6368616e6765a26f636f696e5f6964656e746966696572a16a6964656e7469666965727842386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623a306b636f696e5f616374696f6e6a636f696e5f7370656e74686d65746164617461a16b746f6b656e42756e646c6581a268706f6c69637949647838326262643639373330616237316639633338323561656636386430313430306663376337663832373065643334303832353238623137613666746f6b656e7382a26576616c756561316863757272656e6379a36673796d626f6c62333168646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136a26576616c756561316863757272656e6379a36673796d626f6c62333268646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136", "signatures": [ { "signing_payload": { "account_identifier": { "address": "addr_test1vzx9ztw59gzp7txrhs4z03u2sfzx8y49vxn3vchzasplx3cwph08p", "metadata": {} }, "hex_bytes": "6dd67acae1ad818eab971f27cc20bd6e030cf9783b32b0052d6d98bb13792b30", "signature_type": "ed25519" }, "public_key": { "hex_bytes": "22ae46272bffe077cecc46e1494d790d4ad453ae1c4228aa0c2e9671dcb16341", "curve_type": "edwards25519" }, "signature_type": "ed25519", "hex_bytes": "c7ba69cc50abce863c4900e55289ea27f473073b58fbd44a310140f3fb20494019f674588a2df9d8b6d454c55643a96e26dee332ef060e5960357f65687dde02" } ] }
Você pode usar `/construction/parse` novamente para confirmar a correção da transação assinada aqui se você mudar `signed` para `true`.
### Gerar o hash da tx
`/construction/hash`
**Requisição:**
{ "network_identifier": { "blockchain": "cardano", "network": "testnet" }, "signed_transaction": "827901de3833613430303831383235383230386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623030303138313832353831643630633236316362363361306564353866373139616335306162636636363132333939343465313136303431383338366536663266316333626138323162303030303030653864326265363638346131353831633262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136613234313331303134313332303130323161303030356430353530333161303133373838386461313030383138323538323032326165343632373262666665303737636563633436653134393464373930643461643435336165316334323238616130633265393637316463623136333431353834306337626136396363353061626365383633633439303065353532383965613237663437333037336235386662643434613331303134306633666232303439343031396636373435383861326466396438623664343534633535363433613936653236646565333332656630363065353936303335376636353638376464653032663681a7746f7065726174696f6e5f6964656e746966696572a165696e64657800647479706565696e7075746673746174757360676163636f756e74a16761646472657373783f616464725f7465737431767a78397a74773539677a70377478726873347a3033753273667a783879343976786e337663687a6173706c78336377706830387066616d6f756e74a26576616c75656d2d3939393936383438373132396863757272656e6379a26673796d626f6c6341444168646563696d616c73066b636f696e5f6368616e6765a26f636f696e5f6964656e746966696572a16a6964656e7469666965727842386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623a306b636f696e5f616374696f6e6a636f696e5f7370656e74686d65746164617461a16b746f6b656e42756e646c6581a268706f6c69637949647838326262643639373330616237316639633338323561656636386430313430306663376337663832373065643334303832353238623137613666746f6b656e7382a26576616c756561316863757272656e6379a36673796d626f6c62333168646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136a26576616c756561316863757272656e6379a36673796d626f6c62333268646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136" }
**Resposta:**
{ "transaction_identifier": { "hash": "6dd67acae1ad818eab971f27cc20bd6e030cf9783b32b0052d6d98bb13792b30" } }
### Submeter transação assinada para o blockchain
`/construction/submit`
**Requisição:**
{ "network_identifier": { "blockchain": "cardano", "network": "testnet" }, "signed_transaction": "827901de3833613430303831383235383230386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623030303138313832353831643630633236316362363361306564353866373139616335306162636636363132333939343465313136303431383338366536663266316333626138323162303030303030653864326265363638346131353831633262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136613234313331303134313332303130323161303030356430353530333161303133373838386461313030383138323538323032326165343632373262666665303737636563633436653134393464373930643461643435336165316334323238616130633265393637316463623136333431353834306337626136396363353061626365383633633439303065353532383965613237663437333037336235386662643434613331303134306633666232303439343031396636373435383861326466396438623664343534633535363433613936653236646565333332656630363065353936303335376636353638376464653032663681a7746f7065726174696f6e5f6964656e746966696572a165696e64657800647479706565696e7075746673746174757360676163636f756e74a16761646472657373783f616464725f7465737431767a78397a74773539677a70377478726873347a3033753273667a783879343976786e337663687a6173706c78336377706830387066616d6f756e74a26576616c75656d2d3939393936383438373132396863757272656e6379a26673796d626f6c6341444168646563696d616c73066b636f696e5f6368616e6765a26f636f696e5f6964656e746966696572a16a6964656e7469666965727842386630653162623331666630396138646363386131623133643663636238663837336638643934623137626237323336633632653264396436336435343236623a306b636f696e5f616374696f6e6a636f696e5f7370656e74686d65746164617461a16b746f6b656e42756e646c6581a268706f6c69637949647838326262643639373330616237316639633338323561656636386430313430306663376337663832373065643334303832353238623137613666746f6b656e7382a26576616c756561316863757272656e6379a36673796d626f6c62333168646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136a26576616c756561316863757272656e6379a36673796d626f6c62333268646563696d616c7300686d65746164617461a168706f6c696379496478383262626436393733306162373166396333383235616566363864303134303066633763376638323730656433343038323532386231376136" }
### Chamadas da API
Esta seção descreve as chamadas disponíveis da API Rosetta:
**Obter informações breves sobre transações**
$ curl -X POST '$BASEURL/block'
-H "Content-Type: application/json"
-d '{ "network_identifier": {"blockchain": "cardano", "network": "mainnet" }, "metadata": {}, "block_identifier": {"index": "5264122" }}'
**Obter informações resumidas do bloco**
$ curl -X POST '$BASEURL/block'
-H "Content-Type: application/json"
-d '{ "network_identifier": {"blockchain": "cardano", "network": "mainnet" }, "metadata": {}, "block_identifier": {"index": "5264122" }}'
**Obter informações sobre as N últimas transações**
Get the current block identifier
$ curl -X POST '$BASEURL/network/status'
-H "Content-Type: application/json"
-d '{ "network_identifier": { "blockchain": "cardano", "network": "mainnet" }, "metadata": {} }' | jq .current_block_identifier.index 5264122
Fetch information from it
$ curl -X POST '$BASEURL/block'
-H "Content-Type: application/json"
-d '{ "network_identifier": {"blockchain": "cardano", "network": "mainnet" }, "metadata": {}, "block_identifier": {"index": "5264122" }}'
**Obter informações resumidas sobre uma transação**
$ curl $BASEURL/api/txs/summary/382a5274ebf102910c6c923a8b11f108e79ecedb5d7433cd0dd15a8a443f0fa5 Get summary information about an address $ curl -X POST '$BASEURL/account/balance'
-H "Content-Type: application/json"
-d '{ "network_identifier": { "blockchain": "cardano", "network": "mainnet" }, "metadata": {}, "account_identifier": { "address": "DdzFFzCqrhsqKd92VGNM9Ts1Ms62J2FaSRmf8t1bQa1VugDmcUJzeU8TRFnGDDUR6f1m9VaJJG1GfnzxVjKGBbBAVGT9sPBseREYzP3E" }, "metadata": {}}'
**Obter informações específicas de um endereço para um bloco**
$ curl -X POST '$BASEURL/account/balance'
-H "Content-Type: application/json"
-d '{ "network_identifier": { "blockchain": "cardano", "network": "mainnet" }, "metadata": {}, "account_identifier": { "address": "DdzFFzCqrhsqKd92VGNM9Ts1Ms62J2FaSRmf8t1bQa1VugDmcUJzeU8TRFnGDDUR6f1m9VaJJG1GfnzxVjKGBbBAVGT9sPBseREYzP3E" }, "metadata": {}, "block_identifier": {"index": "5264122","hash": "b5426334221805b3c161ec07b02722728ced7b5c38a9cc60962e819620ecbf9a" },"currencies": {"symbol": "ada", "decimals": 8 }}'