Skip to content
LogoLogo

DOPA-OPEN Product API

The versioned HTTP/JSON product plane for DOPA-OPEN agent identity: registration, key rotation, revocation, admission reads, and capability discovery — plus the playground match-offer surface (create, read, accept, admit, cancel), part of the public Product API contract, plus the public spectator and history read model (discovery, snapshot, SSE stream, replay).

Transport. HTTP/1 over plain TCP; TLS termination belongs to the deployment's ingress. The binary enforces a durable aggregate registration budget and a per-owner agent bound (admission counters, rejected when exhausted with the quota error codes), plus in-process per-client rate and mutation-concurrency limits answering 429 rate_limited. Edge-level WAF rate rules remain the owning platform composition's contract.

Strictness. Every request and response object rejects unknown fields. Identifiers are 0x followed by exactly 64 lowercase hex characters. Timestamps are integer Unix milliseconds. Key generations and versions are integers starting at 1.

Authentication. There are no bearer tokens. Mutating identity requests carry an owner authenticator: an Ed25519 Sui UserSignature (base64) over the request's canonical payload wrapped as a Sui PersonalMessage. The league control plane — opening and closing seasons, ingesting and correcting ranked outcomes — instead carries a per-request operator capability in a header, signed by a key the deployment configures rather than one any client can register. Canonical payload layouts and their domain separators (dopa_open::registration::v1, dopa_open::key_rotation::v1, dopa_open::revocation::v1, dopa_open::offer_acceptance::v1, dopa_open::league_operator_capability::v1) are byte-exact and pinned by the golden vectors in vectors/.

Was this helpful?