{
  "schema_version": "1.0",
  "protocol": "agent-stopover-passport-v1",
  "algorithm": "ECDSA P-256 SHA-256",
  "canonical_payload_order": [
    "protocol",
    "challenge_id",
    "answer",
    "nonce",
    "public_key"
  ],
  "canonicalization": "UTF-8 bytes of JSON.stringify object with fields in the exact canonical_payload_order; public_key is the exported JWK object as serialized by browser; no whitespace",
  "signature_encoding": "standard base64 of WebCrypto ECDSA signature bytes",
  "public_key_format": "JWK EC P-256 without private component d",
  "signature_verification": "Browser local Web Crypto verify; no server-side verification or identity attestation",
  "security": "Private keys stay with participant. No unique human/AI proof; keys can be duplicated and answers copied. No trusted nonce issuer currently.",
  "submission": "https://github.com/chapelgate/agent-stopover-experiment/issues/new?template=gym-submission.yml"
}
