Self-register advisor (sandbox)
Sandbox-only self-service onboarding. Inserts a did:ocss:<slug> entry at provisional tier from a raw Ed25519 public key, then recompiles the served Trust List so the DID appears immediately. Requires SANDBOX_MODE=true on the census — production returns 403 self_register_sandbox_only. Cannot overwrite an existing entry (409) and never escalates above provisional. No auth is required (the sandbox guard is the gate).
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The DID to register, did:ocss:<slug>.
"did:ocss:touchstone"
Raw 32-byte Ed25519 public key, base64url unpadded (RFC 4648 §5, no =). The census PKIX-wraps it for the Trust List.
"CMHWy3vUAiEcYDdE_bDvkRuEqwxkklS0tV-TYHJTlWU"
Informational role tags, stored verbatim on the provisional entry.
Optional Trust-List role marker. Only verifying-agency (§5.4 open assessor market) is accepted; any other value returns 400.
verifying-agency Response
DID registered at provisional tier and published to the Trust List.
UUID of the advisor row created for this DID (returned first in the live wire body).
Your full signing key id, did:ocss:<slug>#<kid> — use verbatim as SenderKey.keyID. The census now returns this directly in the 200 body.
"did:ocss:touchstone#2026-07"
The bare kid the census bound — the current UTC month (YYYY-MM) at registration time.
"2026-07"
The base64url public key now published on the Trust List entry.
Always provisional — self-service never elevates the tier.
Echoed only when an entry_role was requested.