A Uniswap v4 hook-manager for holders who measure wealth in tokens, not dollars. Deposit one asset, put a chosen slice to work on a correlated pool, and buy the trading fees back into the coin you believe in.
Abstract
A Bitcoin maxi does not ask how many dollars they hold — they ask how many sats. bob is built for that question. You deposit a single belief asset; bob deploys a portion as full-range liquidity on an already-deep Uniswap v4 pool that pairs it against a correlated asset, harvests the fees, and buys back more of your belief asset. The rest stays untouched, fully exposed to the coin you came for. bob is oracle-free, passive, and non-custodial in the meaningful sense. It does not eliminate impermanent loss or promise more tokens in every market — it reshapes the trade-off to fit a believer, with a single dial deciding how much of your stack works versus rides.
01 · The problem
Concentrated liquidity made LPing capital-efficient — and a job. You pick ranges, monitor them, and rebalance; a position that drifts out of range stops earning and leaves you holding 100% of the wrong side. Rebalances are visible in the mempool and routinely sandwiched. To provide liquidity at all you must hold both tokens, even if you only believe in one. And every mainstream tool keeps score in dollars — it optimizes to preserve dollar value, then treats your belief asset as something to hedge away.
Existing answers optimize the wrong thing: yield aggregators are dollar-denominated and generic; delta-neutral vaults need perps, oracles, and funding risk; active managers add centralization and rebalancing MEV; options overlays are complex and illiquid. None answer the believer's actual request — I have an asset I believe in; I want yield on it without selling it, paid in the same asset.
The bob insight
Mainstream LPing asks “how do I lose the fewest dollars?” bobasks a different question: how do I end up with more of the asset I already want to hold? Once your scoreboard is token count, impermanent loss stops being a symmetric evil — it becomes directional, and it can be managed with a single dial instead of a hedging desk.
02 · The model
bob optimizes one number: how many units of your belief asset you hold when you withdraw, versus how many you deposited.
bob pools two crypto assets — say BTC and ETH. The only price that affects your token count is the BTC/ETH ratio, not BTC's dollar price. A BTC maxi in a BTC/ETH pool is betting that BTC outperforms ETH; BTC can triple in dollars and still lose ground to ETH. Your outcome tracks the ratio, never the USD chart.
You deposit N belief tokens and choose a conviction dial s. bob deploys s·N as full-range liquidity (converting half the slice into the paired asset), holds the remaining (1 − s)·N as an untouched reserve, harvests the fees and buys them back into your asset, and on withdrawal returns everything — reserve, rebalanced slice, and fees — in the belief asset.
The reserve is inert to price. The slice gains tokens when the ratio falls and loses tokens (bounded by s·N) when it rises. Fees F are always additive and impermanent-loss-proof. The dial is the product: the strength of your belief literally sets how much of your stack stays out of the pool — which is what makes bob Based on Belief.
03 · Architecture
bob is built from Uniswap v4's hook primitives but is not bound to the pool as its hook — it attaches to an existing pool as a periphery manager.
A v4 hook is bound to a pool at initialization and can never be attached afterward — a brand-new bob-hooked pool would start empty, no liquidity, no volume. bob sidesteps that cold-start. Its mechanics run entirely through the permissionless unlock / flash-accounting flow, so it drives the already-deep WBTC/ETH pool with the same primitives without being its registered hook. You get the engineering of a hook with the liquidity of an established pool — and bob never touches swap pricing.
A single pool hosts several beliefs at once. Each is an isolated vault keyed by (pool, belief): its own full-range position (separated by a per-belief salt so fees never commingle), its own belief-denominated fee index, and its own config. On WBTC/ETH, the WBTC vault accumulates sats for BTC maxis while the ETH vault accumulates wei for ETH maxis — same pool, same depth, fully isolated accounting.
Hookless pools only — enforced on-chain
bobcommingles every vault's tokens in one balance, so it rejects any pool whose hooks field is set: a pool hook could manufacture a delta against those balances. It also bounds the pool fee (≤ 10%) and tick spacing. The live WBTC/ETH pool has no hook, so it qualifies.
04 · The conviction dial
The dial s is the fraction of your deposit bob deploys as working liquidity — in clean 10% steps from 10% to 50%.
| Dial | Belief expressed | Behavior |
|---|---|---|
| 10% | Max conviction — my asset moons. | A tenth works; the rest rides. Smallest possible bull-case toll. |
| 20–30% | Bullish, happy to earn while I wait. | A modest slice harvests fees; the bulk stays exposed. |
| 50% | Choppy or sideways ahead. | The most bob will deploy — half works, half always rides. |
Why the 50% ceiling?
bob always keeps a maxi majority-reserved. Your maximum possible token loss is s·N·(1 − √(p₀/p₁)), which can never exceed s·N — and s ≤ 50%. Lowering s shrinks the worst case toward zero, while the reserve always behaves exactly like simply holding: it rides every move, untaxed.
05 · Mechanism design
bob unlocks the pool, swaps half the slice into the paired asset at the live price (bounded by your slippage minimums), and adds it as full-range liquidity to your vault. The reserve is held as the belief asset itself. A pre-op flush banks any pending fees to existing LPs first, so a fresh deposit can never skim fees it did not earn. Leftover belief returns to your reserve; only the tiny paired-side remainder is tracked as dust.
Anyone may call harvest — the “Buyback” in Belief-Oriented Buyback. It pokes the position to realize fees, swaps the paired portion into your belief asset, pays the caller a small capped bounty (replacing keepers with open competition), takes an optional protocol fee on yield only(off by default), and credits the rest via the fee index. Bought-back fees are kept as belief, never re-deployed — so a harvested unit is out of the AMM's reach and only ever adds to your claim.
On withdrawal bob removes liquidity, converts the paired portion back to belief, adds your reserve and fees, and pays out entirely in the belief asset — with no artificial principal floor, so you can always exit at the honest value of your position. Between entry and exit you can rebalance in place: dial up (reserve → slice), dial down (slice → reserve), or withdraw reserve directly with no pool interaction.
06 · Worked example
Alice (BTC maxi) and Bob (ETH maxi) each deposit 10 coins at a 20% dial into the same WBTC/ETH pool, starting at 1 BTC = 36.47 ETH. Whichever asset underperforms accumulates; the other pays only the small dialed toll.
| Scenario | Ratio (ETH/BTC) | Total BTC | vs holding |
|---|---|---|---|
| Bull — BTC moons | 36.47 → 39.51 | 9.96 | −0.04 (small toll) |
| Bear — BTC falls | 36.47 → 32.59 | 10.15 | +0.15 ✅ |
| Flat | 36.47 → 36.30 | 10.03 | +0.03 ✅ |
| Scenario | What it means for ETH | Total ETH | vs holding |
|---|---|---|---|
| BTC moons | ETH underperforms | 10.12 | +0.12 ✅ |
| BTC falls | ETH outperforms | 9.93 | −0.07 (small toll) |
| Flat | ~unchanged | 10.02 | +0.02 ✅ |
The mirror
Same pool, same volume, two believers. When BTC outran ETH, the AMM sold Alice's BTC and bought Bob's ETH; when BTC fell, the roles swapped; when flat, both won on fees. Neither sold the asset they believe in, neither holds a stablecoin, and each is paid in their own conviction.
07 · Economic properties
| Belief asset vs pair | Slice effect | Net result |
|---|---|---|
| Falls (ratio down) | Gains tokens | ✅ More tokens — even before fees |
| Flat | ~Neutral | ✅ More tokens — by the fee amount |
| Rises (ratio up) | Loses tokens (bounded by s·N) | ❌ Slightly fewer unless fees cover it |
The honest summary: bob accumulates best when the market is flat or moving against your belief asset, and protects rather than rewards you when your asset rips. A maxi is, by definition, betting on the one regimebob taxes — so the dial exists precisely to keep that tax small.
The slice's bleed is governed by how far the belief asset diverges from its pair. A stablecoin makes allof your asset's volatility into divergence — taxing you hardest exactly when you are right, and parking proceeds in fiat. A correlated crypto moves with your asset, so the ratio moves far less.
| Paired asset (BTC +100%) | What the slice sees | Token bleed |
|---|---|---|
| USDC (flat) | BTC diverges 2.0× | −5.9% |
| ETH (+40% alongside) | ratio only 1.43× | −3.3% |
| ETH (matches, +100%) | ratio unchanged | 0% — pure fees |
ETH is the most liquid, most BTC-correlated large asset — the sweet spot of high correlation (low IL) and deep volume (real fees). The choice is mathematical, not cosmetic. And it is symmetric: BTC is the right pair for an ETH maxi. Full-range liquidity completes the picture — it never goes out of range, never needs rebalancing, and never leaks value to rebalancing MEV, trading some yield for set-and-forget simplicity.
08 · Security
Every pairing and buyback swap is bounded by a min-output the caller accepts, and a deadline rejects a stale or withheld fill. The pre-op flush takes its own floor so a sandwich can't bleed LPs.
bob reads only the pool's own price. It is manipulable within a block, but the min-output bounds cap realized harm; a one-block deposit delay for thin pools is a planned hardening.
Enforced on-chain: a hooked pool could manufacture a delta against bob's commingled balances. Rejecting hooked pools makes a hostile pool self-funded and bounded by flash accounting.
SUPER_BOB can move only dust and the optional protocol fee on yield — never a user's reserve, fees, or position. Compromise caps at 'dust plus the protocol's own fee.'
The solvency invariant
Every admin-movable balance is tracked explicitly, so the manager's balance always equals reserves + pending fees + dust + protocol fee per belief currency — asserted by a stateful invariant suite run against live mainnet pool state.
09 · Related work
| Project | Approach | Difference from bob |
|---|---|---|
| Arrakis | Active concentrated management | External manager; trust + rebalancing MEV |
| Gamma | Automated rebalancing | Multi-position complexity; fee drag; active |
| Beefy / Yearn | Generic yield aggregation | Dollar-denominated; multi-hop; not belief-specific |
| Rage Trade | Delta-neutral perp vaults | External derivatives; funding + liquidation risk |
| bob | Single-sided, full-range, conviction-dialed buyback on an existing pool | No oracles, rebalancing, keepers, or cold start; token-count objective |
Conclusion
bob is not an impermanent-loss solution — it is an impermanent-loss reframing for people who keep score in tokens. Deposit what you believe in, set how hard you believe, and earn more of it through the long flats and drawdowns, while a rally costs you only the slice you chose to risk.