SolstackDocs

Tools

DLMM Liquidity Bot

A bot with a wallet of its own that keeps a Meteora DLMM position around the price, earning the pool's swap fees and re-centring when the price moves away. Devnet only for now.

Open DLMM Liquidity Bot ↗Meteora DLMM Liquidity Bot overview

Step by step

  1. Step 1Connect walletDevnet only for now. The wallet that funds the bot is the only one that can pause or stop it.
  2. Step 2Token and poolThe token's DLMM pools against SOL are listed, or paste a pool address.
  3. Step 3Range and re-centringBins each side, shape, how long to wait outside the range, and whether to rebalance.
  4. Step 4Fund it in one transactionYour SOL and tokens and a 0.15 SOL reserve move to the bot's own wallet, with the 0.1 SOL fee and a memo naming the bot.
  5. Step 5It earns and re-centresIt checks the pool about every 30 seconds, day and night. No tab needs to stay open.
  6. Step 6Stop and withdrawThe position comes out, fees included, and everything goes back to your wallet.

How it works

A Meteora DLMM pool holds its liquidity in price bins, and trades happen in the active bin, the one at the current price. The bot opens one position around it: SOL in the bins below the price, tokens in the bins above. While the price stays inside that range, the position earns its share of the pool's swap fees.

Once the price has been outside the range for the wait you chose, the bot withdraws everything, claiming the fees and closing the position, can swap back toward 50/50, and opens a new position around the new price. The fees go in with everything else, so they compound. It only provides liquidity and re-centres, never trading to make volume.

Picking a pool

It needs a Meteora DLMM pool pairing the token with SOL. On mainnet the form lists the token's pools from Meteora's data, deepest first, with bin step, fee, TVL and 24h volume; on devnet it reads them from the chain. Or paste a pool address. The bin step sets how wide a range is: the preview shows how far down and up it reaches.

Settings

Bins each side1 to 34 (presets 5, 10, 20, 34): a position is opened in one transaction and spans at most 69 bins. Fewer bins earn more, but the price leaves the range sooner.
ShapeSpot: the same in every bin, for most tokens. Curve: most near the price, more fees but out of range sooner. Bid-Ask: most at the edges.
Wait before re-centringRight away, 5 minutes, 15 minutes or 1 hour. A wait rides out a spike that comes straight back.
When it re-centresRebalance to 50/50 swaps half the difference through the same pool when the smaller side is worth under 35% of the total. Keep what it holds makes no swap: SOL goes into bins below the price, tokens into bins above, using the full width on that side.
FundingSOL, tokens or both. Match fills the other side with the same value at the pool's price.
One side only works. With Keep what it holds, it all sits on that side of the price. With Rebalance to 50/50, the rule applies to the first position too, so a one-sided deposit is swapped toward 50/50 before it goes in.

Watching and stopping it

Each bot has a page anyone with the link can open: its status, what it holds and its worth in SOL, how that compares with just holding the deposit, the fees earned, a value chart with a point every 10 minutes, the position as it stands, and every action with a Solscan link. The Your bots tab lists bots started in this browser and, after you sign in, those from other devices.

Pause, Resume and Stop and withdraw ask your wallet to sign a message, not a transaction. Paused, the position stays in the pool and keeps earning but won't re-centre. Stop is final: it withdraws the position, fees included, and sends every token and every lamport back to the funding wallet.

What it costs

Solstack fee0.1 SOL once per bot, in the funding transaction. Earning, re-centring, pausing and stopping carry no Solstack fee.
Swap feesA rebalancing swap pays the pool's own fee, not Solstack's.
Reserve0.15 SOL stays in the bot's wallet for position rent, token accounts and network fees. What's left comes back when it stops.
Position rentAbout 0.06 SOL, paid from the reserve when a position opens and back whenever it closes.
New bin arraysA range needing a bin array no one has opened yet pays its one-time rent, about 0.07 SOL, which doesn't come back.

Risks and limits

  • It can lose money. A DLMM position suffers impermanent loss: as the price moves, it ends up holding more of whichever side lost value. It earns nothing while the price is out of range, and each rebalancing re-centre pays a swap fee.
  • Your wallet's keys stay in your wallet. The bot trades from a separate wallet of its own, holding only what you put in it, and stopping it sends everything back to you. Solstack's server keeps that wallet's key sealed and uses it only for that bot.
  • Up to 100 SOL per bot. A token with a live freeze authority needs a tick, since it could freeze the bot's tokens. Token-2022 tokens with a transfer hook, non-transferable ones and ones whose new accounts start frozen are refused.
Devnet only for now: mainnet opens after the bots have been watched with real trades. Try it with free SOL from the devnet faucet. Not financial advice.

FAQ

What does it cost?

A 0.1 SOL Solstack fee, once per bot, paid in the funding transaction. Earning, re-centring, pausing and stopping cost nothing more from Solstack. A rebalancing swap pays the pool's fee. The bot's 0.15 SOL reserve covers network fees and the position's rent (about 0.06 SOL, back each time a position closes); a bin array no one has opened yet costs about 0.07 SOL once and doesn't come back. What's left of the reserve comes back when the bot stops.

How does it earn?

A DLMM pool pays its swap fees to the liquidity at the current price. The bot keeps one position around that price, so while the price stays inside its range it earns a share of every trade. Fees are claimed at each re-centre and go into the next position.

When does it re-centre?

Once the price has been outside the range for the wait you chose: right away, 5 minutes, 15 minutes or an hour. It withdraws everything, fees included, optionally swaps toward 50/50, and opens a new position around the new price.

Rebalance to 50/50 or keep what it holds?

Rebalance swaps half the difference through the same pool when the smaller side is worth under 35% of the total, so the new range has both. Keep makes no swap: SOL goes into bins below the price and tokens into bins above, using the full width on that side.

Which shape should I pick?

Spot spreads the funds evenly and suits most tokens. Curve stacks them near the price: more fees, but it leaves the range sooner. Bid-Ask stacks them at the edges.

Who holds the funds?

Your wallet's keys stay in your wallet. The bot trades from a separate wallet of its own, holding only what you put in it, and stopping it sends everything back to you. Solstack's server keeps that wallet's key sealed and uses it only for that bot.

What do Pause and Stop do?

Paused, the position stays in the pool and keeps earning but won't re-centre. Stop and withdraw takes the position out, fees included, and sends every token and every lamport back. Both ask for a wallet sign-in (a message, not a transaction). A stopped bot can't be restarted.

Can it lose money?

Yes. A DLMM position suffers impermanent loss as the price moves, earns nothing while the price is out of range, and each rebalancing re-centre pays a swap fee. Not financial advice.

Is it on mainnet?

Not yet. It runs on devnet only for now, and mainnet opens after the bots have been watched with real trades.

NextMultisender →
Your keys stay in your wallet · every job starts with your approval · fees shown before you sign← Back to solstack.xyz