Documentation

Receipts, explained.

Everything about launching a coin on pump.fun through Receipts, how its creator fees are attributed, swept and priced, and how the person whose number you enter claims them to Venmo or Cash App.

Overview#

Receipts is a launchpad for pump.fun coins with one change to the money flow: the creator fee a coin earns on every trade is paid, in US dollars, to the Venmo or Cash App of whoever the launcher names — identified by phone number.

That means three roles instead of one:

  • Launcher — connects a Solana wallet, fills in the coin, signs one transaction, pays the network fee. Never touches the fees.
  • Recipient — the person whose phone number the launcher entered. Claims once, then gets paid automatically.
  • Keeper — Debit's scheduled job that collects fees from each coin's vault, converts them to USDC, and deposits dollars to the recipient's Venmo or Cash App.

How it works#

  1. 1
    Launch

    The launcher uploads an image, names the coin, and enters the recipient's phone number. We pin metadata to IPFS and build a create (+ optional buy) transaction with a per-coin fee vault.

  2. 2
    Trade

    Every buy and sell on the curve, and later on the pump AMM, pays the creator fee into that coin's vault. The vault belongs to this coin alone.

  3. 3
    Sweep

    The keeper checks vaults on a schedule. When one holds at least 0.005 SOL it collects the balance, swaps it to USDC, and records a payout for the recipient.

  4. 4
    Claim

    The recipient opens Claim fees, verifies the number with a texted code, and links their Venmo (@username) or Cash App ($cashtag). Unclaimed payouts are released the moment an account is linked.

  5. 5
    Get paid

    Every payout is converted from USDC to USD and deposited within minutes. The dashboard shows each one moving Swept → USDC → Sending → Deposited.

Launch in two minutes#

  1. Open Launch and connect a Solana wallet with at least the network fee (≈ 0.02 SOL) plus any initial buy.
  2. Upload a square image (512 × 512 renders best everywhere) and enter a name (≤ 32 chars) and symbol (≤ 10).
  3. Under Fee recipient, pick Venmo or Cash App and enter the person — their username or their phone number.
  4. Optionally add links and an initial buy. The initial buy executes in the same transaction as the mint, so you hold supply before the coin is public.
  5. Press Launch coin. Your wallet asks for one signature. We broadcast through a dedicated RPC and redirect you to the coin page when it confirms.

Tell the recipient to visit the claim page. They don't need a wallet, a new account, or any crypto knowledge — just the Venmo or Cash App they already have.

Recipients#

A recipient is an identity, not an account. Like paying someone in Venmo or Cash App, you enter either their username or their phone number: venmo:@maya-chen, cashapp:$nova or phone:+14155550123. Input is normalized so the same person typed two ways resolves to one recipient:

You typeStored as
(415) 555-0123phone:+14155550123
+44 7700 900123phone:+447700900123
@Maya-Chenvenmo:@Maya-Chen
nova (Cash App)cashapp:$nova

Several coins can point at the same recipient; they all pay into the same claim. The recipient can be the launcher, a friend, a creator you want to support, or anyone else — Receipts never contacts them on your behalf, so send them the claim link yourself.

Double-check the contact before launching. It is written into the coin at mint time and cannot be changed afterwards. Fees pointed at a typo are unclaimable.

Why not an X handle or a wallet?

A phone number is something the recipient can prove they own with a texted code, without any crypto setup. That proof is what lets us attach a Venmo or Cash App to the right person. A wallet would require the recipient to already be on-chain; a social handle has no verification path a bank will accept.

Claiming fees#

Go to Claim fees.

  1. Identify. Enter your phone number. If the launcher used your username instead, link that same username in the next step and the coin attaches to you.
  2. Verify. Enter the 6-digit code we text you. Codes expire after a few minutes.
  3. Pick where it goes. Choose Venmo or Cash App and enter your @username or $cashtag. Linking takes a few seconds. You can switch later; sweeps follow whichever account is linked.

The dashboard then shows the linked account, the total deposited, what's in flight, and every payout with its stage. Returning later on the same device skips straight to the dashboard.

