Pular para o conteúdo

Cenários de gestão de multi-ativos em exchanges

Por volta de 4 min

Os ativos nativos seguem um conjunto de regras pré-definidas conhecidas como políticas de cunhagem, que são definidas pelos usuários que querem criar um novo ativo. Essas políticas estabelecem os limites superiores e inferiores do que um token pode fazer, quem pode fazê-lo, e também podem definir o ponto no ciclo de vida da transação em que isso pode ser feito.

Uma política de cunhagem é limitada pelo protocolo da rede e pelas regras definidas no ledger. Uma dessas regras é o valor mínimo de UTXOopen in new window (a quantidade mínima de ada que deve ser enviada em uma única transação.) O valor está atualmente definido para 1 ada, então para transacionar qualquer ativo nativo na rede Cardano, um mínimo de 1 ada deve ser incluído e contabilizado dentro da transação. Isso não significa que você tenha que enviar apenas 1 ada para transacionar ativos nativos. Você pode usar qualquer quantidade de ada, então é importante que exchanges e carteiras estejam cientes disso, e saibam o que fazer nesses casos.

Nota: É possível verificar e identificar essas transações específicas de ativo nativo usando cardano-graphqlopen in new window ou cardano-rosettaopen in new window.

Cenários de gestão de multi-ativos

Exchanges que listam ada geralmente podem encontrar dois cenários específicos:

  • Cenário 1 - Gastando um UTXO com um multi-ativo anexado
  • Cenário 2 - Recebimento inesperado de multi-ativo no cardano-wallet

Cenário 1: Gastando um UTXO com um multi-ativo anexado

Nota: Este cenário aplica-se a exchanges que gerenciam seus próprios UTXOs.

Como identificar UTXOs com um ativo nativo anexado

Exchanges e carteiras de terceiros que gerenciam seus próprios UTXOs frequentemente usam um explorador de blocos local (cardano-graphql ou cardano-rosetta, por exemplo).

cardano-graphql é uma linguagem de consulta da API Cardano e um componente de tempo de execução para cumprir consultas com dados existentes extraídos do banco de dados PostgreSQL do cardano-db-syncopen in new window. Ele fornece uma descrição completa e compreensível desses dados e dá aos clientes o poder de solicitar as informações necessárias. Isso, por sua vez, simplifica a evolução das APIs dos clientes ao longo do tempo e habilita ferramentas poderosas para desenvolvedores.

O Cardano adaptou cardano-rosetta (inicialmente desenvolvido pela Coinbase como um middleware blockchain) para ajudar exchanges e carteiras de terceiros a extrair dados da blockchain e integrar-se com o Cardano. Veja este arquivo Readmeopen in new window para mais informações sobre a extração de informações de multi-ativos de cardano-rosetta.

Começando com ativos nativos

Após entender o que uma transação com ativos nativos pode parecer, você pode querer criar ou queimar alguns ativos nativos ou tokens no testnet. Veja esses pré-requisitosopen in new window e siga os passos abaixo para começar a cunhar alguns ativos nativos:

  • Conecte cardano-node ao testnet
  • Construa cardano-node e conecte ao testnet
  • Baixe o binário pré-construído cardano-cli ou use a construção a partir do código-fonte
  • Siga estes passosopen in new window

Gastando UTXO com ativos nativos anexados

Ao construir uma transação com ativos nativos usando cardano-cli, conforme delineado em esta seçãoopen in new window, é importante levar em conta duas coisas:

  1. O valor em ada que você deseja enviar
  2. A quantidade de tokens

O acima também é verdadeiro para qualquer exchange ou terceiro que queira gastar, retornar ou armazenar qualquer multi-ativo. Por definição, receber um multi-ativo é o mesmo que receber qualquer outra transação Cardano. A única diferença é que alguns outros dados - como multi-ativo - podem estar anexados à transação.

Recomendamos fortemente que todas as exchanges e carteiras de terceiros verifiquem todas as transações no bloco para multi-ativos e as manuseiem de acordo. Como esses tipos de transações são gerenciados é uma decisão empresarial.

O que fazer com tokens indesejados?

O propósito de qualquer multi-ativo pode ser arbitrário, mas é importante lembrar que, assim como ada, um multi-ativo faz parte da transação e precisa ser tratado e equilibrado da mesma forma.

Multi-ativos não causarão problemas, seja localizados na carteira do emissor ou na carteira da exchange. Ele existirá até que seja resgatado, usado ou queimado.

