Pular para o conteúdo

Começando com Rosetta

Por volta de 3 min

A API Rosetta é composta por dois componentes principais; a API de Dadosopen in new window e a API de Construçãoopen in new window. 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-specificationsopen in new window.

Para detalhes completos, leia a especificação da API Rosettaopen in new window. Para uma visão geral das interações, veja o Fluxo de Operaçõesopen in new window.

Aqui você encontrará exemplos para desenvolvedores, exemplos para exchanges e as chamadas da API Rosettaopen in new window.

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:

Exemplos Postman

Esta Coleção Postmanopen in new window 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 }}'

Última atualização:
Contribuidores: cauechianca