Actiongate

Camada de segurança pré-execução para carteiras de agentes autônomos — pontuação de risco, simulação e aplicação de políticas via MCP, com nível gratuito e precificação por chamada via x402

Documentação

Ferramentas pagas por proxy via REST e MCP.

O ActionGate carrega um arquivo de configuração, expõe cada ferramenta via /proxy/:toolName e /mcp, e liquida o uso pago com créditos de API financiados por x402 ou Stripe.

Se você não fornecer um arquivo de configuração, o ActionGate usa os endpoints originais de demonstração de segurança em /v1/* e mantém os prompts de tesouraria incluídos.

Descoberta de máquina

https://api.actiongate.xyz/.well-known/agent.json

https://api.actiongate.xyz/.well-known/mcp/server-card.json

Referência

https://api.actiongate.xyz/docs/openapi.yaml

Demonstração legada de fallback: https://api.actiongate.xyz/docs/openapi-fallback-demo.yaml

Proxy genérico: https://api.actiongate.xyz/proxy/:toolName

MCP remoto: https://api.actiongate.xyz/mcp

Guia de configuração do proxy: /docs/proxy-config-guide.md

Exemplo de configuração: /examples/proxy-config.public-api.json

Namespace do MCP Registry: xyz.actiongate.api/actiongate

Traga Sua Própria API

Comece com o guia hospedado de configuração do proxy, copie o JSON de exemplo e substitua as URLs de upstream, esquemas, preços e cabeçalhos encaminhados pelo seu próprio contrato de API.

curl https://api.actiongate.xyz/examples/proxy-config.public-api.json -o proxy-config.json

# Then read the operator guide:
https://api.actiongate.xyz/docs/proxy-config-guide.md

Início rápido

curl -X POST https://api.actiongate.xyz/v1/risk-score \
  -H "content-type: application/json" \
  -d '{"actor":{"actor_id":"treasury-bot"},"action":{"action_type":"transfer","network":"base","asset_symbol":"USDC","amount":"2500"}}'

npm install @actiongate/sdk

import { ActionGateClient } from "@actiongate/sdk";

const client = new ActionGateClient({ baseUrl: "https://api.actiongate.xyz" });
const result = await client.policyGate({
  actor: { actor_id: "agent_ops_02" },
  action: { action_type: "transfer", network: "base", asset_symbol: "USDC", amount: "150000" },
  policy: { policy_id: "treasury_default_v1" }
});

Superfícies de instalação

npm install @actiongate/sdk
pip install actiongate-sdk

{
  "mcpServers": {
    "actiongate": {
      "url": "https://api.actiongate.xyz/mcp"
    }
  }
}

npm install -g actiongate-mcp

Configurações do cliente

Use estes trechos exatos para conectar o servidor MCP remoto do ActionGate em clientes de agente populares.

Claude Code

claude mcp add --transport http actiongate --scope project https://api.actiongate.xyz/mcp

VS Code

{
  "servers": {
    "actiongate": {
      "type": "http",
      "url": "https://api.actiongate.xyz/mcp"
    }
  }
}

Salve isso como .vscode/mcp.json.

Windsurf

{
  "mcpServers": {
    "actiongate": {
      "serverUrl": "https://api.actiongate.xyz/mcp"
    }
  }
}

Salve isso como ~/.codeium/windsurf/mcp_config.json.

Cursor

{
  "mcpServers": {
    "actiongate": {
      "url": "https://api.actiongate.xyz/mcp"
    }
  }
}

Salve isso como .cursor/mcp.json para uma configuração no escopo do projeto ou ~/.cursor/mcp.json para uma configuração global.

Camada gratuita

Cada agente recebe 50 chamadas totais por dia distribuídas em buckets específicos por ferramenta: 20 chamadas de pontuação de risco, 20 chamadas de simulação e 10 chamadas de gate de política gratuitamente por dia. Sem carteira, sem cadastro — basta conectar e chamar. Quando você atingir o limite, receberá uma resposta 402 com os requisitos de pagamento x402. Siga o guia abaixo para fazer upgrade para chamadas pagas.

Como pagar com x402

x402 é um protocolo aberto para micropagamentos nativos de HTTP. Quando uma chamada de ferramenta exige pagamento, o ActionGate retorna um HTTP 402 com os requisitos de pagamento nos cabeçalhos da resposta. Seu agente assina um pagamento USDC na Base e reenvia a solicitação com a prova de pagamento anexada.

O que você precisa

1. Uma carteira com USDC na Base (Coinbase Smart Wallet, MetaMask ou qualquer carteira EVM). 2. O pacote @x402/core (ou qualquer cliente compatível com x402).

Exemplo em TypeScript

import { paymentMiddleware } from "@x402/core";

// Wrap any HTTP client with x402 payment middleware.
// When a 402 is received, the middleware automatically
// signs a USDC payment and retries the request.
const client = paymentMiddleware(fetch, {
  walletPrivateKey: process.env.WALLET_PRIVATE_KEY,
  network: "base",
});

// Now calls that exceed the free tier will auto-pay:
const res = await client("https://api.actiongate.xyz/v1/risk-score", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"actor":{"actor_id":"treasury-bot"},"action":{"action_type":"transfer","network":"base","asset_symbol":"USDC","amount":"2500"}}),
});
// Paid response includes a settlement receipt.

MCP com pagamento

Para clientes MCP que suportam x402 nativamente (como o pacote stdio actiongate-mcp), defina PAYTO_ADDRESS e sua chave de carteira no ambiente. O transporte MCP lida com a negociação de pagamento automaticamente.

{
  "mcpServers": {
    "actiongate": {
      "command": "npx",
      "args": ["actiongate-mcp"],
      "env": {
        "PAYTO_ADDRESS": "0xYourWalletAddress",
        "WALLET_PRIVATE_KEY": "0xYourPrivateKey",
        "ACTIONGATE_BASE_URL": "https://api.actiongate.xyz"
      }
    }
  }
}

Resumo do fluxo

1. O agente chama uma ferramenta (camada gratuita ou paga). 2. Se a cota gratuita ainda estiver disponível, a resposta é retornada imediatamente — sem necessidade de pagamento. 3. Se a cota estiver esgotada, o ActionGate retorna HTTP 402 com os requisitos de pagamento x402. 4. Seu cliente x402 assina um micropagamento USDC na Base e reenvia a solicitação com um cabeçalho PAYMENT-SIGNATURE. 5. O ActionGate verifica e liquida o pagamento e retorna o resultado da ferramenta com um recibo de liquidação.

Prova de lançamento

O ActionGate anuncia descoberta paga por meio de cabeçalhos x402 e retorna recibos assinados em chamadas bem-sucedidas.

curl -X POST https://api.actiongate.xyz/v1/risk-score \
  -H "content-type: application/json" \
  -d '{"actor":{"actor_id":"treasury-bot"},"action":{"action_type":"transfer","network":"base","asset_symbol":"USDC","amount":"2500"}}'

HTTP/2 402
PAYMENT-REQUIRED: <base64 x402 requirements>

curl -X POST https://api.actiongate.xyz/v1/risk-score \
  -H "PAYMENT-SIGNATURE: " \
  -H "content-type: application/json" \
  -d '{"actor":{"actor_id":"treasury-bot"},"action":{"action_type":"transfer","network":"base","asset_symbol":"USDC","amount":"2500"}}'

HTTP/2 200
PAYMENT-RESPONSE: <base64 settlement response>
{"request_id":"rq_demo_risk","score":18,"severity":"low","confidence":0.81}

Solução de problemas

Conectei o servidor MCP, mas as chamadas falham com erro de pagamento. Isso geralmente significa que a camada gratuita está esgotada ou sua carteira x402 não está configurada. Use a camada gratuita primeiro ou adicione PAYTO_ADDRESS junto com suas credenciais de carteira para o pacote stdio.

Recebi uma resposta HTTP 402. Isso é esperado quando as chamadas gratuitas são usadas. Tente novamente com um cliente compatível com x402 para que ele possa anexar um cabeçalho PAYMENT-SIGNATURE automaticamente.

O endpoint MCP remoto funciona em um cliente, mas não em outro. Certifique-se de que o cliente esteja usando Streamable HTTP contra https://api.actiongate.xyz/mcp e aceite respostas JSON e event-stream durante a negociação MCP.

Preciso de ajuda para depurar uma integração. Comece com https://api.actiongate.xyz/support e inclua o ID da solicitação da resposta do ActionGate ao entrar em contato com o suporte.