Cenários de gestão de multi-ativos em exchanges
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 UTXO (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-graphql ou cardano-rosetta.
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-sync. 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 Readme 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é-requisitos 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 passos
Gastando UTXO com ativos nativos anexados
Ao construir uma transação com ativos nativos usando cardano-cli
, conforme delineado em esta seção, é importante levar em conta duas coisas:
- O valor em ada que você deseja enviar
- 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-wallet 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 nativos 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
- Verifique as informações da carteira para confirmar
- 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
- 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 cunhagem 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 ada para mais informações sobre os requisitos mínimos de UTXO.
Opção 1: Envie tokens de volta ao emissor ou remetente:
- Verifique o endereço do remetente ou do emissor.
- 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"
}'
- 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
- Você deve ver o seguinte resultado:
"assets": {
"total": [],
"available": [] }
Opção 2: Mova tokens para um endereço dentro da carteira existente:
- Verifique se você tem tokens nativos na carteira.
- Especifique um endereço dentro da carteira (ou em outro lugar) para enviar os tokens.
- 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.
- Mantenha o controle do endereço contendo ativos nativos.