Skip to main content

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

FieldTypeRequiredMeaning
walletstringNoSingle wallet public key to check.
walletsstring[]NoBatch 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

FieldMeaning
walletsPer-wallet cashback results.
wallets.walletWallet address checked.
pump_bonding_lamportsClaimable bonding-curve cashback in lamports.
pump_bonding_solHuman-readable SOL value for pump_bonding_lamports.
pumpswap_wsol_lamportsClaimable PumpSwap cashback in WSOL lamports.
pumpswap_wsolHuman-readable SOL value for pumpswap_wsol_lamports.
total_claimable_lamportsSum of bonding-curve and PumpSwap cashback.
total_claimable_solHuman-readable SOL value for total_claimable_lamports.
accounts.pump_user_volume_accumulatorPump PDA checked for bonding-curve cashback.
accounts.pumpswap_user_volume_accumulatorPumpSwap PDA associated with the wallet.
accounts.pumpswap_wsol_ataWSOL ATA checked for PumpSwap cashback.
totalsBatch totals across all returned wallets.
rpc_slotsRPC slot observed during the read.

Common Errors

HTTPDetailMeaning
400use either wallet or wallets, not bothRequest supplied both selection modes.
400wallets must contain between 1 and 100 walletsBatch is empty or too large.
400invalid Solana wallet addressOne wallet is not a valid public key.
502cashback RPC read failedRPC account batch read failed.
502Pump user volume accumulator has an unexpected ownerOn-chain account exists but is not owned by the expected program.
502PumpSwap cashback account does not match its PDAWSOL account data does not match the expected accumulator.