POOL4
POOL4 is a self-sustaining incentive protocol on Uniswap v4 to launch unlimited ideas. It accumulates protocol-owned inference (or liquidity) through bonding, uses that inference to run the imd.fun lead orchestrator, and delivers value to the community through the attention the orchestrator can gather.
IMD is the first token using a POOL4 hook. No rebase, no inflation — supply only shrinks.
When IMD is sold into the protocol-owned pool, anything over the cap is trimmed. Most of it burns. The rest funds stakers, the orchestrator, and inference nodes. ETH recovered from the trim sits under the price as a buy wall.
01 · What this is
The protocol owns its Uniswap v4 liquidity. A hook on that pool trims excess IMD after sells. Of each batch removed, 85% is burned and 15% is split between stakers, the bonding reserve for the imd.fun lead orchestrator, and NFT inference nodes. ETH recovered from the trim becomes a standing bid under the market.
CappedBurnHook runs the market. RewardDistributor sorts the rewards. StakedIMD holds staked IMD. RewardDripper streams staking rewards. BurnExecutor bridges burn-bound IMD to Base, where it is destroyed.
- IMD price
- —
- ETH in pool
- — ETH
- IMD in pool · cap
- — IMD · — IMD
- Buy wall · idle ETH
- — ETH · — ETH
- Burned · to date
- — IMD
- Rewarded · to date
- — IMD
02 · The pool
IMD trades in a full-range ETH/IMD Uniswap v4 pool. Normal Uniswap math, 1% fee. The hook only runs after a swap settles, so it doesn’t invent a price or change the quote you already took.
The hook is the only LP and the only address that can initialise the pool. Liquidity stays protocol-owned, and nobody else can front-run the launch. Any router that can hit a plain v4 pool can trade it.
The 1% fee is protocol revenue. It sits in its own ledger — not a burn, not a reward, not buy-wall ETH.
03 · Trim and burn
The pool has an IMD inventory cap. Sells push tokens in; anything above the cap is trimmed and retired. The trim removes liquidity instead of swapping, so it doesn’t move the price. It also recovers a proportional amount of ETH, which funds the buy wall (§04).
Buys take IMD out of the pool, then the cap follows down. The next sell can’t just refill yesterday’s inventory — it hits the new, lower ceiling and gets trimmed again. Two limits keep this from shrinking too far or too fast:
capFlooris the hard bottom. At that point the market behaves like a normal pool until a sell pushes inventory back above the floor.capDecayTokensPerDaycaps how fast the ratchet can move. Wash trading can’t speed-run the pool toward zero.
Burned IMD goes to BurnExecutor. Anyone can pay the LayerZero fee to bridge a batch to Base, where BaseBurnReceiver destroys it. The caller picks the batch size, not the destination.
04 · Buy wall
ETH from a trim doesn’t sit in a treasury. It goes back under the market as one wide, ETH-only bid — depth without printing or spending IMD.
If price falls into the wall, the wall buys IMD. A keeper later closes the bid, runs the IMD through the same 85 / 15 split, and puts the remaining ETH under the new price. A sell-off can fund the next buyback.
The wall never moves inside a swap. A keeper calls rebalance() once enough ETH has piled up or the wall has bought a meaningful amount. The keeper gets a small, fee-capped tip; faking work costs more in pool fees than the tip pays.
The wall doesn’t chase the last tick. Its floor drops to a new low immediately, then crawls up at about 4% a day, using a block-lagged reference. A one-block yank can’t drag the protocol’s ETH with it. After a real recovery, the wall catches up.
05 · The split
Every 100 IMD the market retires: 85 burned, 4.5 to stakers, 6 into the bonding reserve for the lead orchestrator, 4.5 reserved for NFT inference nodes.
- Burned
- 85% · destroyed on Base
- sIMD stakers
- 4.5% · streamed into the vault
- Lead orchestrator
- 6% · reserved for bonding
- Inference nodes
- 4.5% · reserved for NFT nodes
The 15% reward share is split 30 / 40 / 30 at deploy. Staking is live. Bonding and node allocations are tracked on-chain while those programs are being built — reserves, not live products.
Anyone can call distribute(). It sends the staking share to the dripper and books the other two. Lifetime counters don’t reset.
06 · Staking
Stake IMD, get sIMD — a normal ERC-4626 vault share. 4.5% of every batch the market retires streams into the vault, so each sIMD is redeemable for more IMD over time. Your share count stays put; the backing grows.
That’s the reward yield. Expected annual burn is about 75% of outstanding supply, so you earn from the drip and your share of the tokens outstanding grows at the same time.
No extra reward token, no claim, no lock. RewardDripper turns lumpy arrivals into a rate-limited stream. The stake page shows two APRs: the current rate annualises the drip against total staked and reads zero while the dripper is empty; the realized rate is how much the share price actually grew over the last seven days. More IMD staked means the same stream is split further.
07 · Bonding
This is how the protocol buys inference it owns. Six percent of every retired batch sits as IMD in RewardDistributor. When bonds go live, that reserve is offered below market with a vest, and the protocol takes ETH in return.
That ETH pays for inference on the imd.fun lead orchestrator. Bonding isn’t an emissions faucet. It’s IMD the market already captured, converted into compute the protocol keeps.
Bonding opens at $4 per IMD. Until then nothing is sold and the reserve just grows. The reserve is live; the bond market isn’t.
08 · Nodes
The orchestrator is one agent. NFT nodes are the planned network around it, and 4.5% of every retired batch is reserved for that work.
The node program isn’t live. Its IMD is tracked on-chain as heldNft and keeps accumulating until the payout contract ships. No later inflation, no surprise node emissions — the reserve is being earned by the market now.
09 · Forks
IMD is the first token using a POOL4 hook. The mechanism is meant to be forked: same capped pool, different token, different work the market funds. One fork might run an agent network; another might fund research or a shared treasury.
A permissionless launch factory is the plan, not a product yet. Each market should have its own reserves, visible controls, its own disposal rules, and no hidden mint.
10 · Keepers
Five permissionless jobs keep things moving: place the buy wall, settle claims, sort rewards, drip staking yield, and finish burns on Base. Anyone can run them. Some pay a tip.
Connect a wallet and run a due job below. A cast cron, an automation service, or whoever’s around can do the same.
Rebalance the buy wall rebalance()
When enough ETH is waiting—or the wall has bought enough IMD—this closes the old bid, retires what it bought, and places the ETH back below the price. The caller’s tip is capped at 1% of the ETH handled.
- Idle ETH · threshold
- — ETH · — ETH
- Bid spent · fill at
- — ETH · — ETH
- Keeper tip · max
- — ETH
- Due
- —
Settle claims settleClaims()
Uniswap v4 first records trimmed assets as ERC-6909 claims. This turns them into real transfers: IMD to the burn executor and reward distributor, ETH to the buy-wall balance. A later swap can also do it automatically.
- To burn
- — IMD
- To rewards
- — IMD
- ETH to the buy wall
- — ETH
Distribute rewards distribute()
Sorts new reward IMD into its three buckets: staking moves to the dripper; lead-orchestrator bonding and node rewards are booked and held.
- Undistributed
- — IMD
- Stakers · to date
- — IMD
- Bonding reserve
- — IMD
- Node reserve
- — IMD
Drip to stakers drip()
Releases the next slice into the sIMD vault. The caller receives a small IMD tip, capped at 1% of the drip.
- Buffer
- — IMD
- Releasable · min
- — IMD · — IMD
- Keeper tip
- — IMD
- Due
- —
Bridge the burn bridgeToBaseBurnReceiver()
Takes burn-bound IMD to Base for destruction. The caller pays the quoted LayerZero fee; any surplus is refunded in the same call.
- Awaiting burn
- — IMD
- This batch
- — IMD
- Bridge fee · you pay
- — ETH
11 · Parameters & trust
- Swap fee
- 1% · protocol revenue
- Burn / rewards
- 85% / 15% · rewards ≤ 30%
- Rewards split
- 30 / 40 / 30 · stakers / bonding / nodes
- Bonding opens
- $4 per IMD
- Cap floor
- 1,000 IMD
- Cap decay
- 1,000 IMD / day
- Cap ratchet
- 100% of room
- Rebalance threshold
- 0.1 ETH
- Rebalance tip
- ≤ 0.002 ETH · ≤ 1% of the work
- Bid floor decay
- 400 ticks ≈ 4% / day
- Reference step
- 200 ticks ≈ 2% / block
- Drip rate
- 86.4 IMD / day · 1 h catch-up
- Drip minimum · tip
- 1 IMD · 0.01 IMD
- Unstake hold
- 1 block
Launch values; owner-tunable ones move only within bounds baked into the contracts. Source: CappedBurnHook.sol, RewardDistributor.sol, StakedIMD.sol, RewardDripper.sol, BurnExecutor.sol.
- Market hook
- 0xc6c9…2840
- sIMD vault
- 0x9efa…7247
- Reward distributor
- 0x9046…CA30
- Reward dripper
- 0xe6D3…0884
- Burn executor
- 0xe293…c750
- IMD
- 0xD34a…63B7
IMD is owner-operated. What that means:
- The hook owner tunes policy (reward share, ratchet, floor, decay rates, rebalance guards, destinations), can re-seed a shrunken market with
fundInventory, and holds one deliberate escape hatch:closeMarketwithdraws the entire position at any moment. It exists so a defect in the pool or the hook cannot strand the treasury; holders are trusting the owner not to use it otherwise. The owner should be a multisig or a timelock. - The vault owner can pause, and can sweep any balance including staked IMD — the same worst-case hatch. Both powers vanish permanently the moment ownership is renounced, and renouncing while paused is blocked so the vault can never be frozen forever.
- The distributor and dripper owners can re-point destinations and rescue their buffers, for migrating to a new contract. Renouncing the dripper is blocked in any configuration that would freeze the stream.
12 · Risks
This is a soft launch. Other pools already have size; the POOL4 hook itself starts with 4 ETH / 5,000 IMD so we can watch it over the first 24 hours.
The protocol is unaudited. A bug in the hook, the vault, the distributor, or the burn path can lose funds. Treat this as an experiment until it has been audited.