Reference implementation for AP2 v0.2 mandate-chain validation. Paste your Intent → Cart → Payment mandate JSON trio and validate: signature-chain integrity (parent hash linkage), scope and spend-limit consistency, TTL/expiry at validation time, over-spend detection, and Human-Not-Present (HNP) autonomous-flow flags. Load a built-in PASS or FAIL scenario to explore the validation model, then export conformance test-vector fixtures for CI integration. See also: how AP2 mandates map to x402, ACP, ERC-8004, and MPP.
Load a pre-built scenario to see how each validation check fires, or paste your own mandate JSON in the editors below.
This fixture captures the full input/output pair for this validation run. Use it in your CI pipeline to regression-test your AP2 mandate-chain implementation. Import into any test framework that accepts JSON assertion fixtures.
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this exact tool, with this sample, and verify the artifact.
Run the AINumbers MCP tool `validate_ap2_mandate_chain`. Task: Validate AP2 v0.2 Intent→Cart→Payment mandate chains: signature-chain integrity, scope consistency, TTL/expiry, over-spend, HNP flow flags.
Call it with arguments: {"policy_parameters":{"validate_at":"2026-06-18T12:00:00.000Z","hnp_mode":"strict","intent":{"mandate_type":"intent","mandate_id":"int-001","version":"2.0","issued_at":"2026-06-18T10:00:00.000Z","expires_at":"2026-06-19T10:00:00.000Z","issuer_id":"agent-alpha","scope":{"merchant_ids":["merchant-acme"],"category_codes":["5411","5912"],"currency":"USD","max_amount":500},"human_not_present":false},"cart":{"mandate_type":"cart","mandate_id":"crt-001","version":"2.0","issued_at":"2026-06-18T11:00:00.000Z","expires_at":"2026-06-19T11:00:00.000Z","parent_mandate_id":"int-001","parent_hash":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2","cart_total":38.97,"currency":"USD","merchant_id":"merchant-acme"},"payment":{"mandate_type":"payment","mandate_id":"pay-001","version":"2.0","issued_at":"2026-06-18T11:54:00.000Z","expires_at":"2026-06-18T12:30:00.000Z","parent_mandate_id":"crt-001","parent_hash":"b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3","amount":38.97,"currency":"USD","merchant_id":"merchant-acme","payment_method":"card_on_file","human_not_present":false}}}
Verify before trusting: call `verify_execution_hash` on mcp.ainumbers.co (https://mcp.ainumbers.co/mcp) with the parameter `claimed_hash` set to the returned `execution_hash`, passing the full artifact the run returned (the object containing `policy_parameters` + `output_payload` + `execution_hash`; equivalently `policy_parameters` + `output_payload` with `claimed_hash`), not the bare hash string.
Return the ledger link https://ledger.ainumbers.co/ so a human can re-verify without contacting us.
PII rule: All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Open the tool with the sample prefilled: https://ainumbers.co/chaingraph/art-01-ap2-mandate-chain-validator.html#p=v1.H4sIAAAAAAAA_wFBBL77eyJ2YWxpZGF0ZV9hdCI6IjIwMjYtMDYtMThUMTI6MDA6MDAuMDAwWiIsImhucF9tb2RlIjoic3RyaWN0IiwiaW50ZW50Ijp7Im1hbmRhdGVfdHlwZSI6ImludGVudCIsIm1hbmRhdGVfaWQiOiJpbnQtMDAxIiwidmVyc2lvbiI6IjIuMCIsImlzc3VlZF9hdCI6IjIwMjYtMDYtMThUMTA6MDA6MDAuMDAwWiIsImV4cGlyZXNfYXQiOiIyMDI2LTA2LTE5VDEwOjAwOjAwLjAwMFoiLCJpc3N1ZXJfaWQiOiJhZ2VudC1hbHBoYSIsInNjb3BlIjp7Im1lcmNoYW50X2lkcyI6WyJtZXJjaGFudC1hY21lIl0sImNhdGVnb3J5X2NvZGVzIjpbIjU0MTEiLCI1OTEyIl0sImN1cnJlbmN5IjoiVVNEIiwibWF4X2Ftb3VudCI6NTAwfSwiaHVtYW5fbm90X3ByZXNlbnQiOmZhbHNlfSwiY2FydCI6eyJtYW5kYXRlX3R5cGUiOiJjYXJ0IiwibWFuZGF0ZV9pZCI6ImNydC0wMDEiLCJ2ZXJzaW9uIjoiMi4wIiwiaXNzdWVkX2F0IjoiMjAyNi0wNi0xOFQxMTowMDowMC4wMDBaIiwiZXhwaXJlc19hdCI6IjIwMjYtMDYtMTlUMTE6MDA6MDAuMDAwWiIsInBhcmVudF9tYW5kYXRlX2lkIjoiaW50LTAwMSIsInBhcmVudF9oYXNoIjoiYTFiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMiIsImNhcnRfdG90YWwiOjM4Ljk3LCJjdXJyZW5jeSI6IlVTRCIsIm1lcmNoYW50X2lkIjoibWVyY2hhbnQtYWNtZSJ9LCJwYXltZW50Ijp7Im1hbmRhdGVfdHlwZSI6InBheW1lbnQiLCJtYW5kYXRlX2lkIjoicGF5LTAwMSIsInZlcnNpb24iOiIyLjAiLCJpc3N1ZWRfYXQiOiIyMDI2LTA2LTE4VDExOjU0OjAwLjAwMFoiLCJleHBpcmVzX2F0IjoiMjAyNi0wNi0xOFQxMjozMDowMC4wMDBaIiwicGFyZW50X21hbmRhdGVfaWQiOiJjcnQtMDAxIiwicGFyZW50X2hhc2giOiJiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMmMzZDRlNWY2YTFiMmMzIiwiYW1vdW50IjozOC45NywiY3VycmVuY3kiOiJVU0QiLCJtZXJjaGFudF9pZCI6Im1lcmNoYW50LWFjbWUiLCJwYXltZW50X21ldGhvZCI6ImNhcmRfb25fZmlsZSIsImh1bWFuX25vdF9wcmVzZW50IjpmYWxzZX19ASBs40EEAAA