Base URL
/v1 prefix. Swagger documentation is available at /docs.
Rewards
Get Rewards Leaderboard
Returns users sorted by USDB balance, with each user’s reward tier and estimated payout.limit- Maximum results (default 100, maximum 500)offset- Pagination offset
Get User Summary
Returns a user’s current USDB balance, today’s volume, reward bracket, and estimated rewards for the day.400 status with { "reason": "This address is excluded and does not earn rewards" }.
Rewards Brackets:
Get Payout History
Returns a user’s payout history, including their own rewards and any delegated rewards received. Uselimit and offset to page through the results.
limit- Maximum results (default 30)offset- Pagination offset
payoutSats is the sum of rewardsPayoutSats and endorsementsPayoutSats.
Endorsements
An endorsement assigns part of a holder’s future daily reward payout to a recipient pubkey. The holder signs each change. See Rewards Delegation for an example of how payouts are split.Canonical YAML Templates (for Signing)
Create and update both useaction: upsert. The API creates a new record or updates the existing (endorser, to) pair.
Create endorsement template:
Get Endorsements
Create or Update Endorsement
Creates an endorsement for theto pubkey or updates its existing allocation.
Delete Endorsement
Removes the endorsement for:toPubkey from the endorser’s future payouts.
Endorsement Rules and Validation
pubkey,endorser, andtomust be 66-character compressed pubkey hex strings.- The body
endorsermust match:pubkeyin the route. ratioBpsmust be between1and10000.- The sum of an endorser’s active endorsement ratios cannot exceed
10000. - The endorser cannot endorse their own pubkey.
timestampNoncemust be UUIDv7 and within a 5-minute window.- Each nonce can be used only once, preventing request replay.
400 errors:
{ "error": "Body endorser must match route pubkey" }{ "error": "Cannot endorse to the same pubkey. Use rewards payee reassignment instead." }{ "error": "Total endorsement ratio cannot exceed 10000 bps" }{ "error": "Nonce has already been used" }{ "error": "Signature verification failed" }
Flashpoints
Get Points Leaderboard
Returns users sorted by current Flashpoints, with their point balances and volume.limit- Maximum results (default 100, maximum 500)offset- Pagination offset
Get User Points
Returns a user’s current and lifetime Flashpoints, rank, and projected points for the day.Get Points History
Returns a user’s point-earning events. Uselimit and offset to page through the history.
limit- Maximum results (default 30)offset- Pagination offset
Stats
Get Global Stats
Returns USDB holder totals, trading activity, payout totals, and the last days processed for rewards and points.Health Check
"degraded" if either payout or points processing is behind.
Error Handling
Validation errors usually include anerror field:
GET /v1/rewards/:pubkey returns a reason field:
400- Bad request (validation errors, excluded addresses)404- Not found500- Internal server error