Endpoints
Base URL
All API requests should be prefixed with the base URL:
Coming Soon
⚠️ Note: The final production URL will be announced soon.
Endpoints Overview
/rewards/:address
GET
Yes
Get all claimable rewards for a wallet
/rewards/:address/tokens/:tokenAddress
GET
Yes
Get claimable rewards for a specific token
/rewards/:signature/status
GET
No
Check status of a claim transaction
/rewards/:address/initiate
POST
Yes
Initiate a claim transaction
Get All Claimable Rewards
Retrieves all claimable reward amounts for a specified wallet address. Requires signature verification to prove wallet ownership.
Request
URL: /rewards/:address
Method: GET
URL Parameters:
address
: Solana wallet address to check rewards for
Headers:
X-Signature
: The base58-encoded signature of the timestampX-Timestamp
: The Unix timestamp in milliseconds that was signed
Response
Success Response (200 OK):
{
"status": "success",
"data": [
{
"unclaimedRewards": {
"sol": 5100000000,
"solUi": "5.1",
"token": 1000000020000,
"tokenUi": "1000000.02"
},
"allTimeRewards": {
"sol": 6230000000,
"solUi": "6.23",
"token": 5000000020000,
"tokenUi": "5000000.02"
},
"tokenInfo": {
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"symbol": "TKN",
"name": "Example Token",
"image": "https://example.com/token.png",
"price": 0.42
}
}
// Additional tokens...
]
}
Error Responses:
401 Unauthorized
: Invalid signature{ "status": "error", "code": "INVALID_SIGNATURE", "message": "Signature verification failed" }
400 Bad Request
: Invalid Solana address{ "status": "error", "code": "VALIDATION_ERROR", "message": "Invalid request parameters", "errors": [ { "field": "address", "message": "Invalid Solana address" } ] }
Get Specific Token Claimable Rewards
Retrieves claimable reward amounts for a specific wallet address and token. Requires signature verification to prove wallet ownership.
Request
URL: /rewards/:address/tokens/:tokenAddress
Method: GET
URL Parameters:
address
: Solana wallet address to check rewards fortokenAddress
: Solana token address to check rewards for
Headers:
X-Signature
: The base58-encoded signature of the timestampX-Timestamp
: The Unix timestamp in milliseconds that was signed
Response
Success Response (200 OK):
{
"status": "success",
"data": {
"unclaimedRewards": {
"sol": 5100000000,
"solUi": "5.1",
"token": 1000000020000,
"tokenUi": "1000000.02"
},
"allTimeRewards": {
"sol": 6230000000,
"solUi": "6.23",
"token": 5000000020000,
"tokenUi": "5000000.02"
}
}
}
Error Responses:
404 Not Found
: Token not found{ "status": "error", "code": "TOKEN_NOT_FOUND", "message": "Token not found" }
400 Bad Request
: Invalid parameters{ "status": "error", "code": "VALIDATION_ERROR", "message": "Invalid request parameters", "errors": [ { "field": "tokenAddress", "message": "Invalid Solana token address" } ] }
Check Claim Transaction Status
Checks the status of a claim transaction by signature. Requires signature verification to prove wallet ownership.
Request
URL: /rewards/:signature/status
Method: GET
URL Parameters:
signature
: The transaction signature to check
Response
Success Response (200 OK):
{
"status": "success",
"data": {
"status": "COMPLETED",
"message": "Claim completed"
}
}
The status
field in the response data can be one of:
COMPLETED
: The claim transaction was successful.IN_PROGRESS
: The claim transaction is still being processed.FAILED
: The claim transaction failed, you can inititate a new one.EXPIRED
: The claim transaction expired, you can initiate a new one.
Error Responses:
404 Not Found
: Claim not found{ "status": "error", "code": "CLAIM_NOT_FOUND", "message": "Claim not found" }
400 Bad Request
: Invalid signature{ "status": "error", "code": "VALIDATION_ERROR", "message": "Invalid request parameters", "errors": [ { "field": "signature", "message": "Invalid signature length" } ] }
Initiate Claim
Initiates a claim for rewards. Requires signature verification to prove wallet ownership.
Request
URL: /rewards/:address/initiate
Method: POST
URL Parameters:
address
: The Solana wallet address initiating the claim
Headers:
X-Signature
: The base58-encoded signature of the timestampX-Timestamp
: The Unix timestamp in milliseconds that was signed
Request Body:
{
"tokenAddress": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"claimType": "SOL", // or "TOKEN"
"burnToken": false // Optional, defaults to false
}
Response
Success Response (200 OK):
{
"status": "success",
"data": {
"tx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAIFXWWy5rWLJXXdYR/e3TNGihD8OfE1jKf8QX9JJ7ztCRfBV2HdGaTI8QQiVn5cjgecLLrtPWWyPftsYCq1jQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxJaxjh4N/v8IUBQYKlOgN2ndOGE/TJVvdT0xChhQvwgGp9UXGSxcUSGMyUw9SvF/WNPHDlZ0CqpPcJpjbjAAAAAAjJclj04TfbV4PUmaYD9PjzBRUTWBhf36dUjpqF/JAQAAAAEDAgAAAQAAAAAAAAA="
}
}
This response contains a partially signed transaction in Base64 format. This transaction must be:
Deserialized
Signed by the wallet owner
Submitted to the Solana network
Error Responses:
400 Bad Request
: Invalid parameters or zero claim amount{ "status": "error", "code": "CLAIM_ERROR", "message": "SOL amount to claim is zero" }
401 Unauthorized
: Invalid signature{ "status": "error", "code": "INVALID_SIGNATURE", "message": "Signature verification failed" }
409 Conflict
: A claim is already in progress{ "status": "error", "code": "CLAIM_IN_PROGRESS", "message": "A claim for this token is already in progress" }
Rate Limits
All endpoints are subject to rate limiting:
Limit: 100 requests per 15-minute window per IP address
Response when exceeded:
{ "status": "error", "code": "RATE_LIMIT_EXCEEDED", "message": "Too many requests, please try again later" }
Last updated