Check Cashback
POST /v1/cashback/check
Check Cashback reads claimable Pump bonding-curve cashback and PumpSwap cashback for one or more wallets.
Cashback is different from creator fees. For cashback-enabled Pump tokens, the creator-fee portion can be redirected to users based on their trading volume. SolanaLaser checks the two places where claimable value can accumulate:
- Pump bonding-curve user volume accumulator
- PumpSwap user volume accumulator WSOL account
This endpoint is read-only. It does not sign or submit a transaction, but it
still requires x-api-key to protect RPC usage.
Request
const response = await fetch("https://api.solanalaser.xyz/v1/cashback/check", {
method: "POST",
headers: {
"content-type": "application/json",
"x-api-key": "sl_your_key",
},
body: JSON.stringify({
wallet: "WALLET_PUBLIC_KEY",
}),
});
const cashback = await response.json();
Request Fields
| Field | Type | Required | Meaning |
|---|---|---|---|
wallet | string | No | Single wallet public key to check. |
wallets | string[] | No | Batch of wallet public keys to check. Maximum 100. Duplicate entries are deduplicated. |
Omit both fields to check the API key's default managed wallet.
Use either wallet or wallets, not both. Explicit wallet checks can target
any valid Solana wallet address. The endpoint only reads public on-chain
accounts.
Single Wallet
Request
const response = await fetch("https://api.solanalaser.xyz/v1/cashback/check", {
method: "POST",
headers: {
"content-type": "application/json",
"x-api-key": "sl_your_key",
},
body: JSON.stringify({
wallet: "WALLET_PUBLIC_KEY",
}),
});
const cashback = await response.json();
Response: 200
{
"wallets": [
{
"wallet": "WALLET_PUBLIC_KEY",
"pump_bonding_lamports": 1000000,
"pump_bonding_sol": "0.001000000",
"pumpswap_wsol_lamports": 2500000,
"pumpswap_wsol": "0.002500000",
"total_claimable_lamports": 3500000,
"total_claimable_sol": "0.003500000",
"accounts": {
"pump_user_volume_accumulator": "PUMP_USER_VOLUME_ACCUMULATOR_PDA",
"pumpswap_user_volume_accumulator": "PUMPSWAP_USER_VOLUME_ACCUMULATOR_PDA",
"pumpswap_wsol_ata": "PUMPSWAP_ACCUMULATOR_WSOL_ATA"
}
}
],
"totals": {
"pump_bonding_lamports": 1000000,
"pump_bonding_sol": "0.001000000",
"pumpswap_wsol_lamports": 2500000,
"pumpswap_wsol": "0.002500000",
"combined_lamports": 3500000,
"combined_sol": "0.003500000"
},
"rpc_slots": [432778891]
}
Batch Check
Use wallets to check many wallets in one RPC batch. SolanaLaser deduplicates
duplicate wallet addresses before reading accounts.
Request
const response = await fetch("https://api.solanalaser.xyz/v1/cashback/check", {
method: "POST",
headers: {
"content-type": "application/json",
"x-api-key": "sl_your_key",
},
body: JSON.stringify({
wallets: ["WALLET_1", "WALLET_2", "WALLET_1"],
}),
});
const cashback = await response.json();
Response: 200
{
"wallets": [
{
"wallet": "WALLET_1",
"pump_bonding_lamports": 0,
"pump_bonding_sol": "0.000000000",
"pumpswap_wsol_lamports": 0,
"pumpswap_wsol": "0.000000000",
"total_claimable_lamports": 0,
"total_claimable_sol": "0.000000000",
"accounts": {
"pump_user_volume_accumulator": "PUMP_USER_VOLUME_ACCUMULATOR_PDA",
"pumpswap_user_volume_accumulator": "PUMPSWAP_USER_VOLUME_ACCUMULATOR_PDA",
"pumpswap_wsol_ata": "PUMPSWAP_ACCUMULATOR_WSOL_ATA"
}
},
{
"wallet": "WALLET_2",
"pump_bonding_lamports": 1000000,
"pump_bonding_sol": "0.001000000",
"pumpswap_wsol_lamports": 0,
"pumpswap_wsol": "0.000000000",
"total_claimable_lamports": 1000000,
"total_claimable_sol": "0.001000000",
"accounts": {
"pump_user_volume_accumulator": "PUMP_USER_VOLUME_ACCUMULATOR_PDA",
"pumpswap_user_volume_accumulator": "PUMPSWAP_USER_VOLUME_ACCUMULATOR_PDA",
"pumpswap_wsol_ata": "PUMPSWAP_ACCUMULATOR_WSOL_ATA"
}
}
],
"totals": {
"pump_bonding_lamports": 1000000,
"pump_bonding_sol": "0.001000000",
"pumpswap_wsol_lamports": 0,
"pumpswap_wsol": "0.000000000",
"combined_lamports": 1000000,
"combined_sol": "0.001000000"
},
"rpc_slots": [432778891]
}
How Values Are Calculated
For Pump bonding-curve cashback, SolanaLaser reads the user's Pump volume accumulator PDA. The account must be owned by the Pump program. Claimable SOL is the account lamports minus the rent-exempt balance for that account size.
For PumpSwap cashback, SolanaLaser reads the WSOL associated token account owned by the user's PumpSwap volume accumulator PDA. The account must be a valid SPL Token account for native mint WSOL and must be owned by the expected PumpSwap accumulator PDA.
If an account does not exist, the claimable amount for that source is 0.
Response Fields
| Field | Meaning |
|---|---|
wallets | Per-wallet cashback results. |
wallets.wallet | Wallet address checked. |
pump_bonding_lamports | Claimable bonding-curve cashback in lamports. |
pump_bonding_sol | Human-readable SOL value for pump_bonding_lamports. |
pumpswap_wsol_lamports | Claimable PumpSwap cashback in WSOL lamports. |
pumpswap_wsol | Human-readable SOL value for pumpswap_wsol_lamports. |
total_claimable_lamports | Sum of bonding-curve and PumpSwap cashback. |
total_claimable_sol | Human-readable SOL value for total_claimable_lamports. |
accounts.pump_user_volume_accumulator | Pump PDA checked for bonding-curve cashback. |
accounts.pumpswap_user_volume_accumulator | PumpSwap PDA associated with the wallet. |
accounts.pumpswap_wsol_ata | WSOL ATA checked for PumpSwap cashback. |
totals | Batch totals across all returned wallets. |
rpc_slots | RPC slot observed during the read. |
Common Errors
| HTTP | Detail | Meaning |
|---|---|---|
400 | use either wallet or wallets, not both | Request supplied both selection modes. |
400 | wallets must contain between 1 and 100 wallets | Batch is empty or too large. |
400 | invalid Solana wallet address | One wallet is not a valid public key. |
502 | cashback RPC read failed | RPC account batch read failed. |
502 | Pump user volume accumulator has an unexpected owner | On-chain account exists but is not owned by the expected program. |
502 | PumpSwap cashback account does not match its PDA | WSOL account data does not match the expected accumulator. |