Skip to main content
WalletAo vivo

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.

wallet · agente: checkout-bot
slot BRL · trilho PixR$4,285.10Ao vivo
slot USDC · Base / CDP$612.40Ao vivo
gate settle · /agent-ready-$0.04há 2min
pix out · fatura de fornecedor-R$180.00há 1h

não-custodial · chaves nunca são nossas
mandato cm_7f3a · teto $50/dia · governa os dois slots · toda movimentação selada

O problema

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.

Do jeito manual, como sempre foi
  • 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 $
Com a Wallet
  • 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
Como funciona

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.

ReceberTransferirAdicionar fundosPix outBridge

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.

No código

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.

create-agent-wallet.ts
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
});
wallet_7f3a · mandato cm_7f3a selado · pix_out liberado

O mesmo mandato, aplicado

wallet · checagem do mandato
Pix out · fatura de fornecedorR$180,00liberado
USDC settle · chamada no gateway$0,04liberado
Pix out · pedido avulsoR$620,00bloqueado · acima do teto
Transferência · engenharia → wallet de opsR$0,00sem taxa

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.

Arquitetura

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

BRL
Trilho Pix
USDC
Base · CDP
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
Pronta pra arquitetura
  • 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
Preço

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.

R$0
Criar e manter
Wallet mais saldo, sempre
R$0
Transferências na org
Entre seus próprios agentes
10bps
Taxa da linha Pay
Só saída, sob mandato
R$2.00
Teto por transação
Piso R$0,05
Status honesto

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.

Primeiros passos

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.

  1. Crie uma wallet pro agente
  2. Assine um mandato que limita o que ele pode gastar
  3. Toda movimentação — entrada ou saída — sela um recibo automaticamente
Onde isso aparece

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.

FAQ

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.

Wallet — uma wallet por agente, um mandato sobre ela | CodeSpar | CodeSpar