$WET$WET
articledocssetuppoolstrack
Pump.funDexScreenerMeteora
get wet
documentation

documentation

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:

// sharing config PDA seeds: ["sharing-config", mint_pubkey] program: pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ // social fee PDA (per shareholder) seeds: ["social-fee-pda", sharing_config, recipient]

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.

wet-router architecture

the bot is five modules, each doing one thing:

config.tsloads .env, validates inputs, exports typed config
fees.tschecks creator vault balance + claims fees via official pump SDK
swap.tsswaps SOL → token via Jupiter v1 API (best route)
liquidity.tsadds both-sided liquidity to your pool
index.tsmain loop — poll, check threshold, execute pipeline

flow:

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.

configuration reference

VARIABLEDESCRIPTIONDEFAULT
PRIVATE_KEYyour wallet private key (base58)required
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.

# with pm2 npm install -g pm2 pm2 start npm --name wet-router -- start pm2 save && pm2 startup # check logs pm2 logs wet-router

security notes:

-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

programs involved:

pump.fun fee sharing: pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ Meteora DLMM: LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo Raydium CLMM: CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK Jupiter v6: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4

comparison

Bedrock / others
-closed-source contracts
-10-20% of your fees
-they control admin keys
-profit motive baked in
-redistribution to holders = wash incentive
wet-router (self-host)
-fully open-source
-0% fee forever
-runs on your machine
-you control everything
-MIT license
wet service (hosted)
-same open-source code
-operating costs only (~1-2%)
-verifiable on-chain
-no profit, no flywheel
-revoke admin to lock

FAQ

is this safe?
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.