1. WHAT TRICKLE IS
Trickle is a launchpad on Solana. A coin starts as a tap: a pool that people pour SOL into before the coin exists. When the pool closes, the Trickle program creates the coin on pump.fun and buys with the whole pool in the same transaction, so every wallet in the pool pays one price.
The bought tokens are not handed out at once. They drip into each wallet over the first minutes. A wallet that sells or moves what already dripped to it loses the rest of its share, and that rest flows to the wallets still holding (or is burned, if the creator chose that).
Why: the first minutes kill most new coins. Early buyers dump into the chart before anyone else arrives. On Trickle nothing can be sold before it arrives, and selling early pays the ones who wait.
2. A TAP'S LIFE
- OPEN. A creator opens a tap: name, ticker, picture, and the rules in section 3. Opening costs only the account rent (about 0.006 SOL). The rules are stored on chain and can never change.
- FILLING. The pool is open for the chosen window. Anyone pours SOL (the program refuses the creator's own wallet), within the per-wallet limits and the pool cap. You can drain your SOL back at any time until the last minute of the window.
- BORN. When the window ends, anyone can call
launch(the keeper does it within seconds). If the pool is below its minimum, the tap fails and every wallet is refunded in full. Otherwise the program creates the coin on pump.fun and buys with the whole pool (minus the reserves in section 6) in one transaction. The coin's creator on pump.fun is the tap's fees account, so creator fees come back to the program. - FLOWING. The stream starts in that same second. Tokens drip from the tap's vault into every wallet by the chosen shape. The keeper pushes drops every 30 seconds; nobody has to click.
- SETTLED. When the stream ends the keeper pushes everyone's last drop. The loss rule holds for you until that last drop has landed (so selling a second before the end still costs it); after that every token is out, no rule applies and the coin trades like any pump.fun coin. Wallets that finished the stream share a part of the creator fees for 7 days.
3. RULES A CREATOR PICKS
| Rule | Choices | Default on the site |
|---|---|---|
| Pool window | 5 / 10 / 30 / 60 min | 10 min |
| Stream length | 3 / 5 / 10 / 15 / 30 / 60 min | 10 min |
| Stream shape | even: evenly by the second head: 20% at once, the rest evenly steps: an equal step at the end of every minute | even |
| Lost drops | to holders / burn / off | to holders |
| Per wallet | min and max, within 0.05 to 10 SOL | 0.05 to 2 SOL |
| Pool | minimum and cap, within 1 to 60 SOL (60 is the program's hard max, far below what completes pump.fun's curve, so the whole pool is always spent on the buy) | 3 SOL minimum, 50 SOL cap |
| Creator's fee share | 50% to 90% | 80% |
The program refuses any other value. A minute is 60 seconds for the whole life of the deployment.
4. THE STREAM, IN NUMBERS
Your share. The pool buys T tokens with P SOL. A wallet that poured p SOL
is entitled to T × p / P. Everyone pays the same price per token.
How much has dripped. With the stream of length D seconds started at t0, at time t (e = t − t0, capped at D) the part of your share that is yours so far is:
- even
e / D - head
0.2 + 0.8 × e / D - steps
floor(e / 60) / (D / 60)
Landed vs released. "Released" is what the curve says you may have by now. "Landed" is what was actually sent to your wallet. The keeper sends the difference every 30 seconds; you can also take it yourself at any time (TAKE). The tubes on the site show both: the dim part is released, the bright part has landed.
When a share flows. On chain every share is lamports × A, where A is the
tap's tokens per lamport. When a wallet loses L tokens under the holders rule,
A += L / (lamports still in the stream): every holder's share grows in proportion to their SOL, and the
part of it already released lands on the next push.
Rounding leaves a few token units of dust in the vault; it is never paid to anyone.
5. LOSING A SHARE
The rule: while the stream runs, a wallet whose token account holds less than what was already sent to it loses the rest of its share. Selling and moving count the same. Closing the token account counts as holding zero.
- Buying more on the market and selling only that extra is fine: you still hold what dripped.
- The check reads the wallet's own associated token account for the coin (the one the drops land in).
- What is lost: everything of your share that had not landed yet, and your part of the creator fees so far.
- What you keep: every token that already landed is yours; nobody takes tokens back from a wallet.
- Who can trigger it: anyone, with the
flaginstruction. The keeper watches every wallet every few seconds and flags at once. A push to a wallet that broke the rule flags it instead of paying it. - The rule holds until your last drop has landed. The keeper pushes it seconds after the timer; once your tube says DONE you can sell whenever you want.
| Lost drops rule | What happens to a lost share |
|---|---|
| to holders | flows to every wallet still in the stream, in proportion to its SOL (if nobody is left, it is burned) |
| burn | burned from the vault at once; total supply drops |
| off | nothing is ever lost; the tap is a plain one-price launch with a timed release |
6. MONEY
- No platform fee on the pool. The pool buys with everything except three reserves: 0.03 SOL for pump.fun's account rents, the fees account's rent, and 0.0021 SOL per wallet so the vault can open each wallet's token account. Rent left over after the buy goes to the $TRICKLE treasury; what is left of the per-wallet reserve goes there 7 days after the stream.
- Creator fees of the coin (pump.fun curve, then PumpSwap after graduation) arrive at the tap's fees account and are split: the creator's share (50 to 90%), 10% to the $TRICKLE treasury, the rest to the wallets still in the stream. With the default 80%: 80 / 10 / 10.
- The wallets' part is paid only to wallets that finished the stream, in proportion to their SOL, for fees booked until 7 days after the stream. The keeper pays it out once a day; you can take it any time (TAKE). After the 7 days the wallets' part goes to the $TRICKLE treasury too.
- The $TRICKLE treasury buys $TRICKLE on the market and burns it. Every buyback is a public transaction.
- Refunds: a pool below its minimum, or a tap nobody launches within 24 hours of its window,
refunds every wallet in full. The keeper sends refunds by itself; anyone can call
refund.
7. THE KEEPER
A bot that only saves clicks. Everything it does is a permissionless instruction anyone can send; if it stops, nothing is stuck: you can launch, take, flag and refund yourself from this site.
| Closes taps | seconds after the window ends: launch or fail |
| Pushes drops | every 30 s to every wallet in a stream, and a last push when it ends |
| Watches wallets | every 3 s, flags a wallet the moment it holds less than it was sent (measured 2.6 s on a test chain) |
| Creator fees | collects and books them every 5 min, pays finishers once a day for 7 days |
| Refunds | sends every refund of a failed tap |
| Buyback | spends the treasury on $TRICKLE and burns it |
Keeper wallet: loading. It pays only transaction fees; the vault pays the
token-account rents from the reserve.
8. ADDRESSES
| Program | not deployed yet |
| Config | after deploy |
| Admin and upgrade authority | HaH32S1HjTy7AS5A86JzBPMcK3on4zZ449MtKCt3xfSm |
| $TRICKLE treasury | BW2Ds9fUobWH2A2RUmoZDmkw2EtF3iv8cpPvDWqQcgkB |
| Keeper | 2THL8jJDuaCvs2keVihDJp3UUuLj92cgoovqbjMRQcjb |
| $TRICKLE mint | not yet public |
| pump.fun program | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P |
| Interface (IDL) | /idl.json |
Every tap derives its own accounts from the program: round ["round", id], vault
["vault", round] (holds the pool, then the tokens), fees ["fees", round] (the coin's creator on
pump.fun), and one record per wallet ["pledge", round, wallet].
9. PROGRAM INSTRUCTIONS
| Instruction | Who | What it does |
|---|---|---|
| create_round | anyone | opens a tap with its rules |
| pledge / unpledge | the wallet | pours SOL in / drains it back until the last minute |
| launch | anyone, after the window | fails below the minimum, or creates the coin on pump.fun and buys with the pool |
| claim | anyone | sends a wallet what has dripped since its last claim, or flags it if it broke the rule |
| flag | anyone, until the member's last drop lands | takes the rest of a share from a wallet holding less than it was sent |
| refund / expire | anyone | refunds a failed tap / fails a tap not launched within 24 h |
| sync_fees / unwrap_fees | anyone | books creator fees that arrived and splits them |
| claim_fees | anyone, after the stream | pays a finisher its fee share |
| claim_dev_fees | the tap's creator | pays the creator's share |
| collect_treasury / sweep_vault | anyone | moves the treasury's share / the leftover reserve to the treasury |
| init_config | the program's upgrade authority only | creates the config once (nobody else can grab it after the deploy) |
| update_config | admin | sets the bounds for FUTURE taps; a tap keeps its own rules and its own treasury address from the moment it opens |
Tested before deploy on a local Solana validator with pump.fun, PumpSwap and Token-2022 cloned from mainnet: 58 program checks (every shape, every rule, attacks with swapped accounts, refunds to the lamport, fee splits) and 9 keeper checks, on the same binary that is deployed.
10. USING THE SITE
The words on the right are verbs; their first letter works from the keyboard. The same words work typed in the
command line at the bottom (press / to jump there).
| LOOK | all taps: filling, flowing, settled, missed |
| POUR 0.5 | put 0.5 SOL into the open pool |
| DRAIN / DRAIN 0.2 | take all / part of your SOL back (not in the last minute) |
| TAKE | whatever is yours: drops now, finisher fees, creator fees, a refund |
| FLAG | checks every wallet in the stream and flags one that broke the rule |
| OPEN | open your own tap, with a live preview of its stream |
| TAP 3 | go to tap #3 |
| WALLET | connect (Phantom, Solflare, Backpack); once connected it opens YOU: your address, SOL and $TRICKLE balances, every tap you poured into (poured, landed, what to keep until the stream ends, cracks, fees) and every tap you opened (creator fees waiting), each with its TAKE or REFUND button |
| LOGOUT | put the wallet away |
| DOCS / M | this manual |
The inventory at the bottom is yours: SOL poured into this tap, tokens that landed (a broken tube if yours cracked), fees waiting. Before a real tap exists the tubes show a labelled simulation.
11. LIMITS AND RISKS
- Sell and buy back fast. Someone could sell and buy back between two checks. The keeper checks every 3 seconds, so the window is small, but it exists.
- Short streams protect less. A 3-minute stream drips quickly; the site defaults to 10.
- Several wallets. One person can pour from several wallets to get around the per-wallet max. They pay the same price as everyone.
- The coin itself. After the stream it is an ordinary pump.fun coin: it can go to zero like any other.
- Upgrade authority. The program can be upgraded by the admin address above. A running tap keeps the rules stored in its account.
- Keeper down. Nothing is lost: drops can be taken, wallets flagged, taps launched and refunded by anyone.
12. QUESTIONS
- Why does a terminal show the coin's dev as some program address?
- The coin is created by the Trickle program, not by a person. On pump.fun the creator is the tap's fees account and the first buyer is the tap's vault; the vault holds the whole pool's tokens until they drip out.
- Is the vault's big holding a risk?
- No. The vault can only send tokens to the wallets of the pool (claim) or burn a lost share. There is no other instruction that moves them.
- What if I never claim?
- The keeper pushes your drops anyway. If it did not, your share still waits in the vault for you after the stream.
- Can the creator change the rules after I poured?
- No. They are written into the tap's account when it opens and no instruction edits them.
- Can the creator pour into their own tap?
- Not from the wallet that opened it: the program refuses it. Nothing on chain can stop them from using another wallet; they then pay the same price as everyone else and follow the same loss rule.
