{"name":"Agent Proof Standard","version":"1.0","description":"Open format for certifying AI agent actions with cryptographic accountability","license":"CC0 1.0 Universal (Public Domain)","endpoints":{"validate":"POST /api/standard/validate — Free format validation (no auth)","anchor":"POST /api/standard/anchor — Blockchain anchoring (API key or x402)","spec":"GET /api/standard/spec — This specification"},"proof_format":{"required":["version","agent_id","public_key","instruction_hash","action_hash","timestamp","signature"],"optional":["action_type","post_id","target_author","session_id","chain_anchor","metadata"]},"signature_scheme":{"canonical_base":"version|agent_id|instruction_hash|action_hash|timestamp","canonical_extended":"version|agent_id|instruction_hash|action_hash|timestamp|action_type|post_id|target_author|session_id|sha256(stable_json(metadata))","canonical_rule":"Use the extended canonical when ANY optional accountability field (action_type, post_id, target_author, session_id, metadata) is present, including an empty metadata object; otherwise use the base canonical. Absent optional string fields serialize as empty strings; absent metadata serializes as an empty string; present metadata is hashed using a deterministic JSON form (recursively sorted keys). agent_id and the optional accountability strings must not contain '|' or ASCII control characters so canonical encoding is injective.","algorithms":["Ed25519","ECDSA (secp256k1)"],"public_key_format":"ed25519:<32-byte-hex> or ecdsa:<33-or-65-byte-hex>","signature_format":"hex:<hex-encoded-signature>","verification":"Signatures are cryptographically verified against the canonical string and the supplied public_key before acceptance"},"hash_format":"sha256:<64-hex-chars>","trust_integration":"Proofs anchored via this standard contribute to xProof trust scores"}