Overview
Stubs 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 or username.
- Launcher: connects a Solana wallet, fills in the coin, signs one transaction and pays the network fee. Never touches the fees.
- Recipient: the person named at launch. Claims once, then gets paid automatically.
- Keeper: the scheduled job that collects fees from each coin's vault, swaps them to USDC and deposits dollars.
Launch in two minutes
- Open Launch and connect a Solana wallet with enough SOL for Solana network and account rent (about 0.02 SOL) plus any initial buy. pump.fun charges nothing to create a coin.
- Upload a square image and enter a name (up to 32 characters) and symbol (up to 10).
- Under Fee recipient, pick Venmo or Cash App and enter the person's username or phone number.
- Add links and an initial buy if you like. The buy runs in the same transaction as the mint.
- Press Launch. Your wallet asks for one signature, and you land on the coin page when it confirms.
Recipients
A recipient is an identity, not an account. What you type is normalized, so the same person typed two ways resolves to one recipient. Try it:
| You type | Stored as |
|---|---|
| (415) 555-0123 | phone:+14155550123 |
| +44 7700 900123 | phone:+447700900123 |
| @Maya-Chen (Venmo) | venmo:@Maya-Chen |
| nova (Cash App) | cashapp:$nova |
Claiming
- Identify: enter your phone number, or link the username the launcher used.
- Verify: enter the 6-digit code we text you. Codes expire after a few minutes.
- Pick where it goes: a Venmo @username or Cash App $cashtag. You can switch later.
Sweeps that arrive before you link an account wait as "Awaiting payout method" and are released when you link one.
Fee mechanics
pump.fun sets the fee schedule, not Stubs.
| Leg | Rate | Goes to |
|---|---|---|
| Coin creation | 0 SOL (network fee only) | Solana |
| Bonding curve, total | 1.25% of every buy and sell | split below |
| · Protocol | 0.95% | pump.fun |
| · Creator | 0.30% | This coin's vault → recipient |
| Graduation | Curve completes at ~85 SOL, one-off 0.015 SOL migration fee | Moves to a PumpSwap canonical pool |
| PumpSwap creator fee | Dynamic by market cap: 0.30% at launch tier, up to 0.95%, down to 0.05% at the top tier | Companion vault → recipient |
Every coin is a standard pump.fun token: 1,000,000,000 supply, 6 decimals, mint and freeze authority revoked at creation, no presale and no team allocation unless the launcher makes an initial buy.
Fees continue after graduation. Once the coin moves to PumpSwap, swaps there pay the creator fee into a companion vault for the same key, and the keeper sweeps both. Stubs takes nothing from the creator fee.
Sweeps & payouts
The keeper runs on a schedule. For each live coin it re-derives the creator key, reads the vault, skips balances under 0.005 SOL, collects the fees, swaps them to USDC on Jupiter and records a payout. If the recipient has linked an account, it's sent right away. Every sweep and swap is a public Solana transaction.
| State | Meaning |
|---|---|
| Swept | Fees collected on-chain |
| Converted to USDC | Swapped on Jupiter, dollar value fixed |
| Awaiting payout method | Recipient hasn't linked an account yet |
| Sending | Dollars on their way |
| Deposited | In their Venmo or Cash App |
| Failed | Rejected, shown with the reason. Relink to retry |
Security & privacy
Only someone who completes a texted code for the exact number the launcher entered can claim. Public pages show recipients masked, like +1 ••• ••• 0123, and the raw contact never leaves the server. Launch transactions are built server-side and checked before broadcast, so a client can't swap in a different transaction.
Limits & regions
| Name / symbol | 32 / 10 characters |
| Image | PNG, JPEG, WebP or GIF, up to 5 MB |
| Initial buy | Up to 50 SOL |
| Minimum sweep | 0.005 SOL per vault |
| Payout methods | Venmo or Cash App, US accounts |
Public API
Read-only endpoints. Contacts are always masked.
GET /api/coins live coins, newest first
GET /api/coins/:mint one coin with fees and claim status
GET /api/payouts sweep ledger, masked recipients
GET /api/analytics daily fee series and totals
POST /api/launch build a create (+ buy) transaction
POST /api/claim/start { phone } texts a code
POST /api/claim/verify { phone, code } returns a session token
POST /api/payout-method bearer · links Venmo or Cash AppSet CONFIG.API at the top of the page script to your keeper backend and every page reads live from it.