# Vaultfire V2 autonomous request contracts

Generated from executable admission, route exports and payment authority. This describes V2 only; V3 is disabled. No payment or public-chain execution is performed by the local verification journey.

The bounded PAYMENT-REQUIRED header uses the versioned public-contract-references.v1 profile. Its Bazaar schema references resolve into this machine contract's $defs; the full unchanged constraints are also mirrored in the402 body's discoverySchemas. Price, recipient, asset, network and request binding remain the canonical header requirements. Do not treat a schema or a synthetic local receipt as production fulfillment evidence.

For the no-secret HTTP evaluation, follow [the loopback guide](https://theloopbreaker.com/docs/x402-local-evaluation.md). Its source entrypoint is scripts/x402-local-evaluation.mjs; it runs actual handlers and Redis with synthetic payment/gas transports, not public-chain execution. The machine contract's localEvaluation field supplies the versioned profile and limits.

Machine contract: https://theloopbreaker.com/schemas/x402/v2-input-contracts.json
Discovery: https://theloopbreaker.com/.well-known/x402.json
OpenAPI3.1: https://theloopbreaker.com/schemas/x402/openapi.v2.json

## Public-only journey
1. Read discovery, then each endpoint inputSchema or its requestContract URL. Inventory is76 catalog operations (31 GET,45 POST),74 priced and2 free. Noncatalog helpers are separately classified, not counted.
2. Choose a supported resource. For a local static example use GET /api/x402/trust/contracts with no query (delegates to the real local /api/contracts handler; not on-chain verification).
3. Build a valid request from required fields and constraints. Missing payment yields402 and base64 PAYMENT-REQUIRED. Validate accepted network, amount, asset and recipient against the challenge. The exact route validates bad inputs first: malformed input400 cannot settle or invoke the fulfillment handler.
4. A real paid client would supply PAYMENT-SIGNATURE and an explicit Idempotency-Key; the local journey uses a labeled synthetic facilitator and moves no funds.
5. Preserve exact request, explicit key, authorization, paymentId and PAYMENT-RESPONSE. Repeat that identical request for retry and cached receipt recovery. There is no public receipt-by-id endpoint.
6. Do not retry a new payment on ambiguous settlement, binding mismatch, corrupt receipt or exhausted fulfillment retries.503 Retry-After3/5 means exact-request retry or operator reconciliation, not permission to pay again. Dependency failures are not successful operation fixtures.

## Admission and payment
- **query**: Every catalog GET is admitted before RPC/payment: unknown and duplicate keys rejected, chain enum exact lowercase. No duplicate query parameter is collapsed.
- **body**: JSON objects only, normally max64 top-level keys; unknown fields retained for binding but ignored by operation; unknown strings and keys over65536 UTF-16 code units refused. Duplicate JSON member names use JSON.parse last-member-wins behavior. Private-key-shaped fields are refused. Email header maps are the explicit exception: max32 keys,128-char keys,8192-char string values. file-insurance-claim uses its strict schema: unknown fields rejected, canonical positive decimal strings only, nonzero address/evidence and UTF-8 byte-bounded reason.
- **integers**: Prefer canonical unsigned decimal strings (0 or no leading zero). Retained V2 also accepts leading zeros (max78 digits). JSON integer inputs must be safe integers. Bounds and future timestamps are validated before payment. No hex, fractions, exponents in strings or negative values.
- **requestBodyBytes**: POST admission reads at most1048576 UTF-8 bytes from the cloned request stream; oversized bodies fail400 before parse/payment. Content-Length is not trusted.
- **addresses**: 0x followed by exactly40 hex digits; checksummed or lowercase accepted, zero address syntactically accepted (contract rules may later reject).
- **payment**: Only Base eip155:8453 exact EIP-3009 USDC is accepted. Execution chain is separate. Do not pay on Avalanche, Arbitrum or Polygon. No payment, broadcast, signature or funds movement is authorized by these local documents.
- **noCharge**: Malformed/invalid known input returns400 before verify/settle. A syntactically valid request may still fail during fulfillment because live dependencies and contract preconditions are not admitted offline.

SHA256 canonical sorted-key JSON body, method, normalized URL including sorted query pairs, payer, Base network, USDC asset, amount, payTo and explicit idempotency key. URL ignores fragment; do not change query/body/amount/recipient.

No public receipt lookup endpoint exists. Repeat the exact original paid request (same authorization/key/body/query) to recover the cached response and receipt. Keep paymentId, response bytes and PAYMENT-RESPONSE. Receipt response digest is integrity-checked.

Ambiguous settlement retains a persistent authorization tombstone. Operators must reconcile existing payment; do not create a new authorization or payment. Redis outage is503 fail-closed; never fall back to memory.

## HTTP authentication is separate from payment
Fresh HTTP nonce/signature for EVERY HTTP attempt, including after402. Keep original payment authorization, explicit Idempotency-Key, query and canonical body stable. HTTP authentication nonce is not payment idempotency.

The76 current x402 catalog operations do not invoke the ERC8128 gate. Protected agent mutation/premium routes do, and production verification is currently fail-closed503: genuine @slicekit/erc8128=0.3.3 lacks the cited draft's @scheme canonicalization and signing tag option. This is an explicit software blocker, not finalized-standard compliance. Shared Redis is required even when a compatible profile becomes available; memory is only an explicit nonproduction localhost fixture. Author documentation: https://erc8128.slice.so/ ; author draft: https://raw.githubusercontent.com/slice-so/ERCs/refs/heads/temp-eth-http-message-signatures/ERCS/erc-8128.md

## All catalog operations
The catalog lists configured handlers, not verified production capabilities. Locally supported operation count: 44. No operation is labeled production-supported without live-provider/payment evidence. Every operation has a response contract; declarations are distinguished from captured fixtures. Provider-dependent operations without a fresh handler-backed capture remain unavailable offline; their declared schemas are not evidence of execution.

Machine operation matrix: https://theloopbreaker.com/schemas/x402/operation-status.v1.json
Actual local response captures: https://theloopbreaker.com/schemas/x402/local-fulfillments.v1.json
Generated SDK types: https://theloopbreaker.com/schemas/x402/v2-contracts.d.ts

| Method | Resource | Required input | Local fulfillment classification |
|---|---|---|---|
| POST | /api/x402/actions/accept-bid | walletAddress, taskId, bidIndex | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/approve-work | walletAddress, taskId | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/attest-belief | walletAddress, beliefHash, zkProofBundle | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/batch-onboard | walletAddress, name, agentURI, purposeHash, partner | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/bridge-trust-message | walletAddress, agent, score, weight, nonce, destChainId | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/cancel-task | walletAddress, taskId | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/challenge-bond-metrics | walletAddress, bondId, reason | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/commit-vns-name | walletAddress, commitment | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/contribute-insurance | walletAddress, contributionWei | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/create-accountability-bond | walletAddress, companyName, quarterlyRevenue | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/create-partnership-bond | walletAddress, aiAgent, partnershipType | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/create-session-key | walletAddress, sessionSigner, expiry, spendingLimitWei, perTxLimitWei | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/create-task | walletAddress, description, rewardUSDC, deadline | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/create-vkp-vault | walletAddress | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/deactivate-agent | walletAddress | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/dispute-task | walletAddress, taskId, reason | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/file-attestation | walletAddress, proofBytes, publicInputs | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/file-insurance-claim | walletAddress, amountWei, reason, evidenceHash | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/file-vouch | walletAddress, targetAgent | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/grant-consent | walletAddress, purposeHash | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/issue-credential | walletAddress, recipient, capabilityHash, expiry | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/mint-street-cred | walletAddress | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/register-agent | name, walletAddress | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/register-for-partnership | walletAddress, agentURI, agentType | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/register-vns-name | walletAddress, name, salt | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/report-mission-violation | walletAddress, module, principle, evidence | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/report-surveillance-violation | walletAddress, module, violationType, evidenceHash | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/request-bond-distribution | walletAddress, bondId | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/request-validation | walletAddress, agentAddress, claimURI, claimHash | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/revoke-consent | walletAddress, purposeHash | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/revoke-credential | walletAddress, credentialId | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/revoke-session-key | walletAddress, sessionId | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/stake-as-validator | walletAddress | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/submit-accountability-metrics | walletAddress, bondId, incomeDistributionScore, povertyRateScore, healthOutcomesScore, mentalHealthScore, educationAccessScore, purposeAgencyScore | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/submit-feedback | walletAddress, agentAddress, rating, categoryHash, feedbackURIHash | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/submit-partnership-metrics | walletAddress, bondId, humanGrowth, humanAutonomy, humanDignity, tasksMastered, creativityScore, progressNotesHash | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/submit-trust-attestation | walletAddress, subject, score, weight, commitmentA, commitmentB | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/submit-validation | walletAddress, requestId, approved, evidenceURI | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/submit-work | walletAddress, taskId, deliverable | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/transfer-vns-name | walletAddress, newOwner | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/trigger-reputation-decay | walletAddress, target | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/unvouch | walletAddress, targetAgent | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| POST | /api/x402/actions/update-agent-uri | walletAddress, newAgentURI | Explicit synthetic eth_estimateGas=0x5208 input; actual encoder/business handler and real Redis. |
| GET | /api/x402/bonds/agent-bond-status | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/bonds/overview | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| POST | /api/x402/contract-call | contract, function | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/oracle/agent-stake-usd | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/oracle/chainlink-status | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/oracle/price-feed | pair | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/agent-status | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/agentproof-evidence | reportUrl, expectedSha256 | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/analytics | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/bonds | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/bridge | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/contracts | (none) | Actual local /api/contracts handler; no external success response fixture. |
| GET | /api/x402/trust/credentials | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/disputes | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| POST | /api/x402/trust/email-verify | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/flourishing-metrics | metricId | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/governance-proposals | txId | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/health | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/history | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/insurance | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/leaderboard | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/multi-chain-status | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/performance | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/protocol-stats | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/relationships | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/reputation-decay | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/risk-score | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/safety-status | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/scoped-delegations | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/sla-status | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/street-cred | address | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/vns-resolve | (none) | admission-and-challenge-covered; fulfillment-not-certified-offline |
| GET | /api/x402/trust/vouching | address | admission-and-challenge-covered; fulfillment-not-certified-offline |

Per-operation bounds, schemas and semantic predicates are in the machine contract above. Inputs are not fabricated success fixtures.43 action handlers only prepare unsigned transactions; they do not submit chain operations. RPC estimation or contract-dependent resources are not certified offline.

## Authority and attribution
Each operation records its actual handler path and SHA256. The machine contract includes the exact admission/payment authority paths and SHA256 values. Runtime source is included in this candidate at those paths. The public read-call catalog records actual allowlisted deployment aliases, addresses and read-only ABI functions; no arbitrary contract writes are exposed.
