Como aceitar USDC na Monad com links EIP-681
Com a Cosmos Pay, um link de pagamento na Monad é uma solicitação EIP-681 para um endereço de depósito criado para aquele pagamento: seu cliente escaneia o QR code com uma carteira EVM e aprova a transferência de USDC. O endereço de depósito só pode repassar o dinheiro para o seu endereço, e a Cosmos Pay marca o link como pago assim que ele faz isso. Todo link na Monad precisa de um valor.

O que um link EIP-681 contém
O EIP-681 é o padrão do Ethereum para solicitações de pagamento que as carteiras EVM leem: um link ethereum:, ou o QR code dele, com o token, a rede e o valor. A rede principal da Monad tem o chain id 143, e a Testnet dela, o 10143.
O link paga um endereço de depósito criado para aquele pagamento, não o seu endereço diretamente. O código dele só pode enviar o que recebe para o seu endereço, então a Cosmos Pay não tem nenhuma chave capaz de mover o dinheiro para outro lugar.
Como o endereço de depósito paga você
- A Cosmos Pay monitora o endereço de depósito. Assim que ele tem pelo menos o valor, um repasse leva o dinheiro para o seu endereço, e esse repasse liquida o link.
- O repasse pode tirar do pagamento uma taxa por levá-lo até você. O checkout mostra essa taxa, e a API a informa no pagamento como networkFee.
- Um valor maior é repassado inteiro para você. Um valor menor não liquida o link.
- A carteira do seu cliente paga a taxa de rede da Monad pela própria transferência, em MON.
Aceite seu primeiro pagamento em USDC na Monad
Mude para Sandbox
Entre no dashboard e escolha Sandbox no topo. Os links que você cria ali funcionam na Monad Testnet, que não tem USDC predefinido: cobre em MON, ou indique um token pelo contrato.
Adicione seu endereço da Monad
Nas configurações da sua organização, adicione o endereço EVM que vai receber o dinheiro na Monad e assine o que o dashboard pedir: essa assinatura comprova que ele é seu.
Crie o link
Em Pagamentos, escolha Criar link de pagamento, selecione Monad, informe o valor (ele é obrigatório) e o ativo, depois o seu endereço.
Pague com uma carteira
Abra a página de pagamento e escaneie o QR code com uma carteira EVM que leia links EIP-681, na mesma rede. Aprove a transferência, e o checkout passa para Pago assim que o pagamento é repassado para você.
Confirme no seu servidor
Adicione um endpoint de webhook no dashboard. Quando o pagamento é confirmado, a Cosmos Pay envia PAYMENT_INTENT_SUCCEEDED, assinado com HMAC-SHA256. Entregue o pedido quando ele chegar.
Mude para Produção
Escolha Produção e crie uma chave de API de produção (começa com prod_). Os links passam a funcionar na rede principal da Monad, onde o USDC tem a sua própria predefinição.
Crie o link no seu servidor
Chame POST /v1/payment-intents/pay com chain definido como monad, o seu endereço como destino, o valor e, para USDC, o código do ativo com o contrato dele como emissor, ou passe chain: 'monad' para client.paymentIntents.createPay no SDK em TypeScript (versão 2.2 ou posterior). A resposta traz o link (o uri dele começa com ethereum:) e o QR code.
Os links na Monad não aceitam mensagem. Para confirmar um pagamento antes de o repasse chegar, envie o hash da transação do seu cliente (0x e 64 caracteres hexadecimais) para POST /v1/payment-intents/:id/validate.
Bom saber
- Um link fica aberto por um tempo limitado. Um pagamento completo que ainda chegue depois disso é repassado para você e marca o link como pago.
- Outro pagamento para o mesmo endereço de depósito também é repassado para o seu endereço.
- Com a sua própria taxa no pagamento, o endereço de depósito o divide: a sua taxa vai para a sua carteira de taxas e o restante, para você.
- Cada pagamento paga a tarifa do seu plano, a mesma de todas as redes.
Perguntas e respostas.
Pagamentos por rede:Pagamentos na StellarPagamentos na SolanaPagamentos na Monad
Por que o link paga um endereço de depósito e não o meu endereço?
Cada pagamento recebe o próprio endereço, então a Cosmos Pay consegue distinguir os pagamentos sem um memo. O endereço só pode repassar o que recebe para o seu endereço.
Quem paga as taxas na Monad?
A carteira do seu cliente paga a taxa de rede da transferência dele. A taxa do repasse, quando existe, é descontada do pagamento e aparece no checkout.
Meu cliente pode escolher o valor?
Não. Um link na Monad precisa de um valor. Para valores abertos, use um link da Stellar ou da Solana.
Posso testar na Monad?
Sim. No Sandbox e com chaves de teste (dv_), os links funcionam na Monad Testnet. Ela não tem USDC predefinido, então cobre em MON ou indique um token pelo contrato.
