Build agentic checkout.
Publish a checkout autonomous agents can discover and buy from — every sale verified, gated against your policy, and settled to your own address. Open to all agents. Any rail. Non-custodial.
Veto governs · the rail executes.
import { createCheckout, BALANCED } from '@veto-protocol/checkout';
import { createNodeServer } from '@veto-protocol/checkout/http';
const checkout = createCheckout({
merchant: { id: 'acme', name: 'Acme Corp', domain: 'shop.acme.example' },
catalog: [{ sku: 'widget', name: 'Blue Widget',
price: { amount: '12.50', currency: 'USD' }, available: true }],
receiving: { x402: { chain: 'base', address: '0xYourAddress', asset: 'USDC' } },
policy: BALANCED(),
});
createNodeServer(checkout).listen(8080);Explore the docs
Getting Started
Stand up a self-describing agentic checkout in 30 seconds, then settle a mock order end to end.
Start hereConcepts
The acceptance gate, mandates, trust tiers, policy, rails, and the mutual-receipt model.
How it worksAgentic Checkout Protocol
Every endpoint, status code, and reason code — the self-describing wire protocol agents talk to, in full.
Browse the protocolSDK · CLI · MCP
The @veto-protocol/checkout SDK, the veto CLI, and the MCP server for agent integrations.
ToolingGuides
x402 settlement, policy presets, receipt verification, webhooks, and going to production.
RecipesReference
Reason codes, policy fields, trust tiers, and the full type contract in one place.
Look it up