You can change the account at any time. Sweeps that arrive while nothing is linked wait as Awaiting payout method and are released when you link one.

Venmo & Cash App#

Receipts deposits to the Venmo or Cash App you already have. Pick one at claim time and enter your handle; every payout after that arrives there as US dollars, spendable immediately.

Handles

Venmo usernames are 5–30 characters (letters, numbers, hyphens, underscores). Cash App $Cashtags start with a letter and run up to 20 characters. We normalize what you type, so @Maya-Chen and maya-chen are the same account.

Which should I pick?

  • Either works the same way; pick the app you already use.
  • Both support instant deposits; see Limits & regions for availability.
  • You can switch between them later from the claim dashboard.

Speed

From sweep to spendable balance is typically a few minutes: the swap to USDC confirms in seconds and the deposit lands shortly after. Each payout shows its stage live on the dashboard.

Fee mechanics#

pump.fun charges fees on every trade. The schedule is set by the protocol, not by Debit:

LegRateGoes to
Protocol fee~95 bps (dynamic by market cap and size)pump.fun, half to buyback
Creator feepump.fun's standard rate, every tradeThis coin's vault → recipient

Coins are quoted in SOL. pump.fun sets the creator fee by schedule — a custom rate is only possible on special quote assets, so Receipts coins pay the standard rate. Every buy and sell drops that fee, in SOL, into the creator vault. Fees continue after the curve completes: once the coin graduates to the pump AMM, swaps there pay the creator fee into a companion vault for the same key, and the keeper sweeps both.

Debit takes nothing from the creator fee. Costs of converting to USD and pushing to a card are shown on each payout.

Per-coin attribution#

pump.fun pays creator fees into a vault keyed by the coin's creator public key. If every coin on Receipts shared one creator key, their fees would blend in a single vault and we would need to index every trade to split them. Instead, every coin gets its own creator key, derived deterministically:

seed    = HMAC-SHA256(master_seed, mint)
creator = ed25519_keypair(seed).publicKey
vault   = creator_vault_pda(creator)
  • Nothing per coin is stored. The keeper re-derives the key from the mint whenever it needs to sweep.
  • The vault's balance is, by construction, exactly that coin's unswept fees.
  • Only a signature from the derived key can move the vault, and only the keeper holds the master seed.

You can see a coin's fee vault key on its coin page under Fee routing, and verify its balance on any Solana explorer.

Sweeping, swapping & bridging#

The keeper runs every 10 minutes. For each live coin it:

  1. Re-derives the creator key and reads the vault balance across both pump programs.
  2. Skips vaults under 0.005 SOL — below that, the transaction fee would eat too much of the payout.
  3. Submits one transaction: collect_creator_fee followed by a transfer of the collected SOL to Receipts' treasury.
  4. Swaps the collected SOL to USDC through Jupiter, so the payout is stablecoin-denominated from this point on. The USDC received is the payout's dollar value.
  5. Records the payout for the coin's recipient and, if they've linked an account, sends it — status Sending. Without one it waits as Awaiting payout method.
  6. Marks payouts Deposited once the dollars are in their Venmo or Cash App, usually within a couple of minutes.
  7. Retries every Awaiting card payout, so claiming late never loses anything.

Every sweep and every swap is a public Solana transaction. The Payouts page and the claim dashboard link each one to the explorer.

Payout lifecycle#

StateMeaningWhat happens next
SweptFees collected on-chain to the treasury.Swapped to USDC in the same run.
Converted to USDCFees swapped to USDC on Jupiter; dollar value fixed.Sent if an account is linked.
Awaiting payout methodRecipient hasn't linked Venmo or Cash App yet.Retried every run until an account is linked.
SendingUSDC is being converted and deposited.Lands within minutes.
DepositedDollars are in their Venmo or Cash App.Final.
FailedThe deposit was rejected (e.g. handle closed).Shown with the reason; relink to retry.

USD pricing#

