Base URL
/v1.
Rewards
Get User Summary
Returns current balance, token holdings, TWAB, 24h volume, rewards bracket, and projected rewards.excluded: true flag with zeroed values.
Rewards Brackets:
| Bracket | Volume Threshold | Rewards |
|---|---|---|
| 0 | $0 | 3.5% |
| 1 | $500 | 4.0% |
| 2 | $2,500 | 4.5% |
| 3 | $5,000 | 5.0% |
| 4 | $10,000 | 5.5% |
| 5 | $25,000 | 6.0% |
Get Payout History
Returns paginated list of rewards payouts for a user.limit- Max results (default 30)offset- Pagination offset
Get Pending Payouts
Returns pending payouts awaiting processing.Flashpoints
Get User Points
Returns Flashpoints balance, rank, projected daily earnings, and weight breakdown.Get Points History
Returns paginated list of point earning events.limit- Max results (default 30)offset- Pagination offset
Leaderboard
Get Leaderboard
Returns ranked users by balance, volume, or points.limit- Max results (default 100, max 500)sortBy-balance,volume, orpoints
Get User Rank
Returns a specific user’s position across all leaderboard categories.{ "pubkey": "...", "found": false, "ranks": null } if the user has no activity.
Delegation
Delegation allows wallets to direct a percentage of their rewards to another pubkey. Requires signature verification using Spark’ssignMessageWithIdentityKey.
Get Delegation Status
Returns active delegation for a wallet, if any.Create Delegation
Creates or updates a delegation. Replaces any existing active delegation.flashnet:delegate:v1:{delegatePubkey}:{percentage}:{nonce}
The nonce is a Unix timestamp in milliseconds. Must be within 5 minutes of server time.
Response:
400- Invalid pubkey format, invalid message format, percentage mismatch, nonce expired, self-delegation, or excluded address401- Invalid signature
Revoke Delegation
Revokes an active delegation.flashnet:revoke:v1:{nonce}
Response:
400- Invalid pubkey format, invalid message format, or nonce expired401- Invalid signature404- No active delegation found
Stats
Get Global Stats
Returns system-wide statistics.Health Check
"status": "degraded" if eligibility refresh is older than 2 hours or payout processing is behind.
Error Handling
Errors return a consistent format:400- Bad request (validation errors)401- Unauthorized (invalid signature)404- Not found500- Internal server error