Claim Pump.fun Cashback Rewards
Claim your cashback now
Connect a wallet, see the amount, claim in one click. Rent, creator fees and cashback come together.
Free check — nothing happens until you press Claim
Pump.fun cashback is a trader reward feature where creator fees are redirected back to the users who trade cashback-enabled tokens. Instead of the token creator receiving trading fees, every buyer and seller automatically accumulates cashback in SOL. Rewards build up with each trade and can be claimed at any time through a single API call.
Pump.fun no longer lets new cashback coins be created; new launches use Holder Rewards (holderReward: true) instead. Existing cashback coins are not affected: trading them still accrues cashback, and everything accrued stays claimable with this endpoint.
This endpoint generates an unsigned VersionedTransaction that claims your accumulated cashback from the Pump.fun bonding curve, PumpSwap (AMM), or both. You sign the transaction locally and broadcast it through your own Solana RPC.
API Endpoints:
GET https://pumpdev.io/api/claim-cashback— Check claimable cashback (read-only)POST https://pumpdev.io/api/claim-cashback— Build claim transaction
Check Claimable Cashback
Before claiming, you can check how much cashback is available using the read-only balance endpoint. No transaction is built — it simply returns the current claimable amounts.
Endpoint: GET https://pumpdev.io/api/claim-cashback
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
publicKey | string | Yes | Your Solana wallet public key (the wallet that traded) |
program | string | No | "both" (default), "pump", or "pumpswap" |
mint | string | No | Token mint address (resolves quote context for non-SOL pairs) |
quoteMint | string | No | Quote mint override (used only when mint is omitted) |
Response
{
"publicKey": "YourWalletPublicKey",
"pumpCashback": 0.123,
"pumpSwapCashback": 0.456,
"totalCashback": 0.579,
"program": "both",
"quoteMint": "So11111111111111111111111111111111111111112",
"isNativeQuote": true
}
| Field | Description |
|---|---|
pumpCashback | Claimable cashback from bonding curve trades |
pumpSwapCashback | Claimable cashback from PumpSwap (graduated) trades |
totalCashback | Sum of both |
program | Which programs were checked |
quoteMint | The quote mint used for cashback denomination |
isNativeQuote | true if cashback is in native SOL |
Example: Check Balance Then Claim
const API_URL = 'https://pumpdev.io';
// 1. Check claimable cashback
const balanceRes = await fetch(
`${API_URL}/api/claim-cashback?publicKey=${publicKey}`
);
const balance = await balanceRes.json();
console.log(`Claimable cashback: ${balance.totalCashback} SOL`);
console.log(` Pump: ${balance.pumpCashback}`);
console.log(` PumpSwap: ${balance.pumpSwapCashback}`);
if (balance.totalCashback <= 0) {
console.log('No cashback to claim.');
return;
}
// 2. Build and send claim transaction
const claimRes = await fetch(`${API_URL}/api/claim-cashback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ publicKey, program: 'both' })
});
// ... sign and send
Prerequisites
Before claiming cashback, make sure you have:
- A Solana wallet with a small SOL balance (to cover transaction fees)
- Previous buy or sell trades on a cashback-enabled token
- Node.js with
@solana/web3.jsandbs58installed (for JavaScript examples)
Cashback-enabled tokens were created with
cashbackEnabled: trueduring Token Creation, before pump.fun deprecated cashback for new launches. Not all tokens on Pump.fun have cashback enabled — only those where the creator opted in.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
publicKey | string | Yes | Your Solana wallet public key (the wallet that traded) |
program | string | No | "both" (default), "pump", or "pumpswap" |
priorityFee | number | No | Priority fee in SOL (default: 0.0005) |
Note: Cashback from bonding curve trades is paid in native SOL. Cashback from PumpSwap (graduated) trades is paid in WSOL, which the transaction automatically unwraps to native SOL for you.
Response Format
Success (200): Returns a binary serialized unsigned VersionedTransaction. Deserialize it, sign with your wallet keypair, and send to Solana.
Error (non-200): Returns a JSON object with an error message:
{
"error": "No cashback available for this wallet"
}
JavaScript Example
import { VersionedTransaction, Connection, Keypair } from '@solana/web3.js';
import bs58 from 'bs58';
const API_URL = 'https://pumpdev.io';
const RPC_URL = 'https://api.mainnet-beta.solana.com';
const PRIVATE_KEY = 'YourBase58PrivateKey';
async function claimCashback() {
const keypair = Keypair.fromSecretKey(bs58.decode(PRIVATE_KEY));
const publicKey = keypair.publicKey.toBase58();
// 1. Build the claim transaction
const response = await fetch(`${API_URL}/api/claim-cashback`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
publicKey: publicKey,
program: 'both' // Claim from both bonding curve and PumpSwap
})
});
if (response.status !== 200) {
const error = await response.json();
console.error('API Error:', error);
return;
}
// 2. Deserialize the unsigned transaction
const data = await response.arrayBuffer();
const tx = VersionedTransaction.deserialize(new Uint8Array(data));
// 3. Sign with your wallet
tx.sign([keypair]);
// 4. Send to Solana
const connection = new Connection(RPC_URL, 'confirmed');
try {
const signature = await connection.sendTransaction(tx, {
skipPreflight: false,
maxRetries: 3
});
console.log('Cashback claimed!');
console.log('Signature:', signature);
// Wait for confirmation
const confirmation = await connection.confirmTransaction(signature, 'confirmed');
if (confirmation.value.err) {
console.error('Transaction failed:', confirmation.value.err);
} else {
console.log('Cashback claim confirmed!');
}
} catch (err) {
console.error('Send error:', err.message);
}
}
claimCashback();
cURL Example
You can also call the API with cURL and handle the binary response in any language:
curl -X POST https://pumpdev.io/api/claim-cashback \
-H "Content-Type: application/json" \
-d '{
"publicKey": "YourWalletPublicKey",
"program": "both"
}' \
--output claim_tx.bin
The response is a raw binary VersionedTransaction. Deserialize it with your language's Solana SDK, sign it, and send it to your RPC.
How Cashback Works
Cashback is a protocol-level feature built into Pump.fun's bonding curve and PumpSwap programs. Here is how the reward lifecycle works from token creation to claiming:
- A token creator launched a coin with
cashbackEnabled: trueduring Token Creation. This flags the token for cashback at the protocol level. (New cashback coins can no longer be created; new launches use Holder Rewards.) - When any user buys or sells that token, the creator fee (which would normally go to the token creator) is instead redirected into a
UserVolumeAccumulatoraccount for the trader. - Bonding curve cashback accumulates as native lamports (SOL). PumpSwap cashback accumulates as WSOL, which is automatically unwrapped to native SOL when claimed.
- Users call this
/api/claim-cashbackendpoint to withdraw their accumulated rewards. The more you trade cashback-enabled tokens, the more rewards you accumulate. - All buy and sell transactions on cashback-enabled tokens automatically include the proper accounts for cashback tracking — no extra setup is needed from the trader.
Bonding Curve vs PumpSwap Cashback
Tokens on Pump.fun go through two phases, and cashback works slightly differently in each:
| Phase | Program | Cashback Currency | When It Applies |
|---|---|---|---|
| Bonding curve | pump | Native SOL (lamports) | Before the token graduates to Raydium/PumpSwap |
| PumpSwap (AMM) | pumpswap | WSOL (auto-unwrapped) | After graduation to the PumpSwap AMM |
Using program: "both" (the default) claims from both sources in a single transaction, which saves on transaction fees.
Program Options
The program parameter controls which cashback pool to claim from:
| Value | Description |
|---|---|
"both" | Claim from both Pump (bonding curve) and PumpSwap (AMM) in one transaction. This is the default and recommended option. |
"pump" | Claim only from bonding curve trades (native SOL). Use this if you only traded before graduation. |
"pumpswap" | Claim only from PumpSwap/AMM trades (WSOL, auto-unwrapped to SOL). Use this if you only traded after graduation. |
Error Handling
The API returns JSON error responses when something goes wrong. Here are the common errors and how to resolve them:
| Error Message | Cause | Solution |
|---|---|---|
publicKey is required | Missing wallet public key in request body | Include your Solana wallet public key |
Invalid publicKey address | Malformed Solana address | Verify the address is a valid base58-encoded Solana public key |
program must be 'both', 'pump', or 'pumpswap' | The program parameter is not one of the allowed values | Use "both", "pump", or "pumpswap" |
| Transaction fails on-chain | No cashback available, insufficient SOL for fees, or network congestion | Ensure you've traded cashback-enabled tokens and have enough SOL for fees. Try again with a higher priorityFee |
Handling No Cashback Available
If you haven't traded any cashback-enabled tokens, the API will return an error. Not all tokens on Pump.fun have cashback — it depends on whether the creator enabled it during token creation. You can check if a token has cashback enabled using the Data API WebSocket feeds, which include token metadata.
Troubleshooting
My transaction was confirmed but I didn't receive SOL This can happen if your accumulated cashback was very small (dust amounts). Check the transaction on a Solana block explorer to verify the exact amounts transferred.
I traded a token but have no cashback to claim
The token may not have cashback enabled. Only tokens created with cashbackEnabled: true accumulate trader rewards. Standard tokens send fees to the creator instead.
WSOL not unwrapping to SOL PumpSwap cashback is paid in WSOL. The claim transaction includes an unwrap instruction that converts WSOL to native SOL automatically. If you see WSOL in your wallet instead of SOL, the unwrap instruction may have failed — try claiming again.
Transaction keeps failing
During high network congestion, transactions may fail. Increase the priorityFee parameter (e.g., from 0.0005 to 0.001 SOL) and set maxRetries higher when sending the transaction.
Next Steps
- ⚡ Lightning Trade — One-call buy/sell (no signing required)
- ⚡ Lightning Setup — Create a Lightning wallet + API key
- Claim Creator Fees — Collect creator royalties from your tokens
- Distribute Creator Fees — Fee sharing / reward split to multiple wallets
- Token Creation — Create tokens, including Holder Rewards coins (
holderReward: true) - Trade API — Client-side buy and sell
- Pricing — Commission details