Fees accrue in SOL. At sweep time the keeper swaps them to USDC on Jupiter, and the USDC received is the payout's dollar value — an actual conversion, not an estimate. The SOL figure shows what moved on-chain. Because conversion happens at sweep, not at trade, a recipient's dollar total reflects SOL's price over time, not at the moment each fee was earned.

Analytics and coin pages show USD from the actual swaps. Unswept fees (still in a vault) are shown in SOL with an indicative USD value at the current price.

Security & privacy#

Who can claim

Only someone who completes a texted code for the exact phone number the launcher entered. The code is verified by our auth provider and yields a short-lived access token; every recipient-scoped request — reading your payouts, attaching or removing a card — is authorized by that token, and the recipient identity is derived from it on the server. There is no way to pass a different contact.

What we store

  • The normalized contact, so we can match claims to coins.
  • Your Venmo or Cash App handle, shown only to you after verification.
  • Coins, sweeps and payouts — all of which are also visible on-chain.

What's public

Coin pages and the payouts ledger show recipients masked: +1 ••• ••• 0123 or n•••e@icloud.com. The raw contact never leaves the server.

Launch integrity

Launch transactions are built server-side and signed by the mint; your wallet adds the second signature. Before broadcasting, the server checks the signed transaction still contains the mint it prepared, so a client cannot substitute an arbitrary transaction.

Limits & regions#

ItemLimit
Coin name / symbol32 / 10 characters
ImagePNG, JPEG, WebP or GIF, up to 5 MB
Initial buyUp to 50 SOL in the launch transaction
Creator feepump.fun's schedule rate
Minimum sweep0.005 SOL per vault
Payout methodsVenmo (@username) or Cash App ($cashtag), US accounts
Recipient verificationAny mobile number that can receive SMS, with country code

Venmo and Cash App are US-only. Recipients elsewhere can still be named — their payouts wait as Awaiting payout method — and are released when a supported account is linked.

Public API#

Read-only endpoints, no key required. Contacts are always masked. Recipient-scoped endpoints require the claim session's bearer token.

EndpointReturns
GET /api/coinsLive coins, newest first. ?wallet= filters by launcher.
GET /api/coins/:mintOne coin with live curve state, market cap, unswept fees and recipient claim status.
GET /api/payoutsSweep ledger with masked recipients. ?mine=1 + bearer → only yours.
GET /api/analytics30-day daily fee series and platform totals.
GET /api/recipientsBearer only. Your linked account, coins routing to you, totals by stage, and your payouts.
POST /api/payout-methodBearer only. Links your Venmo or Cash App.

Glossary#

Bonding curve
pump.fun's pricing mechanism for a new coin. Price rises as supply is bought; when the curve fills, liquidity moves to the pump AMM.
Creator fee
The slice of every trade that pump.fun pays to the coin's creator key. On Receipts, this is what goes to the recipient.
Creator vault
The on-chain account that accumulates a creator key's fees. Receipts derives one creator key, and so one vault, per coin.
Deposit
The step that turns a payout's USDC into US dollars in the recipient's Venmo or Cash App.
Keeper
Receipts' job that sweeps vaults and routes payouts.
Recipient
The phone number a coin's fees are held for.
Sweep
One collection of a vault's balance to the treasury, recorded as one payout.

FAQ#

Can I name myself as the recipient?

Yes. Enter your own number, then claim it. You'll still sign the launch with your wallet; the fees simply bypass the wallet and land in your Venmo or Cash App.

What if the recipient never claims?

Their payouts accumulate as Awaiting card indefinitely — already converted to USDC, so the dollar value is locked in — until they claim.

Can the recipient be changed after launch?

No. The recipient is bound to the mint. Launch a new coin if you need a different one.

Do recipients need a wallet or any crypto?

No. A phone that receives texts and a Venmo or Cash App account.

Can I switch between Venmo and Cash App?

Yes. Change the account from the claim dashboard; every sweep after that follows the new one.

Is the coin any different on pump.fun?

No. Same program, same curve, same graduation to the AMM. The only difference is who the creator key belongs to.

Why a phone number and not an X handle?

Because the recipient has to prove they own it before a card can be attached. A texted code is that proof; a handle isn't.