Integrations

Circle Agent Stack

ArbiSim Guard is natively integrated with the Circle Agent Stack. AI agents using Circle Agent Wallets can route every transaction through our pre-flight policy engine before signing, and pay per call with Circle x402 Agent Nanopayments — no API key or signup required.

TL;DR for developers

Send your Circle Agent Wallet transaction or ERC-4337 UserOp to POST /api/v1/circle/policy-check. You get back approved: true/false with a plain-English reason, and a full fork simulation is logged for the audit trail. Pay $0.001 USDC per call via the X-402-Payment header, or use a normal API key.

What the integration gives you

Pre-flight policy hook

Intercept Circle Agent Wallet payloads before they are signed. Instant APPROVED/REJECTED verdict plus a background block-accurate fork simulation.

x402 pay-per-call billing

Agents pay $0.001 USDC per simulation via @circle-fin/x402-batching. No API keys, no credit cards, no signup friction.

USDC protection

USDC transfers, approvals, and swaps are detected automatically and flagged in telemetry (usdcProtectionActive) for extra guardrails.

Circle CLI skill

Install the arbisim-guard skill so agents on Circle CLI, Claude Code, Cursor, or OpenClaw can call the guardrail with one command.

How it fits together

flow
Circle Agent Wallet                ArbiSim Guard
      |                                   |
      |  1. POST /api/v1/circle/policy-check
      |---------------------------------->|
      |                                   |-- heuristic policy checks (instant)
      |                                   |-- ephemeral Anvil fork simulation
      |                                   |   (queued, logged to audit trail)
      |  2. { approved, reason, telemetry }
      |<----------------------------------|
      |                                   |
      |  3. Sign & broadcast ONLY if approved
      v
  Arbitrum / Arc network

POST /api/v1/circle/policy-check

Evaluates a transaction or ERC-4337 UserOp for a Circle Agent Wallet and returns a policy verdict. Provide at least one of transaction, userOp, or walletId.

bash
curl -X POST https://api.arbisimguard.com/api/v1/circle/policy-check \
  -H "Content-Type: application/json" \
  -H "X-402-Payment: x402 0xYourAgentWallet:0.001:0xSignature" \
  -d '{
    "walletId": "circle_agent_wallet_01",
    "network": "arbitrum-one",
    "transaction": {
      "to":   "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
      "data": "0xa9059cbb...",
      "value": "0x0"
    }
  }'

Request body

FieldTypeRequiredDescription
walletIdstringYour Circle Agent Wallet identifier (for logging and telemetry).
transactionobject*Standard EVM payload: { to, data, value, gasLimit, from }.
userOpobject*ERC-4337 UserOperation: { sender, callData, ... }. Simulated against EntryPoint rules.
networkstringTarget chain. Default: "arbitrum-one". Also: "arbitrum-sepolia", "arc-testnet".
chainIdnumberOptional numeric chain ID, used alongside network.

* At least one of transaction or userOp must be present, otherwise the endpoint returns 400 with approved: false.

Response

json
{
  "approved": true,
  "policyId": "pol_circle_arbisim_guard_v1",
  "sessionId": "8f4a1c2e-...",
  "reason": "Pre-flight simulation guardrail passed. Safe to broadcast.",
  "telemetry": {
    "network": "arbitrum-one",
    "x402Verified": true,
    "usdcProtectionActive": true,
    "timestamp": "2026-07-04T10:15:00.000Z"
  }
}
FieldMeaning
approvedtrue = safe to sign and broadcast. false = your agent should abort.
reasonPlain-English explanation of the verdict (e.g. gas limit exceeds the safety threshold).
sessionIdID of the full background fork simulation logged for the audit trail. Retrieve it later via the standard simulation API.
telemetry.x402VerifiedWhether this call was paid via a verified x402 nanopayment.
telemetry.usdcProtectionActivetrue when the payload touches USDC (transfer/approve/swap) and USDC guardrails were applied.

Paying with Circle x402 Agent Nanopayments

Both /api/v1/simulate and /api/v1/circle/policy-check accept x402 payments. There are three ways to authenticate a request:

1

Official Circle SDK (recommended)

Use the @circle-fin/x402-batching client. It handles the 402 challenge, batching, and payment headers automatically.

2

Manual X-402-Payment header

Attach X-402-Payment: x402 <payerAddress>:<amountUsdc>:<signatureOrTx> to any request. $0.001 USDC per simulation call.

3

Classic API key

Prefer subscriptions? Create a free key in the dashboard and send it as X-API-Key. Both auth paths coexist — x402 never breaks API-key flows.

If a request arrives with no payment and no API key, the gateway answers with an RFC-compliant HTTP 402 Payment Required that tells the agent exactly how to pay:

json
{
  "error": "Payment Required",
  "status": 402,
  "x402": {
    "pricePerRequestUsdc": "0.001",
    "recipient": "0x9eA8B065a624DF44CaB6C8cae74a22e07e29f2f1",
    "supportedChains": ["arbitrum-one", "arbitrum-sepolia", "arc-testnet"],
    "instructions": "Attach header X-402-Payment: x402 <payerAddress>:<amount>:<signatureOrTx> or use the official @circle-fin/x402-batching client."
  }
}

TypeScript integration

Wrap your agent's signing step with the CircleAgentWalletGuardrail connector so nothing is ever broadcast without a verdict:

typescript
import { CircleAgentWalletGuardrail } from 'arbisim-guard';

const guardrail = new CircleAgentWalletGuardrail({
  endpoint: 'https://api.arbisimguard.com/api/v1',
  useX402Nanopayments: true, // pay $0.001 USDC per call, no API key
});

const policy = await guardrail.evaluatePolicy({
  walletId: 'circle_agent_wallet_01',
  network: 'arbitrum-one',
  transaction: {
    to: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', // USDC on Arbitrum
    data: '0xa9059cbb...',
  },
});

if (!policy.approved) {
  throw new Error(`Execution aborted by ArbiSim Guard: ${policy.reason}`);
}
// Safe — let the Circle Agent Wallet sign and broadcast.

Circle CLI skill

Agents on Circle CLI, Claude Code, Cursor, or OpenClaw can install the guardrail as a skill:

bash
circle skill install arbisim-guard

Once installed, the agent gains a policy-check capability it invokes automatically before any on-chain action, with x402 payment handled for you.

Supported networks

"arbitrum-one""arbitrum-sepolia""arc-testnet"

Reference

OpenAPI spec & interactive docs: https://api.arbisimguard.com/api-docs ↗

Pricing: $0.001 USDC per policy check or simulation via x402.

Audit trail: verdicts are logged on-chain via the SimulationRegistry contract on Arbitrum Sepolia.

Circle Agent Stack — ArbiSim Guard Docs