Sua API grava.
Seu painel lê.
Crie um usuário de custódia para cada usuário do seu app. Ele recebe endereços de depósito permanentes, cada depósito é creditado no saldo dele e você acompanha tudo no painel.
Um usuário de custódia por usuário do seu app
Seu app cria usuários de custódia com o próprio ID de usuário (external_id) e guarda o id retornado. Cada usuário de custódia tem endereços de depósito permanentes e um saldo próprio por moeda, dentro do seu gateway. O painel os lista, mas não os cria: isso é feito pela API.
1. Crie o usuário
Envie o ID do usuário e, opcionalmente, nome, e-mail e metadata. Chamar de novo com o mesmo external_id retorna o mesmo usuário, então é seguro repetir.
curl https://coino.live/api/v2/custody/users \
-H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"external_id": "customer_1001", "name": "Sara", "email": "[email protected]"}'2. Mostre ao usuário os endereços de depósito
A resposta lista os endereços do usuário, quais moedas e redes cada um aceita e os saldos. Os endereços nunca mudam, então seu app pode mostrá-los de forma permanente, por exemplo em uma página "Depositar".
{"data": {
"id": "01m6…", "external_id": "customer_1001", "status": "active",
"addresses": [{"address": "TQ5x…", "networks": ["tron"], "assets": ["usdt-tron", "trx-tron"]}, …],
"balances": [{"asset": "usdt-tron", "balance": "125.5"}]
}}3. Os depósitos são creditados automaticamente
Quando um usuário envia moedas para um dos seus endereços, enviamos o webhook custody.deposit.detected, e custody.deposit.credited quando o depósito é confirmado e somado ao saldo. Você também pode listar os depósitos creditados a qualquer momento, do mais novo ao mais antigo.
Credite o usuário no seu próprio app ao receber custody.deposit.credited e use o id do depósito para nunca creditar o mesmo depósito duas vezes.
4. Mova saldos para o seu saldo principal
O saldo de um usuário de custódia pertence a esse usuário no seu gateway. Mova-o para o seu saldo principal pela API (tudo ou um valor), pelo botão na página do usuário no painel ou automaticamente a cada depósito creditado, com a configuração do gateway. Os saques são pagos do seu saldo principal.
Tratamento de status
| Status no painel | Significado | Saldo disponível |
|---|---|---|
| Confirmando | O depósito foi visto na blockchain e aguarda confirmações. | Sem alteração |
| Creditado | O depósito foi confirmado e somado ao saldo do usuário (descontadas as taxas). | Aumenta no valor creditado |
| Retido para análise | Nossa equipe verifica o depósito antes de creditá-lo. | Sem alteração |
Um depósito é creditado exatamente uma vez, mesmo que um webhook chegue duas vezes.
Conheça o serviço de Custódia