Authentication
- You sign a short assertion JWT with your Ed25519 private key
- Auth returns a short-lived access token (EdDSA, IMBA keys,
typ=agent) - You call retail
/api/*withAuthorization: Bearer <access_token>
Assertion → access token
Assertion claims
Access token
Never send
client_id in the body to pick another wallet. The JWT is the identity.
Unavailable (503)
Rate limits (defaults)
429 when exceeded. Back off with jitter. Mint a new assertion when the access token is near expiry — there is no refresh token.