Em última análise, a decisão do que fazer com um multi-ativo cabe à exchange ou à carteira de terceiros. Mais especificamente, com uma exchange que gerencia seus próprios UTXOs.

cardano-walletopen in new window usa um algoritmo UTXO para lidar e gerenciar UTXOs. Um multi-ativo manuseado pelo cardano-wallet na blockchain poderia facilmente passar despercebido.

Escolher um UTXO significa ter que contabilizar o ativo anexado a esse UTXO. Se esta entrada extra não for manuseada corretamente, ocorrerá um erro de desequilíbrio.

Você controla o que fazer com o ativo nativo. Você pode devolvê-lo ao remetente apenas se souber o endereço ou, alternativamente, pode mover o ativo nativo para um endereço em sua carteira, aderindo às diretrizes da rede e ao valor mínimo de UTXO.

Leia o tópico sobre tokens nativosopen in new window para mais informações sobre como criar e equilibrar uma transação com um ativo nativo anexado.

Cenário 2 - Recebimento inesperado de multi-ativo no cardano-wallet

Nota: Este cenário aplica-se apenas a exchanges que usam cardano-wallet.

Verifique se você recebeu um multi-ativo

  1. Verifique as informações da carteira para confirmar
  2. Execute o seguinte comando curl para verificar e confirmar as informações da carteira:

Byron

curl http://localhost:8090/v2/byron-wallets/ 

Shelley

http://localhost:8090/v2/wallets
  1. Verifique a seção de ativos:
"assets": {
      "total": [
        {
          "asset_name": "6e7466636f696e",
          "quantity": 10,
          "policy_id": "f625fdd8e936d56d3d9943557380cff64d0db66e545f99a3cc01ab97"
        }
      ],
      "available": [
        {
          "asset_name": "6e7466636f696e",
          "quantity": 10,
          "policy_id": "f625fdd8e936d56d3d9943557380cff64d0db66e545f99a3cc01ab97"
        }
      ]
    }

Resgate de tokens ou remoção de multi-ativos indesejados do cardano-wallet

Tokens criados usando uma política de cunhagem seguem um conjunto pré-definido de regras. A política de cunhagem pode permitir que os detentores de tokens queimem ou criem novos tokens, por exemplo. Na maioria dos casos, se você receber tokens indesejados, precisará devolvê-los ao emissor ou remetente, ou colocá-los em outro lugar para guarda segura. Leia o tópico sobre políticas de cunhagemopen in new window para mais informações sobre políticas de cunhagem.

Nota: O custo mínimo para enviar qualquer quantidade de ativo nativo é de uma ada, mais a taxa de transação. Leia o tópico sobre requisito de valor mínimo de adaopen in new window para mais informações sobre os requisitos mínimos de UTXO.

Opção 1: Envie tokens de volta ao emissor ou remetente:

  1. Verifique o endereço do remetente ou do emissor.
  2. Crie uma transação JSON no cardano-wallet com o valor mínimo de UTXO de uma ada e inclua o ativo nativo.

Transação de exemplo para enviar o multi-ativo:

curl -XPOST http://localhost:8090/v2/byron-wallets/{wallet_id}/transactions \ 
-H 'Content-Type: application/json \; charset=utf-8' 
-d '{
      "payments": [
      {
            "address":"{destination_address}",
            "amount":{
                   "quantity":3000000,
                   "unit":"lovelace"
              }, 
              "assets": [
                   {
                         "policy_id":"asset_policy_id", 
                         "asset_name": "6e7466636f696e", 
                         "quantity": 5
                  }
              ]
           }
      ], 
      "passphrase":"myfirstpassword"
  }'
  1. Verifique se a transação de multi-ativo está completa e que os ativos foram movidos da carteira.

Byron

curl http://localhost:8090/v2/byron-wallets/ 

Shelley

curl http://localhost:8090/v2/wallets
  1. Você deve ver o seguinte resultado:
"assets": {
      "total": [],
      "available": [] }

Opção 2: Mova tokens para um endereço dentro da carteira existente:

  1. Verifique se você tem tokens nativos na carteira.
  2. Especifique um endereço dentro da carteira (ou em outro lugar) para enviar os tokens.
  3. Siga os passos na Opção 1 para enviar os tokens para um endereço não um valor mínimo de UTXO de ada.
  4. Mantenha o controle do endereço contendo ativos nativos.
Última atualização:
Contribuidores: cauechianca