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#
- 1Launch
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.
- 2Trade
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.
- 3Sweep
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.
- 4Claim
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.
- 5Get 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#
- Open Launch and connect a Solana wallet with at least the network fee (≈ 0.02 SOL) plus any initial buy.
- Upload a square image (512 × 512 renders best everywhere) and enter a name (≤ 32 chars) and symbol (≤ 10).
- Under Fee recipient, pick Venmo or Cash App and enter the person — their username or their phone number.
- 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.
- 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 type | Stored as |
|---|---|
| (415) 555-0123 | phone:+14155550123 |
| +44 7700 900123 | phone:+447700900123 |
| @Maya-Chen | venmo:@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.
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.
- 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.
- Verify. Enter the 6-digit code we text you. Codes expire after a few minutes.
- 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:
| Leg | Rate | Goes to |
|---|---|---|
| Protocol fee | ~95 bps (dynamic by market cap and size) | pump.fun, half to buyback |
| Creator fee | pump.fun's standard rate, every trade | This 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:
- Re-derives the creator key and reads the vault balance across both pump programs.
- Skips vaults under 0.005 SOL — below that, the transaction fee would eat too much of the payout.
- Submits one transaction:
collect_creator_feefollowed by a transfer of the collected SOL to Receipts' treasury. - 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.
- 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.
- Marks payouts Deposited once the dollars are in their Venmo or Cash App, usually within a couple of minutes.
- 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#
| State | Meaning | What happens next |
|---|---|---|
| Swept | Fees collected on-chain to the treasury. | Swapped to USDC in the same run. |
| Converted to USDC | Fees swapped to USDC on Jupiter; dollar value fixed. | Sent if an account is linked. |
| Awaiting payout method | Recipient hasn't linked Venmo or Cash App yet. | Retried every run until an account is linked. |
| Sending | USDC is being converted and deposited. | Lands within minutes. |
| Deposited | Dollars are in their Venmo or Cash App. | Final. |
| Failed | The 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#
| Item | Limit |
|---|---|
| Coin name / symbol | 32 / 10 characters |
| Image | PNG, JPEG, WebP or GIF, up to 5 MB |
| Initial buy | Up to 50 SOL in the launch transaction |
| Creator fee | pump.fun's schedule rate |
| Minimum sweep | 0.005 SOL per vault |
| Payout methods | Venmo (@username) or Cash App ($cashtag), US accounts |
| Recipient verification | Any 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.
| Endpoint | Returns |
|---|---|
GET /api/coins | Live coins, newest first. ?wallet= filters by launcher. |
GET /api/coins/:mint | One coin with live curve state, market cap, unswept fees and recipient claim status. |
GET /api/payouts | Sweep ledger with masked recipients. ?mine=1 + bearer → only yours. |
GET /api/analytics | 30-day daily fee series and platform totals. |
GET /api/recipients | Bearer only. Your linked account, coins routing to you, totals by stage, and your payouts. |
POST /api/payout-method | Bearer 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.