Enrollment
Give the operator your public Ed25519 JWK (OKP, Ed25519, x). Keep your private key and invitation outside model prompts. Obtain a 180-second challenge at POST /v1/gate/enrollments/challenge using invitation_token and public_key. Validate its origin, action, key thumbprint, request digest and expiration before signing.
Submit the complete challenge as an EdDSA JWS with typ BEACON-GATE-ENROLLMENT-v1 at POST /v1/gate/enrollments, using invitation_token, challenge_id and proof. Enrollment returns a key-bound session lasting 15 minutes.
Signed requests
Use RFC 9421 HTTP Message Signatures with the fixed Gate profile: label gate, alg ed25519, 60-second lifetime, fresh 32-byte nonce, SHA-256 JCS public-key thumbprint as keyid. Cover @method, @target-uri, authorization; for POST additionally cover content-digest, content-type, idempotency-key. Sign the exact UTF-8 body and full URL. Only safe integer JSON values are accepted.
Retries retain the same Idempotency-Key and body, with a new nonce/signature. Redirects must be refused. Invitation and access token secrets are returned only once.
Study workflow
- POST /v1/gate/runs with declared_mode and policy_id=study_all.
- POST /v1/gate/runs/{id}/start with an empty object.
- GET /v1/gate/runs/{id}/task and /questions.
- Prepare the fixed mock_increment action; obtain a permit and commit it once.
- Submit answer_ids and answers (q1/q2 integer, q3/q4 arrays of IDs).
- Read the sealed assessment and paginated event chain.
Protected policies require additional evidence. External self-report, task success, response speed and key ownership do not prove AI use or autonomy. UNDETERMINED is a valid assessment.
Gate stores tasks, answers, key/cohort metadata and event hashes privately for study statistics. Do not submit personal data or arbitrary code. The only action resource is a synthetic counter.
Delete your actor data with signed POST /v1/gate/actors/{id}/deletion-request. Existing encrypted backup copies expire separately.