Uma wallet por agente.Um mandato sobre ela.
Um agente que recebe e um agente que gasta precisam de um lugar pra guardar o dinheiro. Cada um tem sua própria wallet, não-custodial, com um slot por trilho: dólar continua dólar e real continua real, sem FX sintético no meio.
não-custodial · chaves nunca são nossas
mandato cm_7f3a · teto $50/dia · governa os dois slots · toda movimentação selada
Conta compartilhada não é fronteira. Uma moeda só não sai de graça.
Dar dinheiro pra um agente trabalhar costuma virar um de dois atalhos: uma conta compartilhada sem fronteira entre agentes, ou converter tudo por uma única moeda e pagar spread de FX em trilhos que nunca precisaram disso.
- Uma conta de tesouraria compartilhada — qualquer agente com acesso pode gastar o que todos os outros contavam ter
- Todo pagamento convertido por uma única moeda, pagando spread de FX em trilhos que nunca precisaram disso
- Limite de gasto vive num documento de política ou numa mensagem no Slack, não em algo que realmente barre uma transferência
- Depois do fato, uma única linha de ledger compartilhada — sem resposta clara de qual agente moveu qual R$ ou $
- Uma wallet por agente — uma fronteira que um agente comprometido ou com bug não consegue ultrapassar
- BRL continua BRL, USDC continua USDC — um slot por trilho, sem FX sintético no meio
- Um mandato assinado limita toda movimentação, checado antes de a transferência executar, não depois
- Toda movimentação — entrada ou saída — sela um recibo vinculado ao agente e ao mandato que autorizou
O mandato governa os dois slots.
O que o agente pode gastar, e onde, é decidido antes do dinheiro se mover, não depois. O mesmo mandato assinado que limita uma liquidação em USDC no gateway também limita um pagamento Pix — uma política, os dois slots, sempre.
Saldos ilustrativos de um agente de sandbox, os mesmos do painel acima. O que importa: a wallet pertence ao agente, o mandato pertence a você, e em nenhum dos dois casos somos nós que seguramos o seu dinheiro.
Duas chamadas: uma wallet, depois o mandato que a governa.
Criar a wallet e vincular o mandato a ela são duas chamadas, não dois sistemas. O teto é assinado uma vez, antes de ser checado, e governa o slot BRL e o slot USDC do mesmo jeito — subir o limite de um trilho nunca sobe o do outro por tabela.
const session = await codespar.sessions.create(); // one wallet per agent — non-custodial, a slot per rail const wallet = await codespar.wallets.create({ agentId: "checkout-bot" }); // the cap is signed once, before any money can move on either slot const mandate = await codespar.mandates.create({ walletId: wallet.id, caps: [ { rail: "pix", currency: "BRL", perTxCap: 18000, dailyCap: 500000 }, { rail: "usdc-onchain", currency: "USDC", perTxCap: 5000, dailyCap: 20000 }, ], }); await session.execute("codespar_wallet", { walletId: wallet.id, mandateId: mandate.id, op: "pix_out", amount: 18000, // minor units — inside the BRL per-tx cap above });
O mesmo mandato, aplicado
Mesmo agente de sandbox do painel acima. A terceira linha é o ponto: um pedido acima do teto por transação do mandato é rejeitado antes de chegar ao trilho, não sinalizado depois.
Dois trilhos ao vivo hoje. Feita pra carregar mais.
A wallet é dividida em fatias por trilho, não um saldo único — cada trilho fica no seu próprio slot pra nada ser convertido nas suas costas. Hoje isso é uma subconta em BRL e um slot em USDC na Base. A arquitetura é construída pra que um novo trilho vire mais uma fatia sob o mesmo mandato, não um caso especial remendado por cima.
Trilhos ao vivo agora
- Subconta em BRL sobre o trilho Pix
- Slot em USDC na Base via Coinbase CDP
- Um mandato assinado limita os dois slots — sem configuração por trilho
- Mais fatias por trilho conforme novos trilhos entram no ar
- O mesmo modelo de mandato se estende a cada uma automaticamente
- Ainda sem lista fechada nem data — é assim que a wallet é construída, não uma promessa do que vem a seguir
A wallet em si é grátis. Tirar dinheiro dela não.
Criar uma wallet, manter saldo, rodar quantas wallets tiver agentes, transferências dentro da mesma org — tudo R$0, sempre. A única coisa que é cobrada é dinheiro saindo da wallet sob mandato, e é cobrado uma vez, na linha Pay: 10 bps, piso R$0,05, teto R$2,00 por transação.
Ao vivo, em produção, não-custodial.
Ao vivoIsso não é um preview. Wallets são o mesmo mecanismo que agentes reais usam hoje pra guardar fundos entre uma liquidação no Gate e um pagamento Pix — abra o dashboard e você vai ver uma de verdade, não um mockup.
Dê uma wallet ao seu agente
Sem configuração separada por trilho: o mandato que você assina governa o slot em USDC e o slot em BRL do mesmo jeito.
- Crie uma wallet pro agente
- Assine um mandato que limita o que ele pode gastar
- Toda movimentação — entrada ou saída — sela um recibo automaticamente
Veja em um caso de uso real
Wallet não é um produto de demonstração. É o mandato por trás do dinheiro que já está se movendo em produção, como neste caso.
Wallet, respondido
Não. As chaves nunca são nossas. A wallet pertence à org do agente; nós governamos a movimentação através do mandato, não seguramos os fundos.
Sem FX sintético. Cada trilho fica no seu próprio slot — dólar continua dólar, real continua real.
R$0 pra criar, manter ou rodar quantas precisar. Só a movimentação de saída sob mandato é cobrada, na linha Pay.
O mandato — uma autoridade assinada, com teto, revogável, checada antes de cada movimentação, não depois.
Uma wallet por agente é o padrão; fale com a gente se sua configuração precisar de algo diferente.
Sim — é o mesmo mecanismo de wallet que agentes reais usam em produção, não um preview.
Ainda não. Duas estão ao vivo hoje — uma subconta em BRL sobre o Pix e um slot em USDC na Base. A arquitetura é construída pra carregar mais fatias por trilho conforme novos trilhos entram no ar; a gente ainda não nomeia nem data o que vem a seguir.
Ele é rejeitado antes de se mover. O teto é checado contra o mandato no momento em que a transferência é pedida — uma tentativa bloqueada nunca chega ao trilho, então não tem nada pra reverter.
Sim — abra /dashboard/wallets na sua org e você vai ver os slots BRL e USDC ao vivo de cada agente, não uma conta de demonstração.
Dê uma wallet ao seu agente.
Não-custodial, multi-slot, um mandato sobre tudo que ele pode mover.
wallet: Ao vivo.