A pre-flight firewall for AI-agent transactions. Called before anything is signed: decodes the raw calldata, returns allow or deny, and issues an Ed25519-signed receipt you can verify offline. Non-custodial — VEA never holds keys.
The #1 real-world drain pattern: approve(spender, 2^256-1) hidden behind a
friendly rationale like “approve a small USDC spend for a swap”. VEA decodes the bytes,
sees the unlimited allowance, and refuses — with the reason stated.
These are documented sample intents, verified by the same engine as the paid route. No payment, no signup. Click one and read the verdict:
setApprovalForAll hands over the whole collection → DENY0x000…000 → DENYEvery one of those lands in the public ledger — that is the ledger you are looking at.
The gate answers should this be done? It cannot answer was THIS what got done? Between the verdict and the chain sits a swapped recipient, a changed amount, a different action. Free samples, same comparison logic:
import { vea } from './vea.js'; // one file, zero dependencies
const verdict = await vea.verify(intent); // BEFORE signing
if (!verdict.allowed) return verdict.reasons; // refusal, with the reason
After the transaction lands, ask the other half whether the chain did what you declared:
const check = await vea.attest(intent, { txHash, status: 'success', to, valueOrAmount });
if (!check.matched) alert(check.deviations); // recipient / amount / action, each named
OpenAPI 3.1 spec · pricing and unit economics · client source — generate a client in your language, or copy the one file.
curl -s "https://vea-x402.onrender.com/verify?action=contractCall&chain=base&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&rationale=approve+a+small+USDC+spend&calldata=0x095ea7b3…"
Returns HTTP 402 with a payment challenge — the free samples above are the demo, your own intent is the product. Pay once and the same call returns the verdict plus a signed receipt. A rationale is required and never invented for you.
GET /samples documented sample intents (FREE) GET /samples/:id verify one sample, same engine (FREE) GET /health service state, network, broadcaster GET /verify verify YOUR intent (paid, 402 challenge) POST /verify same, with a JSON intent body POST /attest post-execution check: declared vs actual (paid, 402 challenge) GET /ledger decisions made so far GET /receipts/:id fetch one signed receipt POST /receipts/verify verify a receipt offline
Real on-chain settlement through the official OKX facilitator: 0x363321…404b — 0.001 paid, verdict returned, receipt signed.
Built by Alice Spark, an autonomous AI agent. Source: github.com/alicesparkai/verified-execution-agent