Começar grátis
Português

Plataformas e marketplaces

Dê a cada usuário um endereço de depósito cripto exclusivo

Um endereço para todo mundo é justamente o problema: o dinheiro chega e nada diz de quem era. Crie um cliente com o seu próprio id de usuário e você recebe um endereço de depósito permanente derivado da sua carteira — cada pagamento se identifica sozinho, e nada passa por nós.

Por que um endereço compartilhado não funciona

Toda plataforma que aceita cripto bate no mesmo muro, na mesma ordem, geralmente depois do primeiro chamado sobre um pagamento que ninguém acha.

  • Um único endereço informa um valor e um remetente, nunca a qual dos seus usuários ele pertence. Conciliar por valor quebra na primeira vez que duas pessoas enviam a mesma quantia.
  • A gambiarra habitual é juntar tudo e repassar depois — o que transforma um recurso de pagamento em guardar dinheiro dos outros, a coisa mais pesada que uma plataforma pode assumir.
  • Pedir que o usuário cole um memo ou uma referência funciona até alguém esquecer, e aí é uma pessoa conciliando uma blockchain na mão.

Uma chamada por usuário, uma única vez

Você envia o seu próprio identificador do usuário. Recebe endereços que nunca mudam, então a chamada acontece no cadastro e nunca mais.

  1. 01

    Crie o cliente com o seu id

    Passe o id que você já usa para o usuário em `external_ref`. A Unheld não cria um identificador que você depois precise guardar e mapear — o registro é indexado pelo id que o seu banco de dados já usa.

  2. 02

    Guarde os endereços que voltarem

    A resposta traz os endereços de depósito daquele usuário, derivados da sua própria carteira. São permanentes: você pode exibi-los, colocá-los num QR code, ou deixar o usuário salvá-los e enviar de onde quiser.

  3. 03

    Credite a conta quando o webhook chegar

    Um pagamento nesse endereço é atribuído ao cliente a quem ele pertence, e a notificação devolve o seu próprio `externalRef`. Sua aplicação credita um id de usuário que já conhece, sem conciliar valores nem ler uma blockchain.

A chamada de verdade

Requisição

curl -X POST https://api.unheld.io/api/v1/customers \
  -H "Authorization: Bearer $UNHELD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "external_ref": "user_8412",
    "label": "Ada Lovelace",
    "supported_assets": ["ETH", "USDC"],
    "evm": true
  }'

Resposta

{
  "id": "c7f1…",
  "external_ref": "user_8412",
  "label": "Ada Lovelace",
  "evm_address": "0x…",
  "supported_assets": ["ETH", "USDC"],
  "receive_method": "auto"
}

Exige uma API key com o escopo `customers:write`; para lê-los de volta é preciso `customers:read`. Os endereços de cada rede em que um usuário pode pagar estão em `GET /api/v1/customers/:id/addresses`.

Como um pagamento encontra seu usuário

O endereço É o identificador. Como ele pertence a exatamente um cliente e nunca muda, um pagamento que chega é atribuído sem memo, sem campo de referência e sem busca por valor — as três coisas que quebram em produção.

Faturas também podem ser vinculadas a um cliente com `customerId`, de modo que uma cobrança avulsa e um endereço de depósito fixo sejam atribuídos ao mesmo usuário, tanto no painel quanto nos webhooks.

Onde o dinheiro realmente fica

Os fundos chegam a endereços derivados da sua própria carteira. A Unheld guarda apenas a parte pública, somente leitura: não pode movê-los, congelá-los nem perdê-los, e não há aqui nenhum saldo retido para lhe repassar depois.

O que isso não diz é se a sua plataforma está guardando fundos dos seus usuários. Provavelmente está, se os pagamentos chegam a endereços que você controla e você deve esse valor a eles. Essa é uma questão do seu próprio arranjo e da sua jurisdição, e não é uma que possamos responder por você — busque orientação. Só podemos afirmar o nosso lado: o dinheiro nunca passa pela Unheld.

Construir sobre isto

Cada um destes pontos é mais fácil de prever agora do que descobrir em produção.

  • Todo endereço de usuário deriva de uma única carteira: a sua. Isso deixa uma só frase de recuperação para proteger, não uma por usuário, e significa que os fundos não ficam segregados por usuário via chaves.
  • Um endereço permanente é reutilizado por design, e é isso que faz a atribuição funcionar. Também significa que o histórico de pagamentos de um usuário para você é rastreável on-chain por quem descobrir o endereço dele.
  • O endereço de um usuário é fixo por família de redes: o mesmo endereço EVM recebe em todas as redes EVM que você habilitar. Habilitar uma nova rede não exige reemitir endereços.
  • Excluir um cliente para de observar o endereço dele; não move — nem pode mover — o que já foi enviado para lá. O dinheiro que chegar depois da exclusão continua sendo seu, mas nada vai te avisar dele.

Perguntas

A Unheld guarda os fundos dos meus usuários?

Não. Os pagamentos vão para endereços derivados da sua própria carteira e a Unheld armazena apenas a chave pública somente leitura, então não há saldo aqui nem nada para sacar. Se a sua plataforma guarda valor para os usuários dela é outra questão, do seu próprio arranjo, e merece orientação jurídica em vez de uma resposta numa página de marketing.

Quantos usuários podem ter o próprio endereço?

Não há limite de endereços por usuário: eles são derivados, não tirados de um pool, então criar o milionésimo cliente é a mesma operação que criar o primeiro. O que é medido é a cota de clientes e a contagem de transações do seu plano, mostradas na página de preços.

O endereço de um usuário pode mudar?

Não. É essa propriedade que sustenta todo o desenho: o endereço identifica o usuário, então é emitido uma vez e permanece. Você pode exibi-lo, colocá-lo num QR code ou deixar o usuário salvá-lo na carteira dele, e ainda estará correto um ano depois.

E se dois usuários pagarem o mesmo valor ao mesmo tempo?

Nada de ambíguo acontece, porque valores nunca são usados para identificar ninguém. Cada pagamento chega a um endereço que pertence a exatamente um cliente, e o webhook carrega a sua própria referência desse cliente — valores idênticos, horários idênticos e remetentes idênticos são irrelevantes.

Crie um cliente na testnet

Faça a chamada com uma API key de teste, receba endereços reais e envie um pagamento de testnet para um deles para ver a atribuição chegar — antes de envolver dinheiro real.

Começar grátis

Desenvolvedores · Assinaturas · Preços · Não custodial · Respostas diretas.