Overview
Receives a user-signed claim transaction from/claims/mint, adds the protocol’s mint authority signature, and submits the complete transaction to the Solana blockchain to finalize the token claim.
Request Parameters
Base58 encoded transaction signed by the user’s wallet
Unique transaction identifier returned from
/claims/mintResponse
Indicates if the operation was successful
The Solana transaction signature/hash
The token address that was claimed from
The user’s associated token account that received the tokens
The amount of tokens that were successfully claimed
Blockchain confirmation details
Success Response
Error Responses
400 - Missing Parameters
400 - Missing Parameters
400 - Transaction Data Not Found
400 - Transaction Data Not Found
- Invalid or expired
transactionKey - Temporary storage was cleared
- Transaction was already processed
400 - Eligibility Changed
400 - Eligibility Changed
400 - No Tokens Available
400 - No Tokens Available
500 - Configuration Error
500 - Configuration Error
500 - Transaction Failed
500 - Transaction Failed
- Network congestion
- Insufficient funds for transaction fees
- Invalid transaction signature
- Blockchain errors
Process Flow
This endpoint completes the two-phase claim process:1
Validate Parameters
Ensures both required fields are provided
2
Retrieve Transaction Data
Fetches stored transaction details using the
transactionKey3
Re-validate Eligibility
Performs a security check to ensure claim eligibility hasn’t changed
4
Deserialize Transaction
Converts the Base58 signed transaction back to a Solana Transaction object
5
Add Protocol Signature
Signs the transaction with the protocol’s keypair (mint authority)
6
Submit to Blockchain
Sends the fully signed transaction to the Solana network
7
Wait for Confirmation
Monitors the transaction until it’s confirmed on-chain
8
Cleanup
Removes the temporary transaction data
Security Re-validation
Important Security Check: The API re-validates claim eligibility before processing to prevent race conditions where:
- Other users claimed tokens in the meantime
- Inflation periods advanced
- User’s eligibility changed for any reason
Rate Limiting
This endpoint is subject to rate limiting:- 8 requests per IP per 2-minute window
- Returns HTTP 429 when limit exceeded
Transaction Lifecycle
The claim transaction follows this lifecycle:- Creation:
/claims/mintcreates unsigned transaction - Storage: Transaction data stored temporarily (10min max)
- Signing: User signs transaction with their wallet
- Confirmation: This endpoint adds protocol signature and submits
- Cleanup: Transaction data removed
- Finality: Tokens are permanently transferred to user
Transaction Data Cleanup
Cleanup Policy:
- Successful transactions: Immediately cleaned up
- Failed transactions: Remain until expiration
- Expired transactions: Automatically removed after 10 minutes
After Successful Claim
Once tokens are successfully claimed:- Verify Balance: Check user’s token account balance
- Update UI: Refresh claim eligibility for next period
- Transaction Proof: Use
transactionSignaturefor verification
Transaction Signature
The returnedtransactionSignature can be used to:
- View the transaction on Solana explorers
- Verify the token claim on-chain
- Provide proof of claim to users
- Track transaction status
Integration Notes
Best Practice: Always handle both success and error cases gracefully. Failed claims may be retryable if the issue was network-related rather than eligibility-related.
Multi-instance Deployments: If running multiple API instances, consider using Redis or similar for shared transaction state instead of in-memory storage.
