{"uid":"cap_qwmlXzYD-AICSWo3zniQ0","slug":"agent-embassy-preflight-check-b88deffd","name":"Agent Embassy Preflight Check","description":"Agents pay for work and prove what happened.","url":"https://aemb.pro/v1/preflight/check?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"intent":{"type":"object","description":"The intended invocation: operation (required), params_summary (sha256 of canonical params — params never travel), advertised_cost_usdc"},"policy":{"type":"array","items":{"type":"string"},"description":"Your policy strings, e.g. [\"require namespace proof\", \"no unverified network egress\", \"fresh observation <24h\", \"no undisclosed intermediary fee\"] (max 20)"},"context":{"type":"object","description":"principal_wallet + chain (eip155:8453). Optional."},"dry_run":{"type":"boolean","description":"true = free dry-run: field-coverage map + exact price quote only. Intercepted before the payment gate; no proof bytes, no verdict, no signature."},"subject":{"type":"object","description":"The spend target: server_id (required), artifact (mcpb:// | oci:// | https://), claimed_version"},"idempotency_key":{"type":"string","description":"Idempotency key: UUID v4, client-generated, one per logical request. Replaying the same key on this tool returns the original receipt — the action is not re-run, and the first request's receipt wins even if you resend different inputs. Published example keys are rejected. Keys are scoped per tool and per payer account: a key never returns another wallet's receipt."}}},"responseSchema":{"type":"json","example":{"tool":"preflight_check","chain":["request","authorization","action","proof","liability_boundary"],"status":"complete","account":"0x1111111111111111111111111111111111111111","verdict":"PROCEED_WITH_CAUTION","receipt_id":"emb_xyz789","receipt_version":"embassy-receipt/2"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.25","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.25/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_qRsNBMoXAHeb_4XgMgZ6i","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.25","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates an agent's intended action against policy rules, pays via USDC, and returns a signed receipt proving what was authorized and executed.","exampleAgentPrompt":"Before my agent calls server 'srv-abc123' to run the summarize-document operation, run a preflight check against my policies 'require namespace proof' and 'no undisclosed intermediary fee', using wallet 0xABCD...1234 on Base (eip155:8453), and give me a signed receipt proving what was authorized.","exampleUseCases":[{"title":"Policy gate before agent spends funds","prompt":"My agent is about to pay for a GPU job on server 'srv-gpu-42' — before it does, run a preflight check with my policies 'no unverified network egress' and 'fresh observation <24h' so I get a signed receipt showing it was authorized."},{"title":"Dry-run cost estimate without paying","prompt":"Do a dry-run preflight check for the 'generate-report' operation on server 'srv-reports-99' — I just want to see which policy fields would be checked and get an exact price quote before I commit to paying."},{"title":"Audit trail for autonomous agent action","prompt":"My agent just ran an operation on artifact 'mcpb://my-org/my-tool:v1.2.0' on server 'srv-mcp-7' — can you run a preflight check with idempotency key '3f2a1b4c-8d9e-4f0a-b1c2-d3e4f5a6b7c8' so I have a tamper-evident receipt I can show an auditor proving what happened and where liability sits?"}],"resultDescription":"A JSON object containing a verdict (e.g. PROCEED_WITH_CAUTION or PROCEED), a receipt_id, receipt_version, the full authorization chain (request → authorization → action → proof → liability_boundary), the payer account address, and a status field. In dry-run mode, returns only field coverage and exact price quote with no proof bytes or signature.","failureModes":["Published or previously-used idempotency keys are rejected","Missing required fields (server_id, operation) return validation errors","Policy strings that cannot be evaluated return unresolvable-policy errors","Insufficient USDC balance causes payment gate failure","Replaying an idempotency key returns the original receipt even with different inputs","Dry-run mode returns no verdict or proof bytes by design"],"whenToPreferThis":"Choose this endpoint when you need a cryptographically provable, policy-gated authorization record before an agent takes an irreversible or costly action — especially when you need liability boundaries, spending policy enforcement, or an audit trail for autonomous agent operations on Base (eip155:8453). It is distinct from generic payment APIs because it combines policy evaluation, payment, and signed proof in one atomic call.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-12T12:37:57.931Z","isFirstParty":false,"canonicalSlug":"agent-embassy-preflight-check-b88deffd"}