{"quest_protocol":1,"spec_version":"0.7-draft","spec_url":"https://sallyforth.quest/protocol/spec","documentation_url":"https://sallyforth.quest/protocol","summary":"An open format for verifiable proof-of-presence credentials. A Quest credential is an Ed25519-signed JWT attesting that a subject was physically present at a geographic location at a given time. Issued by any conforming server, carried by the subject, verified by any party via the issuer's published public key. No central registry.","discovery":{"description":"Federated key discovery, modeled on DKIM/JWKS. Verifiers resolve the credential's iss claim to two well-known URLs — no prior coordination with the issuer required.","manifest":"{iss}/.well-known/quest-manifest.json","jwks":"{iss}/.well-known/quest-jwks.json","credential_url":"{iss}/credentials/{jti}","live_example":{"manifest":"https://sallyforth.quest/.well-known/quest-manifest.json","jwks":"https://sallyforth.quest/.well-known/quest-jwks.json"}},"credential_format":{"serialization":"JWS Compact (RFC 7515)","algorithm":"EdDSA (Ed25519, RFC 8037)","registered_claims":["iss","sub","iat","jti","cnf"],"quest_claims":["quest.v","quest.id","quest.name","quest.lat","quest.lng","quest.radius_m","quest.v_lat","quest.v_lng","quest.attest","quest.challenge","quest.chain","quest.seq","quest.of","quest.meta"],"coordinate_precision":"6 decimal places (~11 cm), spec §14","subject_model":"Issuer-scoped opaque pseudonym (qp_ prefix). No global identity registry, spec §13."},"verification":{"description":"Fully client-side against the issuer's published public key. No API call to the issuer is required.","steps":["Decode the JWT and read the iss claim","Fetch {iss}/.well-known/quest-manifest.json and confirm quest_protocol version and issuer match","Fetch the manifest's jwks_uri and select the key matching the JWT's kid header","Verify the EdDSA signature","Validate required claims and types (spec §3)","Confirm haversine(v_lat, v_lng → lat, lng) ≤ radius_m"]},"challenge_types":["single","multi","sequential","duration","datebound","recurring"],"attestation_levels":["gps","device","nfc"],"binding_tiers":{"tier1":"Bearer — no binding claims","tier2":"Device-bound — cnf.jkt thumbprint + challenge-response (spec §10.2)","tier3":"Identity-bound — quest.id_hash of a verified identifier (spec §10.3)"},"portability":{"file_extension":".quest","mime_type":"application/x-quest-credential","personal_store":"quest-credentials.json (spec §12.5)","principle":"Credentials outlive the apps that issued them. The JWT string is the credential (spec §12.6)."},"example_credential":{"description":"A real credential issued by this server. Subject is pseudonymized; the location is a public business (Heini's Cheese Chalet, Berlin, Ohio). Paste it into any conforming verifier, or use the verify_url below.","jwt":"eyJhbGciOiJFZERTQSIsImtpZCI6InF1ZXN0LWtleS0yMDI1LTAxIiwidHlwIjoiSldUIn0.eyJxdWVzdCI6eyJ2IjoxLCJpZCI6ImJlcmxpbi1hbWlzaC01MTkxcXYtZG1icDdwIiwibmFtZSI6IkhlaW5pJ3MgQ2hlZXNlIENoYWxldCIsImxhdCI6NDAuNTczODgsImxuZyI6LTgxLjc4MTc1LCJyYWRpdXNfbSI6MjAwLCJ2X2xhdCI6NDAuNTc0MjQyLCJ2X2xuZyI6LTgxLjc4MjI0OSwiYXR0ZXN0IjoiZ3BzIiwiY2hhbGxlbmdlIjoibXVsdGkiLCJjaGFpbiI6ImJlcmxpbi1hbWlzaC01MTkxcXYiLCJzZXEiOjQsIm9mIjo0fSwiaXNzIjoiaHR0cHM6Ly9zYWxseWZvcnRoLnF1ZXN0Iiwic3ViIjoicXBfOWRhOWQ2MjhjMTg0OTA3ZDJhN2ExMzdhZTFlODg1MzgiLCJpYXQiOjE3NzQxMDY2NjIsImp0aSI6InFjXzJkNzUzNjk3LTExMDEtNGJiMi05OTE1LWRmOTI2ZWJmY2IyYSJ9.MeOfHd8U8xI2vjf6PlcWIB6ppt9xzMBv-mMBKPJcMN0U_QNRxBRH06pdzMAzIYSmhdHyFGA1xa-23tHQd-13Cw","verify_url":"https://sallyforth.quest/verify?token=eyJhbGciOiJFZERTQSIsImtpZCI6InF1ZXN0LWtleS0yMDI1LTAxIiwidHlwIjoiSldUIn0.eyJxdWVzdCI6eyJ2IjoxLCJpZCI6ImJlcmxpbi1hbWlzaC01MTkxcXYtZG1icDdwIiwibmFtZSI6IkhlaW5pJ3MgQ2hlZXNlIENoYWxldCIsImxhdCI6NDAuNTczODgsImxuZyI6LTgxLjc4MTc1LCJyYWRpdXNfbSI6MjAwLCJ2X2xhdCI6NDAuNTc0MjQyLCJ2X2xuZyI6LTgxLjc4MjI0OSwiYXR0ZXN0IjoiZ3BzIiwiY2hhbGxlbmdlIjoibXVsdGkiLCJjaGFpbiI6ImJlcmxpbi1hbWlzaC01MTkxcXYiLCJzZXEiOjQsIm9mIjo0fSwiaXNzIjoiaHR0cHM6Ly9zYWxseWZvcnRoLnF1ZXN0Iiwic3ViIjoicXBfOWRhOWQ2MjhjMTg0OTA3ZDJhN2ExMzdhZTFlODg1MzgiLCJpYXQiOjE3NzQxMDY2NjIsImp0aSI6InFjXzJkNzUzNjk3LTExMDEtNGJiMi05OTE1LWRmOTI2ZWJmY2IyYSJ9.MeOfHd8U8xI2vjf6PlcWIB6ppt9xzMBv-mMBKPJcMN0U_QNRxBRH06pdzMAzIYSmhdHyFGA1xa-23tHQd-13Cw","verify_api":"https://sallyforth.quest/api/verify"}}