Ir para o conteúdo principal
CONTROLES DE GASTOS

Seu agente não pode gastar mais do que você definiu.

Defina uma concessão por período e um limite por transação em cada agente no painel. O backend a aplica em cada pagamento de saída - o código do agente não pode contorná-la.

Visão do painel: permissões de gastos por agente - limite, limite por transação, período

Agentes autônomos cometem erros. Eles tentam novamente. Eles fazem loops. Eles são injetados com prompts. Eles ocasionalmente tentam gastar dinheiro que você não autorizou.

Uma permissão de gasto Blockchain0x é definida pelo proprietário no painel e aplicada pelo backend, não pelo código do agente. Cada pagamento de saída é verificado em relação à permissão ativa antes que a API a aceite, então o agente não pode exceder o limite mesmo que sua lógica tente. Seu código pode ler a permissão pela API para exibi-la ou planejar em torno dela, mas não pode aumentá-la.

O QUE UMA PERMISSÃO DE GASTO TEM

Quatro dimensões. Definido uma vez. Aplicado em todos os lugares.

Alocação por um período

allowance_wei é o total de USDC (unidades base) que o agente pode enviar em uma janela de period_seconds. O período é um dia (86400), uma semana (604800) ou 30 dias (2592000).

Limite por transação

per_tx_wei é o maior pagamento único permitido. Ele impede que uma chamada equivocada mova mais do que você pretendia, independentemente da concessão de período.

Janela de validade

start_at e end_at são vinculados quando a permissão está ativa. Fora da janela, não autoriza gastos, então você pode pré-estabelecer um orçamento ou deixar um expirar por conta própria.

Revogação

revoked_at registra quando uma permissão foi desligada no painel. Revogar leva a concessão a zero imediatamente para qualquer pagamento avaliado após isso.

GERENCIADO PELO PAINEL, SOMENTE LEITURA VIA API

A chave do agente não pode aumentar seu próprio limite.

Você cria, altera e revoga permissões de gastos no painel. A API as expõe somente leitura - não há endpoint e nenhum método SDK que muta uma permissão. Esse é o ponto: se o agente for injetado por prompt ou ficar preso em um loop, ele não pode ampliar sua própria concessão, porque a credencial que possui nunca recebeu esse poder.

Quando um pagamento excede a permissão ativa, o backend o rejeita antes que qualquer coisa toque a cadeia. Nenhum fundo se move. Seu agente lida com essa rejeição como qualquer outra chamada falhada, e você vê a tentativa no painel para que possa ampliar a permissão se for legítima.

LEIA VIA A API

Busque a permissão atual para exibir ou planejar em torno dela.

GET /v1/agents/{id}/spend-permissions retorna os valores ao vivo. Use-o para mostrar um orçamento na sua UI, ou para permitir que o agente verifique quanto espaço resta antes de tentar um pagamento.

LEIA (CURL)
curl https://api.blockchain0x.com/v1/agents/agt_123/spend-permissions \
  -H "Authorization: Bearer $BLOCKCHAIN0X_API_KEY"
RESPOSTA
{
  "allowance_wei": "5000000",
  "per_tx_wei": "1000000",
  "period_seconds": 86400,
  "start_at": "2026-05-15T00:00:00Z",
  "end_at": null,
  "revoked_at": null
}
allowance_wei

Total spend allowed per period, in USDC base units (6 decimals). "5000000" is 5 USDC.

per_tx_wei

Largest single payment allowed, in base units. "1000000" is 1 USDC. A payment over this is rejected even if the period allowance has room.

period_seconds

A janela à qual a concessão se aplica: 86400 (dia), 604800 (semana) ou 2592000 (30 dias).

start_at / end_at

Quando a permissão está ativa. end_at é nulo para uma permissão sem prazo.

revoked_at

Nulo enquanto ativo; um timestamp uma vez revogado do painel. Uma permissão revogada não autoriza nada.

O PERÍODO

Dia, semana ou 30 dias.

period_seconds aceita um dos três valores. A concessão é redefinida quando o período se encerra; per_tx_wei se aplica a cada pagamento individual, independentemente do período.

86400

1 dia

604800

1 semana

2592000

30 dias

Uma permissão de gasto é um limite rígido, definido uma vez, aplicado em todos os lugares - não um fluxo de aprovação por pagamento e não uma confirmação com humano no loop. Se você precisar de aprovações ou múltiplas assinaturas, esse é um padrão separado e mais pesado; a permissão é o piso sempre ativo sob ele.

PERGUNTAS FREQUENTES

Cinco perguntas sobre permissão de gasto que os operadores fazem.

Posso definir ou alterar uma permissão de gasto através da API?

Não. As permissões de gasto são somente leitura pela API. Você cria, altera e revoga-as no painel do Blockchain0x, e GET /v1/agents/{id}/spend-permissions permite que seu código leia os valores atuais para exibi-los ou verificá-los. Isso é deliberado: a própria chave da API do agente não pode relaxar seus próprios limites, que é exatamente a propriedade que você deseja se o agente for algum dia injetado ou entrar em loop. Para aumentar uma concessão, você precisa do painel.

O que acontece quando um pagamento excede a permissão?

O backend rejeita isso antes que qualquer coisa toque a cadeia - nenhum fundo se move. A aplicação da regra vive no backend, não no código do seu agente, então o agente não pode contornar isso mesmo que sua lógica tente. Leia a permissão com a rota GET para mostrar ao seu agente quanto espaço resta, e trate a rejeição de payments.create da mesma forma que você trataria qualquer outra chamada falhada.

Por que os valores estão em wei em vez de dólares?

Consistency with the rest of the API: every amount is a base-unit string. USDC has 6 decimals, so allowance_wei "5000000" is 5 USDC and per_tx_wei "1000000" is 1 USDC. Strings, not floats - large integers lose precision as JSON numbers, and a base-unit string is unambiguous across languages.

As permissões de gasto limitam os pagamentos recebidos?

Não. Uma permissão governa apenas o dinheiro saindo da carteira. O USDC de entrada nunca é bloqueado por isso - qualquer um pode pagar seu agente a qualquer momento. Pense na permissão como uma válvula unidirecional sobre gastos de saída; o acerto de entrada é confirmado separadamente pelo webhook payment.received.

Como revogo o gasto rapidamente se algo parecer errado?

Revogue a permissão no painel - isso define revoked_at e leva a concessão a zero para qualquer pagamento avaliado posteriormente. Para uma parada mais drástica, você também pode rotacionar ou revogar a chave da API do agente (apiKeys.rotate / apiKeys.revoke), o que corta completamente a credencial. Ambos são imediatos; a revogação da permissão é a cirúrgica, a revogação da chave é o interruptor de emergência.

Gaste com limites, não surpresas.

Defina uma concessão e um limite por transação no painel. O backend faz o resto.