Three tools automate concentrated-liquidity positions. VFat and Krystal are the established names; MaxFi is the new entrant with an aggressive zero-swap rebalance logic. The mechanic that makes MaxFi great in a bounce-back market is the same one that can hurt you badly in a continued-down market. Here's what each one charges, what each one does on a price drop, and how to pick.
Active liquidity management has three popular automation tools right now: VFat, Krystal, and MaxFi. They all claim to do the same thing — keep your LP range in the money — but they rebalance very differently. And how they rebalance determines whether you keep your gains or get steamrolled on a bad day.
What Each Tool Does
- VFat — yield aggregator and concentrated-liquidity manager. Uses its own Sickle contracts, self-custodial. Charges a small platform fee per rebalance on top of swap costs.
- Krystal — multi-chain liquidity-farming agent with many DEXs. Heavy on Auto-Farm Vaults and AI-driven monitoring. Charges per-action fees plus auto-compound and auto-harvest fees on LP earnings.
- MaxFi — newer product from the Snuggle team. Runs on Robinhood Chain, Base, and Arbitrum, including tokenized US stocks against USDG on Robinhood Chain. Uses a zero-swap rebalancing logic that sticks to the current price and never crystallizes impermanent loss at extreme moves. The rebalance delay is user-configurable from 1 hour to 168 hours. Charges a 15% performance fee on LP earnings only. Configuration is per-position with a preset library of three levels (Aggressive / Moderate / Conservative) auto-tuned per pool from on-chain liquidity data; you can also customize range width and rebalance delay manually on top of any preset. Range width is a single parameter that applies equally to both sides of the current price — you cannot widen one side independently of the other.
A note on Snuggle vs. MaxFi. Snuggle and MaxFi are products of the same team and share the zero-swap rebalancing logic. MaxFi is the broader, more active version: it expands on Snuggle by adding Robinhood Chain support (tokenized US stocks and ETFs) and a much wider set of pools across Robinhood Chain, Base, and Arbitrum, plus AI-managed strategies. So when this article talks about MaxFi's zero-swap mechanic, the same logic applies to Snuggle — the difference is mostly in surface area, not in how the rebalance itself works.
The Key Difference: How They Rebalance
VFat and Krystal use the classic swap-to-rebalance approach. When your position goes out of range, they sell one token and buy the other to bring the position back inside the new range. That swap happens at the worst possible moment — right after a price extreme — and costs you in three ways:
- The DEX swap fee (0.01–1% depending on the pool)
- Slippage on the trade (often 0.5–5% in volatile moves)
- MEV / sandwich attacks (0.2–1% on public mempools)
You also crystallize your impermanent loss permanently. If the price reverses immediately, you've already bought high or sold low. That loss is locked in forever.
MaxFi uses a different approach — zero-swap rebalancing. When your position goes out of range, MaxFi repositions the range to touch the current price using only the tokens you already hold. No swap. No slippage. No MEV. The AMM itself rebalances you as price drifts back through your range. Impermanent loss is deferred, not crystallized.
Sounds perfect. It is, with one big asterisk.
The Tail Risk Nobody Mentions
Zero-swap rebalancing works brilliantly when the market is mean-reverting: price spikes, your range gets re-anchored, price drifts back, the AMM rebalances you at better average prices, you collect fees the whole time.
But what happens when the price doesn't bounce back — when it just keeps going down?
In a classic swap-based tool, a falling price triggers an ETH→USDC swap at the lower price. You exit your ETH exposure into USDC. Painful trade, but your capital is partly protected.
In a zero-swap tool, the price falls through your range and the position stays 100% ETH. No swap, no protection. The range just gets re-anchored to the new, lower price, with you sitting in the depreciating token. The next 10% drop does the same thing. And the next. Each "rebalance" is a no-op: you're already all-ETH, so there's nothing to swap, and the range simply slides lower with you.
You only get back to a balanced position if the price reverses and traders start pushing it back through your range. If the trend is one-way down, you ride the entire drop with no hedge.
Here's the scenario at a glance:
| Market Behavior | VFat / Krystal (Swap-Based) | MaxFi (Zero-Swap) |
|---|---|---|
| Range-bound oscillation | OK — earns fees, but pays swap costs on every rebalance | Best — earns fees with zero structural cost; defers IL |
| Drift down then bounce | OK — crystallizes IL at the bottom, but recovers | Best — no IL crystallized, AMM rebalances you on the way back |
| Sustained 50% rise | OK — locks in gains via repeated sells | OK — accumulates USDC on each range exit |
| Sustained 50% drop | Best — converts ETH to USDC on each dip, preserves capital | Worst — stays 100% ETH through the entire decline, takes the full hit |
The row that matters most: the one-way drop. That's where MaxFi's elegance becomes a liability.
This isn't a theoretical concern. ETH has dropped 50%+ multiple times in its history (2018, 2022, mid-2025). A position opened just before any of those drops would have ridden all the way down on a zero-swap tool.
There's a second consequence worth naming explicitly. In a swap-based tool, every dip sells a slice of your ETH into USDC — your average entry price for ETH drops with each dip. You're locking in "I bought cheaper." In a zero-swap tool, your average entry price never improves on a one-way move: each rebalance just re-anchors the range to the new lower price, with the position sitting 100% ETH. No swap, no better average.
And the second cost is dead time: when the price sits below your range, your position is 100% ETH and earns zero LP fees. You only start earning again when the price reverses and re-enters your range — and even then, only on trades that cross through it. The pool is effectively idle for the entire drawdown.
Where You Configure Automation: Per-Position vs Per-Vault
This is a structural difference that doesn't show up in the fee tables but matters a lot when you're running many positions.
- VFat is per-position only. Every CL position you open gets its own Auto-Rebalance, Auto-Harvest, Auto-Compound, and Auto-Exit settings. There is no "apply this rule to N positions at once." Ten positions = ten separate automation configs to maintain.
-
Krystal runs on three nested levels (per docs/products/vaults/vault-vs-strategy.md):
- Liquidity Position: «a single position on a DEX (e.g., Uniswap V3), typically represented by an NFT issued by the protocol.»
- Liquidity Strategy: «a managed approach to a specific trading pair, composed of one or a series of positions that are periodically rebalanced. Strategies could include automation tools like auto-rebalance, auto-exit, and fee compounding.»
- Liquidity Vault: «can hold multiple Liquidity Strategies across different pools and tokens. This allows users to build and share more customized, advanced strategies under a single, smart-contract-governed framework.»
A Vault's core capabilities (per docs/products/vaults/what-is-liquidity-vault.md): «Manages multiple LP assets · Auto collect and convert fees · Enables auto-compounding, rebalancing, exiting · Bundle multiple LP actions (e.g., migrate, rebalance) into fewer txs · Auto-farm with enabled AI Agent.» Auto-Farm Vaults add an AI agent that selects pools, deploys capital, and manages positions end-to-end hands-free (per docs/products/vaults/auto-farm.md).
Crucial fee detail (per docs.krystal.app/ecosystem/fees.md): inside a Vault, «No additional fees for automation, zap, or rebalance within a VAULT» — only the Vault's performance fee on generated rewards applies (10% for Auto-Farm Vault, 10% default / 5% sharing for Community Vault). This means a single fee layer and a single automation layer across all positions inside the Vault.
- MaxFi is per-position with a strong preset library. Three presets (Aggressive / Moderate / Conservative) per pool are auto-generated from on-chain liquidity data; you tune one position at a time, but the presets make that fast.
Practical takeaway: if you want one rulebook applied across many positions, Krystal is the only one of the three that does that natively. VFat and MaxFi force per-position config, which is fine for 1–5 positions and gets painful past 10.
Adding Capital After Opening
Once a position is open, the three tools treat capital additions differently:
- MaxFi does not let you add funds to an existing position. The only mechanism that grows the position is auto-compound — the matching-token side of accrued fees is reinvested into the new range after each rebalance (maxfi.tech/docs → Auto-Compound). There's no "Add Funds" / "Top Up" / "Increase Position" flow in the docs. If you want more exposure to a working position, you open a new one — and end up with several positions on the same asset at different investment sizes.
- Krystal does support it. The Position Details page has an explicit "Add Liquidity" button (per docs.krystal.app/products/liquidity-management/lp-transactions/provide-liquidity.md), so you can deploy more capital into an existing position in one click.
- VFat does support it. You can deploy more capital into an existing VFat position.
Practical takeaway: if your strategy involves scaling into a working position over time, Krystal and VFat are the cleanest fit. MaxFi forces you to manage multiple positions on the same asset.
UI and Pool Coverage
Two more practical differences worth naming:
- VFat's UI is cleaner. It does one thing — concentrated-liquidity management — and the dashboard stays focused. Less clutter, fewer popups, fewer side menus. If you only need LP automation and don't care about cross-chain yield dashboards, VFat is the calmer interface to live in.
- Krystal has the broadest pool coverage. It lists positions across 9 chains and 19+ DEXs (Uniswap V3/V4, PancakeSwap, SushiSwap, Aerodrome, Camelot, THENA, Raydium, Thruster, Shadow, and others). That breadth is the main reason Krystal's UI looks busier — it's showing you a lot of surfaces, vaults, strategies, and chains in the same app.
- MaxFi is somewhere in between. Roughly 200 pools across tokenized US stocks, Bitcoin, Ethereum, meme, AI-agent, altcoin, base ecosystem, stablecoin, and Robinhood meme categories — a much wider list than the docs page summary suggests, but a clean layout with a clear "Earn / Positions / Docs" navigation. The trade-off is choice vs focus: Krystal has more chains and DEXs, MaxFi has a single-chain concentration but a focused pool library.
If "I just want to manage a handful of LP positions and not think about it" is your priority, VFat and MaxFi win. If "I want every pool I can imagine on every chain, in one app" is your priority, Krystal wins.
Per-Operation Fees at a Glance
What you actually pay for each action — per tool, before any market costs.
| Operation | VFat | Krystal | MaxFi |
|---|---|---|---|
| Deposit LP token / both tokens | 0% | Free | Free |
| Deposit single token (with swap) | 0.09% of swapped slice | 0.05–0.25% (Zap, by pool tier) | Free |
| Withdraw | 0% / 0.09% if swap | Free / tier swap fee | Free |
| Auto rebalance fee | 0.01% of position (≤0.05% pool) → up to 0.05% (higher-fee pool) | 0.01% → up to 0.05% of position (by pool tier) | Free (no swap, no position fee) |
| Swap on rebalance | 0.09% of swapped slice (VFat) + 0.01–1% DEX pool fee | 0.1% of volume (Krystal) + 0.01–1% DEX pool fee | None — zero-swap mechanic |
| Manual harvest / compound | 0.9% of rewards each | Manual compound 0.05–0.25% by tier (of compound amount) | Free (single 15% performance fee) |
| Auto-compound / auto-harvest | Auto-Harvest 1.2% / Auto-Compound 1.8% of rewards | 2% of LP fees each | Free (single 15% performance fee) |
| Performance / reward fee | n/a | 10% of rewards (Auto-Farm Vault) / 10% default, 5% sharing (Community Vault) | 15% of LP earnings only |
| Slippage | Yes — depends on market | Yes — depends on market | None — no swap |
| MEV / sandwich risk | Possible on public mempool | Possible on public mempool | Impossible — no swap, nothing to sandwich |
Three things jump out from this table:
- VFat and Krystal charge on every action. Every rebalance pays a swap fee plus a platform fee plus a DEX pool fee plus (in Krystal's case) auto-compound and auto-harvest fees on the LP earnings.
- MaxFi has zero per-operation fees. The only charge is 15% of LP earnings, paid at the end on what the position actually made.
- The difference in mechanics shapes the fee profile. VFat and Krystal have predictable per-event costs but crystallize impermanent loss on every swap. MaxFi's only cost scales with profit and IL is deferred, not locked in.
Fee Comparison on a $10,000 ETH/USDC Position
Setup: $10,000 in an ETH/USDC concentrated-liquidity position, ±15% range, 0.01% fee tier pool. ETH moves 50% up or 50% down from entry. A ±15% range means each 15% move triggers a rebalance — so each scenario produces 3 rebalances.
VFat (≤ 0.05% fee tier pool)
Assumes a ~$5,000 swap slice per rebalance (half the $10k position, swapped into the other token).
| Action | Per-Event Cost | × 3 Rebalances |
|---|---|---|
| Rebalance fee (VFat) | 0.01% × $10k = $1 | $3 |
| Swap fee (VFat, 0.09% of slice) | 0.09% × $5k = $4.50 | ~$13.50 |
| DEX pool fee (0.01% of slice) | 0.01% × $5k = $0.50 | ~$1.50 |
| Structural protocol cost (predictable) | ~$6 / event — ~$18 over 3 |
The two lines below are not protocol fees — they're market costs that depend on volatility and pool depth at the moment of the swap. Splitting them makes the actual range honest:
| Market Condition | Slippage (per event) | MEV / sandwich (per event) | × 3 Rebalances |
|---|---|---|---|
| Calm market, deep pool | 0.1–0.5% ($5–$25) | 0.1–0.3% ($5–$15) | +$30–$120 |
| Normal volatility | 0.5–2% ($25–$100) | 0.2–0.5% ($10–$25) | +$105–$375 |
| Wild move, thin pool | 2–5% ($100–$250) | 0.5–1% ($25–$50) | +$375–$900 |
Realistic total over 3 rebalances: ~$125–$395 in normal conditions. The $775 ceiling only happens during genuinely stressed moves on a thin pool.
Krystal (auto-rebalance, ≤0.05% fee tier)
Same ~$5,000 swap slice per rebalance.
| Action | Per-Event Cost | × 3 Rebalances |
|---|---|---|
| Auto-rebalance fee | 0.01% × $10k = $1 | $3 |
| Swap fee (Krystal, 0.1% of volume) | 0.1% × $5k = $5 | ~$15 |
| DEX pool fee (0.01% of slice) | 0.01% × $5k = $0.50 | ~$1.50 |
| Structural protocol cost (predictable) | ~$6.50 / event — ~$20 over 3 |
Same split for market costs:
| Market Condition | Slippage (per event) | MEV / sandwich (per event) | × 3 Rebalances |
|---|---|---|---|
| Calm market, deep pool | 0.1–0.5% ($5–$25) | 0.1–0.3% ($5–$15) | +$30–$120 |
| Normal volatility | 0.5–2% ($25–$100) | 0.2–0.5% ($10–$25) | +$105–$375 |
| Wild move, thin pool | 2–5% ($100–$250) | 0.5–1% ($25–$50) | +$375–$900 |
Plus 4% of LP fees (2% auto-compound + 2% auto-harvest) — on top of everything.
Realistic total over 3 rebalances: ~$125–$395 + 4% LP earnings in normal conditions. Same $775 ceiling only in stressed moves.
MaxFi (15% performance fee only)
| Action | Per-Event Cost | × 3 Rebalances |
|---|---|---|
| Rebalance | free | $0 |
| Swap | none (zero-swap) | $0 |
| Slippage | none | $0 |
| MEV | impossible (no swap) | $0 |
| Performance fee | 15% of LP earnings only | 15% × LP earnings |
| Approx. total over 3 rebalances | 15% × LP earnings, $0 structural cost |
The structural cost gap is the whole point: $0 vs $60 every time the range breaks — before you even count slippage and MEV. MaxFi wins the cost comparison by construction, not by negotiation.
How the Scenarios Play Out
Same $10,000 ETH/USDC position, ±15% range, 0.01% pool, three rebalances each direction:
| Scenario | VFat | Krystal | MaxFi |
|---|---|---|---|
| +50% rise, then back to entry | Lost 0.01% platform + ~$140–$390 in swap cost. Net: negative or break-even. | Same as VFat + 4% of any LP fees. Slightly worse. | 15% of any LP fees earned during the round-trip. No structural cost. |
| +50% rise, held to top | Sold into the rise; captured partial upside but missed the peak. Net: positive but capped. | Same as VFat + 4% LP fee cut. | Accumulates USDC on each range exit; captures upside. Net: positive, capped by range. |
| −50% drop, then bounce back | Crystallized IL at each dip. Recovery partial; you'll never get the full IL back. Net: negative or marginal. | Same as VFat. | Zero IL crystallized; AMM rebalances you during the bounce. Net: best of the three. |
| −50% drop, no bounce | Swapped ETH→USDC at each dip; preserved part of capital. Loss limited to swap costs. | Same as VFat. | Stayed 100% ETH through the whole drop. Took the full 50% hit. Net: worst of the three. |
How to Pick
- VFat — fine for low-frequency rebalancing on chains you trust. Cheap per rebalance, but you pay the swap and IL tax every time.
- Krystal — multi-chain and feature-rich. Best if you want AI monitoring across many chains. Higher overhead than VFat.
- MaxFi — best in mean-reverting markets; worst in sustained one-way moves. If you believe the asset is going to bounce, MaxFi wins. If you believe it's going to grind down, MaxFi bleeds.
A practical rule: only use MaxFi-style zero-swap tools when you have a stop-loss plan outside the position. The tool optimizes for fees in the happy path; it doesn't protect you from a trend.
Which Service When
Three tools, three jobs. The right pick depends on your portfolio size, how often you can watch the position, and what kind of market you're trading.
Pick by Portfolio Size
- 1–3 positions. You can manage these by hand. Every automation fee is a cost you can avoid by rebalancing yourself when conditions change. Manual keeps every basis point of your earnings.
- 5–10 positions. This is where automation starts to pay for itself. Watching 5–10 ranges and rebalancing each one to market takes real time every day. VFat's small per-rebalance fee is usually cheaper than the missed opportunities of doing it manually.
- 10+ positions. Automation is no longer optional. At this scale you need Krystal's multi-chain coverage or VFat's reliability — running it all by hand becomes impossible. MaxFi makes sense too if you want to defer fees and your positions are mostly in mean-reverting pairs.
Pick by Time Away from Your Laptop
The more time you expect to be offline (vacations, conferences, weeks where you're traveling), the more the automation fee becomes worth it. But the rebalance delay you set should match both your absence and the asset class — different assets need different response times.
Asset-by-asset delay rules of thumb:
- Tokenized US stocks (Robinhood Chain and similar). Set 72h over the weekend, when the underlying stock market is closed but the on-chain AMM can drift on thin liquidity. The pool price moves even though the underlying stock hasn't — every rebalance during that drift looks like a loss, but the AMM and the stock price converge again on Monday. Shorter delays work fine during working days when both the AMM and the underlying market are active.
- Meme coins. Set ~1 hour. APY is high on these pools and you want to catch almost every move. Long delays here mean missing the runs that make meme LP positions pay off.
- Major assets (BTC, ETH, SOL). Set ~24 hours. You want to avoid reacting to brief spikes; only rebalance once the market structure has clearly changed. A 24h delay filters out noise without missing real moves.
- Short-term altcoins and low-volume pools. Match the delay to the asset's volatility — typically between 1h and 24h. Pick shorter if the pool is liquid enough to absorb swaps without big slippage.
Match the tool to your absence:
- Days to a couple of weeks. A short rebalance delay on VFat or Krystal is enough. VFat's rebalance delay is configurable from 0 to 255 minutes (just over 4 hours), so it filters out brief noise but is meant for short absences. Krystal's delay is configurable per position. The bot catches the rebalance for you while you're offline.
- Weeks to months. Look for tools with longer rebalance windows or hands-off presets. MaxFi's configurable delay (1 hour to 168 hours / 1 week) covers most trips and matches the asset-class rules above; for longer absences, VFat and Krystal both keep running unattended.
- You're effectively offline full-time. At this point you're paying for the service, not just the automation. VFat and Krystal both run well in fully unattended mode. MaxFi shines if you pair it with a stop-loss plan (see below).
Pick by Market Expectation
- Range-bound or mean-reverting market. MaxFi is the best tool. Zero-swap rebalancing means you keep earning fees through the bounce-back instead of paying every step.
- Trend day, up. VFat and Krystal sell into the rise. You capture the move in slices. MaxFi accumulates USDC on each range exit — also works, but VFat/Krystal are the conventional play here.
- Trend day, down. VFat and Krystal swap ETH → USDC on each dip and protect your capital. MaxFi stays 100% ETH through the whole drop, which is the worst case for it.
The MaxFi-Specific Risk You Need to Plan For
Three things MaxFi does differently from the other two — and three things you have to set up yourself.
1. No stop-loss on the position itself. MaxFi's automation is rebalance-only. There is no Auto-Exit equivalent to VFat's feature — you can't tell MaxFi "close this position if price drops to X." If you want a hard floor, you have to build it outside the protocol.
2. Rebalance delay exists to filter noise — use it for that. The 0–168h delay setting is meant to wait out brief spikes before triggering a rebalance. A typical use case: tokenized US stocks on Robinhood Chain. The stock market is closed on weekends, but the on-chain pool price can drift on thin liquidity during those 72 hours. If MaxFi rebalances during the drift, the position appears out of range and looks like a loss — but the underlying stock price hasn't actually moved, the AMM has just moved around an illiquid book. Set a 72h delay on stock pools so the bot waits out the weekend and only rebalances once Monday's trading brings the AMM and the underlying price back together. Same logic for low-volume hours on thin pools.
3. The downside of zero-swap during a sustained drop. If price drops through your range and keeps dropping, every rebalance in a zero-swap tool just slides your range lower with you. The position will end up 100% ETH at the bottom, even if it took ten rebalances to get there. That's the danger: you don't sell anything on the way down, so if the price later bounces back, you sell your ETH back into USDC only when the price rises back into your range. You sell low relative to the drop, even though the trend is now reversing — you sell "by a good price" relative to the bottom, but by a cheap price relative to where you started. The fee earnings you collect along the way cushion the loss, but only partially.
The good scenario for MaxFi: price drops below the range in one move, then bounces back. You accumulate 100% ETH at the lower (cheap) price, then as price recovers into your range, you sell at gradually rising prices — earning fees the whole way up and selling at a "good price" relative to the dip.
That's why the only safe way to run MaxFi is with a stop-loss plan outside the position. Here's the safer option:
- Set a manual exit trigger (price X below range, time T since range break) and close the position by hand before further declines.
Without that, MaxFi is the wrong tool for a position in a coin you expect to trend hard in either direction.
The Takeaway
- VFat charges a small fee per rebalance and pays for it in swap costs and IL crystallization. Best when rebalances are rare.
- Krystal is the multi-chain option with a richer feature set and more fees layered on top of the same swap-based mechanics.
- MaxFi wins on cost-per-rebalance (zero structural cost) and is best in mean-reverting markets. Its zero-swap rebalance is also its biggest risk in a sustained downtrend — your position rides the entire drop with no protective swap.
Pick by what you expect from the market. Range-bound or bounce-back? MaxFi. Trend day? VFat or Krystal with manual oversight.
Not financial advice. Fee schedules change — verify on each tool's official docs before committing capital. ETH/USDC at 0.01% tier exists on some DEXes but is less common than 0.05% — adjust assumptions if you're working with a different pool. Numbers were current at time of writing.
Sources:
- VFat fee schedule: docs.vfat.io/fees
- Krystal fee schedule: docs.krystal.app/ecosystem/fees
- Krystal vault structure (Position / Strategy / Vault): docs/products/vaults/vault-vs-strategy.md
- Krystal Vault core capabilities: docs/products/vaults/what-is-liquidity-vault.md
- Krystal Auto-Farm Vault: docs/products/vaults/auto-farm.md
- Krystal Provide Liquidity (Add Liquidity button on Position Details): docs/products/liquidity-management/lp-transactions/provide-liquidity.md
- Snuggle fee schedule: snuggle.fi/docs
- MaxFi docs (zero-swap rebalance, presets, fees): maxfi.tech/docs
Tools:
Top comments (0)