API Reference
Complete reference for the 555 backend API. All endpoints are served from a single REST server and use JSON for request/response bodies unless otherwise noted. Base URL:https://api.rndrntwrk.com
Authentication Model
Most endpoints require a valid session cookie obtained through the SIWS (Sign In With Solana) flow. The flow works as follows:- Request a nonce via
POST /auth/nonce - Sign the nonce with your Solana wallet
- Submit the signed message to
POST /auth/verifyto receive a session cookie - Include the session cookie on all subsequent requests
requireAdminToken middleware.
Authentication
POST /auth/nonce
POST /auth/nonce
/auth/verify.- Auth: None
- Returns: JSON object containing the nonce string
POST /auth/verify
POST /auth/verify
- Auth: None (establishes auth)
- Returns: Session cookie + wallet address
POST /auth/logout
POST /auth/logout
- Auth: Session cookie
- Returns:
200 OK
GET /me
GET /me
- Auth: Session cookie
- Returns: Wallet address, eligibility status, and session metadata
POST /auth/social/link/start
POST /auth/social/link/start
POST /auth/social/link/verify
POST /auth/social/link/verify
Arcade & Gaming
GET /game/{id}/rank
GET /game/{id}/rank
- Auth: Session cookie
- Path params:
id— game identifier - Returns: Rank position, score, and percentile
POST /arcade/score
POST /arcade/score
- Auth: Session cookie
- Returns: Recorded score confirmation and updated rank
GET /arcade/state
GET /arcade/state
- Auth: None
- Returns: Theme configuration, active event data, and arcade metadata
GET /arcade/cabinets
GET /arcade/cabinets
- Auth: None
- Returns: Array of cabinet objects with game ID, possession status, and display metadata
GET /game/{id}/state
GET /game/{id}/state
- Auth: Session cookie
- Path params:
id— game identifier - Returns: Serialized game state object
PUT /game/{id}/state
PUT /game/{id}/state
- Auth: Session cookie
- Path params:
id— game identifier - Returns: Confirmation of saved state
POST /game/{id}/record
POST /game/{id}/record
- Auth: Session cookie
- Path params:
id— game identifier - Returns: Recorded entry confirmation
POST /game/{id}/play
POST /game/{id}/play
- Auth: Session cookie
- Path params:
id— game identifier - Returns: Play session acknowledgment
GET /game/{id}/leaderboard
GET /game/{id}/leaderboard
- Auth: None
- Path params:
id— game identifier - Query params:
period—day,week,month, oryear - Returns: Ranked array of wallet addresses and scores
GET /game/{id}/stats
GET /game/{id}/stats
- Auth: None
- Path params:
id— game identifier - Returns: Aggregate game stats object
GET /game/referral/leaderboard
GET /game/referral/leaderboard
- Auth: None
- Returns: Ranked array of wallets by referral performance
Battles
POST /battle/create
POST /battle/create
- Auth: Session cookie
- Returns: Battle ID, game configuration, and join details
GET /battle/active
GET /battle/active
- Auth: None
- Returns: Array of active battle objects
POST /battle/{id}/join
POST /battle/{id}/join
- Auth: Session cookie
- Path params:
id— battle identifier - Returns: Battle state with participant list
Lottery
POST /round
POST /round
- Auth: Session cookie
- Returns: Round ID and configuration
POST /round/{id}/ticket
POST /round/{id}/ticket
- Auth: Session cookie
- Path params:
id— round identifier - Returns: Ticket number and transaction confirmation
POST /round/{id}/finalize
POST /round/{id}/finalize
- Auth: Session cookie
- Path params:
id— round identifier - Returns: Winning ticket, payout details
GET /round/{id}
GET /round/{id}
- Auth: None
- Path params:
id— round identifier - Returns: Round object with status, entries, and prize pool
POST /chat/round
POST /chat/round
- Auth: Admin token
- Returns: Round ID and configuration
GET /chat/round/active
GET /chat/round/active
- Auth: None
- Returns: Active round object or
null
GET /chat/round/{id}/entries
GET /chat/round/{id}/entries
- Auth: None
- Path params:
id— round identifier - Returns: Array of chat entry objects
POST /chat/round/{id}/start
POST /chat/round/{id}/start
- Auth: Admin token
- Path params:
id— round identifier - Returns: Updated round state
GET /chat/round/{id}/winning-numbers
GET /chat/round/{id}/winning-numbers
- Auth: None
- Path params:
id— round identifier - Returns: Winning number set and derivation proof
GET /chat/round/{id}/audit
GET /chat/round/{id}/audit
- Auth: None
- Path params:
id— round identifier - Returns: Audit object with cryptographic proofs
GET /chat/round/{id}/entries/root
GET /chat/round/{id}/entries/root
- Auth: None
- Path params:
id— round identifier - Returns: Merkle root hash
GET /chat/round/{id}/winners
GET /chat/round/{id}/winners
- Auth: None
- Path params:
id— round identifier - Returns: Array of winner objects with wallet and prize
GET /chat/round/{id}/payouts
GET /chat/round/{id}/payouts
- Auth: None
- Path params:
id— round identifier - Returns: Payout status and transaction signatures
GET /chat/round/recent-finalized
GET /chat/round/recent-finalized
- Auth: None
- Returns: Array of finalized round summaries
GET /chat/status
GET /chat/status
- Auth: None
- Returns: Status object with system health indicators
Leaderboards
GET /leaderboard/global
GET /leaderboard/global
- Auth: None
- Query params:
period—day,week,month, oryear;limit,offset - Returns: Ranked array of wallets with composite scores
GET /leaderboard/global/stats
GET /leaderboard/global/stats
- Auth: None
- Returns: Global stats summary object
GET /leaderboard/global/period-stats
GET /leaderboard/global/period-stats
- Auth: None
- Query params:
period—day,week,month, oryear - Returns: Period-scoped stats object
GET /leaderboard/global/rank
GET /leaderboard/global/rank
- Auth: Session cookie
- Returns: Rank position, score, and percentile
GET /leaderboard/quests
GET /leaderboard/quests
- Auth: None
- Returns: Ranked array of wallets with quest point totals
GET /leaderboard/quests/rank
GET /leaderboard/quests/rank
- Auth: Session cookie
- Returns: Rank position and quest point total
GET /leaderboard/quests/stats
GET /leaderboard/quests/stats
- Auth: None
- Returns: Quest leaderboard stats summary
Rewards
POST /api/rewards/claim
POST /api/rewards/claim
- Auth: Session cookie
- Returns: Transaction signature and claim confirmation
GET /api/rewards/epoch/{epoch}/proof/{wallet}
GET /api/rewards/epoch/{epoch}/proof/{wallet}
- Auth: None
- Path params:
epoch— epoch number;wallet— Solana wallet address - Returns: Merkle proof, amount, and leaf index
GET /api/rewards/epoch/{epoch}
GET /api/rewards/epoch/{epoch}
- Auth: None
- Path params:
epoch— epoch number - Returns: Epoch object with root, total, status, and timestamp
GET /api/rewards/epochs
GET /api/rewards/epochs
- Auth: None
- Returns: Array of epoch summary objects
GET /api/rewards/epochs/committed
GET /api/rewards/epochs/committed
- Auth: None
- Returns: Array of committed epoch objects
GET /api/rewards/wallet/{wallet}/claimable
GET /api/rewards/wallet/{wallet}/claimable
- Auth: None
- Path params:
wallet— Solana wallet address - Returns: Array of claimable epoch/amount pairs
GET /api/rewards/wallet/{wallet}/claimable-epochs
GET /api/rewards/wallet/{wallet}/claimable-epochs
- Auth: None
- Path params:
wallet— Solana wallet address - Returns: Filtered array of claimable epoch objects
GET /api/rewards/wallet/{wallet}/projected
GET /api/rewards/wallet/{wallet}/projected
- Auth: None
- Path params:
wallet— Solana wallet address - Returns: Projected reward amount and calculation breakdown
GET /api/rewards/wallet/{wallet}/pending-usdc
GET /api/rewards/wallet/{wallet}/pending-usdc
- Auth: None
- Path params:
wallet— Solana wallet address - Returns: Pending USDC amount
GET /api/rewards/pool/today
GET /api/rewards/pool/today
- Auth: None
- Returns: Pool total, distribution curve, and timestamp
GET /config/rewards
GET /config/rewards
- Auth: None
- Returns: Rewards config object
Referrals
GET /api/referral/link
GET /api/referral/link
- Auth: Session cookie
- Returns: Referral link URL and code
POST /api/referral/link
POST /api/referral/link
- Auth: Session cookie
- Returns: Referral link URL and code
POST /api/referral/bind
POST /api/referral/bind
- Auth: Session cookie
- Returns: Binding confirmation
GET /api/referral/summary
GET /api/referral/summary
- Auth: Session cookie
- Returns: Referral count, total points earned from referrals
GET /api/referral/stats
GET /api/referral/stats
- Auth: Session cookie
- Returns: Detailed referral performance metrics
GET /api/referral/referred
GET /api/referral/referred
- Auth: Session cookie
- Returns: Array of referred wallet addresses and timestamps
Profile & Daily Tasks
GET /api/profile
GET /api/profile
- Auth: Session cookie
- Returns: Profile object with balances, rank, and social links
GET /api/profile/beta-points
GET /api/profile/beta-points
- Auth: Session cookie
- Returns: Beta points total and breakdown
GET /api/profile/beta-stats
GET /api/profile/beta-stats
- Auth: Session cookie
- Returns: Beta stats object
GET /api/beta/preference
GET /api/beta/preference
- Auth: Session cookie
- Returns: Boolean preference flag
POST /api/beta/preference
POST /api/beta/preference
- Auth: Session cookie
- Returns: Updated preference
GET /api/tasks/daily
GET /api/tasks/daily
- Auth: Session cookie
- Returns: Array of task objects with completion state
POST /api/tasks/daily/complete
POST /api/tasks/daily/complete
- Auth: Session cookie
- Returns: Points awarded and updated task state
GET /api/me/payments
GET /api/me/payments
- Auth: Session cookie
- Returns: Array of payment objects with amounts and timestamps
GET /users/{wallet}/stats
GET /users/{wallet}/stats
- Auth: None
- Path params:
wallet— Solana wallet address - Returns: Public stats summary
Events & SSE
GET /events
GET /events
- Auth: None (public stream)
- Returns:
text/event-streamwith typed JSON payloads
new_entry— New chat lottery entry submittedchat_message— Chat message broadcast- Round state transitions, winner announcements, etc.
GET /events/burn/active
GET /events/burn/active
- Auth: None
- Returns: Active burn event object or
null
POST /events/burn
POST /events/burn
- Auth: Session cookie
- Returns: Burn event ID and configuration
POST /events/burn/{id}/activate
POST /events/burn/{id}/activate
- Auth: Session cookie
- Path params:
id— burn event identifier - Returns: Updated burn event state
GET /events/burn/{id}/leaderboard
GET /events/burn/{id}/leaderboard
- Auth: None
- Path params:
id— burn event identifier - Returns: Ranked array of participants
GET /events/burn/{id}/leaderboard/referrals
GET /events/burn/{id}/leaderboard/referrals
- Auth: None
- Path params:
id— burn event identifier - Returns: Ranked array by referral burns
GET /events/burn/{id}/leaderboard/game
GET /events/burn/{id}/leaderboard/game
- Auth: None
- Path params:
id— burn event identifier - Returns: Ranked array by game burns
GET /events/burn/{id}/leaderboard/social
GET /events/burn/{id}/leaderboard/social
GET /events/burn/{id}/rank
GET /events/burn/{id}/rank
- Auth: Session cookie
- Path params:
id— burn event identifier - Returns: Rank position and burn total
GET /events/burn/{id}/quests
GET /events/burn/{id}/quests
- Auth: None
- Path params:
id— burn event identifier - Returns: Array of event-scoped quest objects
Quests
GET /quests
GET /quests
- Auth: None
- Returns: Array of quest objects
GET /me/quests
GET /me/quests
- Auth: Session cookie
- Returns: Array of quests with per-wallet progress and completion state
GET /me/quest-multiplier
GET /me/quest-multiplier
- Auth: Session cookie
- Returns: Multiplier value and contributing factors
GET /ledger/quests
GET /ledger/quests
- Auth: Session cookie
- Returns: Array of ledger entries with quest ID, points, and timestamp
Social Integration
POST /integrations/twitter/events
POST /integrations/twitter/events
- Auth: Webhook signature verification
- Returns:
200 OKacknowledgment
GET /social/round/{id}
GET /social/round/{id}
GET /social/latest
GET /social/latest
GET /social/round/{id}/post
GET /social/round/{id}/post
Clips
POST /clip/upload
POST /clip/upload
clip_upload quest completion if applicable.- Auth: Session cookie
- Returns: Clip ID and upload confirmation
GET /clips
GET /clips
- Auth: None
- Returns: Array of clip objects with metadata
Eligibility & Configuration
GET /eligibility
GET /eligibility
- Auth: Session cookie
- Returns: Boolean eligibility status and token balance
GET /config/normalization
GET /config/normalization
- Auth: None
- Returns: Normalization parameters and cap values
GET /config/games
GET /config/games
- Auth: None
- Returns: Array of game objects with IDs, names, and categories
GET /api/price/sol
GET /api/price/sol
- Auth: None
- Returns:
{ "price": <float> }— SOL price in USD
GET /healthz
GET /healthz
- Auth: None
- Returns:
200 OK
Wallet & Webhooks
POST /api/wallet/resolve
POST /api/wallet/resolve
- Auth: None
- Returns: Resolved Solana wallet address
POST /webhooks/payment-status
POST /webhooks/payment-status
- Auth: Webhook signature
- Returns:
200 OKacknowledgment
Admin
All admin endpoints require therequireAdminToken middleware. These are not intended for public consumption.
POST /admin/theme
POST /admin/theme
- Auth: Admin token
- Returns: Updated theme configuration
POST /admin/event
POST /admin/event
- Auth: Admin token
- Returns: Event acknowledgment
POST /admin/cabinet/possess
POST /admin/cabinet/possess
- Auth: Admin token
- Returns: Updated cabinet state
POST /admin/cabinet/release
POST /admin/cabinet/release
- Auth: Admin token
- Returns: Updated cabinet state
POST /rewards/trigger-epoch
POST /rewards/trigger-epoch
- Auth: Admin token
- Returns: Epoch creation confirmation
POST /auto/start
POST /auto/start
- Auth: Admin token
- Returns: Scheduler status
POST /auto/stop
POST /auto/stop
- Auth: Admin token
- Returns: Scheduler status
GET /auto/status
GET /auto/status
- Auth: Admin token
- Returns: Scheduler running state and next scheduled time
POST /quests (admin)
POST /quests (admin)
- Auth: Admin token
- Returns: Created quest object
GET /quests/{id} (admin)
GET /quests/{id} (admin)
- Auth: Admin token
- Path params:
id— quest identifier - Returns: Quest object with admin-level detail
PATCH /quests/{id}
PATCH /quests/{id}
- Auth: Admin token
- Path params:
id— quest identifier - Returns: Updated quest object
DELETE /quests/{id}
DELETE /quests/{id}
- Auth: Admin token
- Path params:
id— quest identifier - Returns:
204 No Content
POST /admin/quests/{id}/complete
POST /admin/quests/{id}/complete
- Auth: Admin token
- Path params:
id— quest identifier - Returns: Completion confirmation
POST /api/rewards/settled-offchain
POST /api/rewards/settled-offchain
- Auth: Admin token
- Returns: Updated epoch settlement status
POST /api/rewards/epoch/import
POST /api/rewards/epoch/import
- Auth: Admin token / internal
- Returns: Import confirmation with epoch number
POST /api/beta/convert
POST /api/beta/convert
- Auth: Admin token
- Returns: Conversion result
GET /debug/points
GET /debug/points
- Auth: Session cookie
- Returns: Dual-mode points breakdown
Error Responses
All endpoints return errors in a consistent JSON format:| Status Code | Meaning |
|---|---|
400 | Bad request — missing or invalid parameters |
401 | Unauthorized — missing or invalid session |
403 | Forbidden — insufficient permissions (e.g. admin-only) |
404 | Not found — resource does not exist |
409 | Conflict — duplicate action (e.g. already claimed, already bound) |
500 | Internal server error |
Rate Limiting
The API does not currently enforce per-IP rate limits at the application layer, but is fronted by infrastructure-level protections. Excessive request volume may result in temporary throttling. Be respectful with polling intervals — prefer the SSE stream atGET /events for real-time updates.