Skip to main content
POST
Activate a closed-launch access code

Body

application/json

Public Stage 1 activation request (spec ยง4). The caller is NOT yet whitelisted. The wallet signs a canonical message that binds the code hash, its root address, and signed_at: ekiden-stage1-activate:{sha256(normalized code)}:{root_address}:{signed_at} using the same wallet-signature scheme JWT login uses. The root address is derived from public_key (never trusted from the client), exactly as /authorize does.

code
string
required

Plaintext access code. Normalized (trim + uppercase) and hashed server-side; the plaintext is never persisted (S1-D5).

public_key
string
required

Wallet public key, same encoding as /authorize's public_key.

signature
string
required

Wallet signature over the canonical activation message.

signed_at
integer<int64>
required

Unix seconds at which the message was signed. Must be within the configured signature window of server time.

nonce
string | null

Replay nonce bound into the Canton activation message. REQUIRED on the Canton rail, ignored on Aptos.

party_id
string | null

Canton party id (<hint>::<fingerprint>). REQUIRED on the Canton rail, ignored on Aptos.

Canton has no address derivable from the public key alone, so the wallet signs for its party and the server derives the root from that party โ€” the same identity /authorize uses. The party's ::<fingerprint> suffix commits to the public key, so a caller cannot claim someone else's party.

Response

Wallet activated

activated
boolean
required
badge
boolean
required
multiplier_bps
integer<int32>
required
Required range: x >= 0