everything you need to understand and use wet-router. read every line — that's the point.
overview
wet-router is an open-source TypeScript bot that automates the fee-to-LP pipeline for pump.fun tokens. it monitors your creator fee balance, claims when a threshold is hit, swaps half to tokens via Jupiter, and adds both sides as liquidity to the PumpSwap AMM pool.
the problem it solves: protocols like Bedrock charge 10-20% of your creator fees to do what is essentially three on-chain operations — claim, swap, add LP. wet-router does the same thing for free.
two ways to use it: self-host (clone the repo, run it yourself, zero fees forever) or use the hosted service (point your fee sharing to our wallet, we run it for you at cost).
pump.fun fee sharing
pump.fun has a native fee sharing program at . this is pump.fun's own infrastructure — not a third-party protocol. Bedrock and others just build UIs on top of it.
the program uses PDA seeds to create per-token configs:
how it works: when a token is deployed on pump.fun, the creator can set up fee sharing. this defines who receives the creator fees generated by trades on the bonding curve. shares are defined in basis points (10,000 = 100%).
the key insight: you can set 100% of fees to go to a single wallet (yours or the service wallet), then revoke the admin authority to lock it permanently on-chain. no one — not even you — can change it after that. this is what makes the $WET model trustless.
important
pump.fun tokens have two phases. on the bonding curve (pre-graduation), there is no LP pool — fees accumulate in the creator vault but can’t be routed to LP yet because no pool exists. after graduation (~$30-35K mcap), pump.fun creates a PumpSwap AMM pool. this is when wet-router activates — claiming fees and depositing them into the real pool.
poll loop (every POLL_INTERVAL seconds)
│
├─ check creator vault balance (fees.ts)
│ └─ uses @pump-fun/pump-swap-sdk to read vault PDA
│
├─ if balance >= CLAIM_THRESHOLD
│ └─ claim creator fees → SOL lands in wallet (fees.ts)
│
├─ split claimed SOL 50/50
│ └─ swap half to token via Jupiter (swap.ts)
│
└─ deposit both sides to PumpSwap AMM pool (liquidity.ts)
└─ pool deepens. repeat.
note: only works post-graduation. pre-bond there is
no pool — fees accumulate until graduation.
dependencies: @solana/web3.js, @coral-xyz/anchor, @pump-fun/pump-swap-sdk. no custom programs. no middleware. every transaction is a standard Solana instruction you can read and verify.
RPC_URLHelius or other Solana RPC endpointrequired
TOKEN_MINTyour token's mint addressrequired
POOL_ADDRESSPumpSwap pool (auto-derived from TOKEN_MINT if omitted)auto
CLAIM_THRESHOLDminimum SOL balance to trigger claim0.1
POLL_INTERVALseconds between balance checks60
LP_PERCENTAGE% of claimed fees routed to LP100
SLIPPAGE_BPSJupiter swap slippage in basis points100
self-hosting guide
prerequisites: Node.js 18+, a Solana wallet with SOL, a Helius RPC key (free tier works).
# 1. clone
git clone https://github.com/co-numina/wet-router
cd wet-router
# 2. configure
cp .env.example .env
# edit .env with your wallet key, RPC URL, token mint, pool address
# 3. install + run
npm install
npm start
# the bot will log every check, claim, swap, and LP add.
# ctrl+C to stop. your funds stay in your wallet.
running 24/7: use pm2 or systemd to keep it alive.
-use a dedicated wallet for the bot — don't use your main wallet
-never commit your .env file. it's in .gitignore by default
-test with tiny amounts first (set CLAIM_THRESHOLD to 0.01)
-the bot only signs claim + swap + LP transactions — it can't drain your wallet
hosted service
don't want to run a bot? use the hosted service. same code, we run it for you. you point your pump.fun fee sharing to our service wallet. we claim + route to LP. you pay only operating costs.
how to set it up:
1go to /setup on this site — the wizard walks you through it
2set the service wallet as 100% recipient in pump.fun fee sharing
3optionally revoke admin to lock the config permanently
4we monitor, claim, swap, and add LP automatically
fee structure:
to your LP pool~98-99%
operating costs (RPC, gas, compute)~1-2%
revenue / profit0%
operating costs are RPC calls, transaction fees, and server compute. we publish a monthly transparency report.
on-chain verification
every claim, swap, and LP add is a normal Solana transaction. you can verify everything on Solscan or any explorer.
what to look for:
fee claims
instruction to pump fee program (pfee...) → SOL transfer to service/your wallet
swaps
Jupiter v6 route — SOL → token. check the route for best execution
LP adds
Meteora DLMM or Raydium CLMM addLiquidity instruction. both sides deposited
wet-router signs three types of transactions: fee claims, Jupiter swaps, and LP adds. it cannot transfer your funds anywhere else. the code is open-source — read it.
what happens after graduation?
fee sharing applies to the bonding curve phase. after graduation to Raydium, the LP position itself generates trading fees. wet-router can still manage those through Raydium CLMM fee claiming.
can i change the fee sharing after revoking admin?
no. that's the point. revoking admin makes the config immutable on-chain. nobody — not even you — can change it. this is how you make it trustless.
what RPC should i use?
Helius free tier works fine for low-volume tokens. if you're doing more than ~100 claims/day, upgrade to a paid plan. free public RPCs will rate-limit you.
can i use this for any pump.fun token?
yes. any token with fee sharing enabled on pump.fun can use wet-router. you just need the mint address and your pool address.
why not just do it manually?
you can. claim fees on pump.fun, swap on Jupiter, add LP on Meteora. that's 3 transactions every time fees accumulate. wet-router automates the whole cycle so your pool deepens 24/7.
what if the bot crashes?
your funds stay in your wallet. the bot is stateless — it just checks balances and acts. restart it and it picks up where it left off.