Docs
The sweep model in plain English, and what Rakevo does with it.
The sweep model
Since pump.fun's Oct 7 2026 fee update, creator fees from new trades are no longer pushed to a vault on every trade. They stay inside each bonding curve and each PumpSwap pool as a bucket. A sweep moves a bucket into the creator vault. A collect moves the vault into the creator wallet.
- Fees accrue inside the curve or pool (unswept).
- Sweep: bucket → creator vault (one per coin and venue).
- Collect: creator vault → creator wallet (one per creator, all quote tokens).
Fees from before the update already sit in the vault, so a wallet can have a vault balance and zero unswept buckets.
Why one wallet can collect for many
Sweep and collect are permissionless. The caller only pays the network fee. The program pays out to the creator address stored on-chain, never to the caller. That is why you can paste ten wallets, connect one, and collect for all of them without importing a single private key.
Holder-reward coins
Some coins are created with holder rewards. Their creator is a program address and their fees are paid out to holders automatically. Rakevo marks them “Fees go to holders” and leaves them out of every collect.
Fee splits
A fee-split config replaces the creator of a coin with a config address and lists shareholders in basis points (10,000 bps = 100%). Waiting fees must be swept before they can be distributed, and distribution needs a minimum amount, which the program reports. A shareholder's share is waiting × bps ÷ 10,000. If the admin is not revoked, the admin can still change the shares.
Autopilot
Autopilot is optional and only exists on deployments that configure a keeper wallet. You prove ownership of a creator wallet by signing a message, and the keeper then runs the permissionless sweep and collect when waiting fees pass your threshold. It can only sign sweep and collect instructions on an allowlist, it cannot move your funds anywhere else, and it does not distribute fee splits.
Collect with the SDK
The same flow outside of Rakevo, using @pump-fun/pump-sdk 3.2.0 or later:
import { Connection, Keypair, PublicKey, TransactionMessage, VersionedTransaction } from '@solana/web3.js'
import { NATIVE_MINT, TOKEN_PROGRAM_ID } from '@solana/spl-token'
import { OnlinePumpSdk, PUMP_SDK } from '@pump-fun/pump-sdk'
const connection = new Connection(process.env.RPC_MAINNET!, 'confirmed')
const payer = Keypair.fromSecretKey(/* the wallet that pays the network fee */)
const creator = new PublicKey('CREATOR_WALLET')
const mint = new PublicKey('COIN_MINT')
// 1. Sweep the bucket parked inside the bonding curve into the creator vault.
const sweep = await PUMP_SDK.sweepCreatorFeeInstruction({
payer: payer.publicKey,
mint,
creator,
quoteMint: NATIVE_MINT,
quoteTokenProgram: TOKEN_PROGRAM_ID,
})
// 2. Collect every quote token waiting in the creator's vaults.
// Permissionless: funds always land in the creator's own wallet.
const sdk = new OnlinePumpSdk(connection)
const collect = await sdk.collectCoinCreatorFeeAllQuotesInstructions(creator, payer.publicKey)
const { blockhash } = await connection.getLatestBlockhash()
const tx = new VersionedTransaction(
new TransactionMessage({ payerKey: payer.publicKey, recentBlockhash: blockhash, instructions: [sweep, ...collect] }).compileToV0Message(),
)
tx.sign([payer])
console.log(await connection.sendTransaction(tx))Rakevo never holds your keys or funds. Fees go only to the creator wallet set on-chain; verify every transaction on Solscan.