Catalogue
Every hook, and what it is for
Each of these was checked against the roughly 140 published hooks and hackathon submissions before it was written, and each one states its prior art and its limitation on its own page. 14 of 57 are shipped: contract, tests, manifest and documentation all in the repository.
-
Agent-native
AgentBudget
A spending limit the venue itself enforces: an autonomous agent may swap on this pool only within a budget its principal signed, and the pool refuses the swap that would exceed it.
-
Curves
RatchetFloor
A price floor that only ever moves up.
-
Launch
AntiSnipeRamp
Opens a pool at a punitive fee that decays to normal over a fixed window, and pays every cent of the difference to liquidity providers rather than to the deployer.
-
Liquidity provider economics
LiquidityFloor
A liquidity commitment enforced per position: a fraction of what you add cannot leave until the pool's unlock date, and every provider is held to that fraction of their own stake rather than to a shared pool total.
-
Order flow and MEV
ArbTaxDecay
Prices the staleness of a pool: the longer a pool goes untraded, the more the next swap pays.
-
Order flow and MEV
FlowClassifier
Publishes, on-chain, how much of a pool's order flow arrives first in the block and how far it moves the price when it does. It changes nothing about the pool it measures.
-
Order flow and MEV
MarkoutFee
A fee that learns. The pool measures whether its own past trades turned out to be informed, and charges the next one accordingly.
-
Order flow and MEV
PriorityFeeTax
Charges a swap in proportion to what it paid the block producer to get where it is in the block.
-
Risk
CircuitBreaker
Halts swapping for a cooldown after the price moves further than a pool is willing to move in one window, and lets liquidity leave the whole time.
-
Risk
DepegShield
Makes leaving a peg expensive and returning to it cheap, in proportion to how far the pool has already strayed.
-
Risk
DrawdownCap
A limit down. The pool may not fall more than a fixed distance below where the current epoch opened, and the limit resets on a schedule rather than on anyone's say-so.
-
Risk
OracleBand
Refuses to let a pool settle at a price the wider market does not recognise.
-
Time
ExpirySettle
Gives a pool a maturity, and makes moving its price monotonically more expensive as that maturity approaches, so the settlement price is dearest to manipulate exactly when manipulating it would pay most.
-
Time
TradingCalendar
Gives a pool a trading session, and closes it by raising the price of immediacy rather than by reverting.
Nothing matched
Clear the filter, or search a mechanism word: fee, peg, launch,
mev, commitment.
Being built
The rest of the catalogue, in the order it is being written. These are listed so the shape of the whole is visible; nothing here has a contract yet, and nothing here is pretending to.
-
Order flow and MEV
BlockBatchClearing
Queues every swap in a block and clears them at one uniform price, so ordering inside the block stops being worth anything.
-
Order flow and MEV
TopOfBlockAuction
An on-chain auction for the right to trade first in a block. The winning bid is paid to liquidity providers.
-
Order flow and MEV
FlowClassifier
Publishes a running toxic-versus-benign classification of a pool's order flow on-chain, as a public good other hooks can read.
-
Order flow and MEV
ImpactSplit
Splits a large swap into tranches across blocks and guarantees the result beats immediate execution or refunds the difference.
-
Order flow and MEV
SandwichBond
Lets a swapper post a bond that is returned unless a same-block backrun is detected, in which case it compensates them.
-
Curves
YieldSpace
A fixed-rate curve with a maturity, converging to par at expiry. Interest-rate markets as a native v4 pool.
-
Curves
LMSR
A logarithmic market scoring rule curve, giving prediction markets bounded loss and always-available liquidity.
-
Curves
PowerPerp
An `x^p` invariant, so an LP position has power-perpetual payoff instead of the usual square-root exposure.
-
Curves
RatchetFloor
A protocol-owned bid that can only move up, giving a token a floor price that is enforced by the curve.
-
Curves
GridLadder
Asymmetric bid and ask ladders in one position, so an LP can quote a spread rather than a symmetric range.
-
Curves
DutchClearingLaunch
A descending-price launch that ends in a single clearing price, refunding everyone who bid above it.
-
Curves
StepCurve
Piecewise-constant prices, for assets that should trade in discrete steps rather than on a continuum.
-
Token mechanics
RebaseAbsorb
Makes rebasing tokens safe in v4 by absorbing balance drift into the pool as a donation to liquidity providers.
-
Token mechanics
FeeOnTransfer
Makes fee-on-transfer tokens work by settling on measured balance deltas instead of requested amounts.
-
Token mechanics
YieldDiscount
Parks idle reserves in an ERC-4626 vault and pays the yield out as fee discounts to swappers.
-
Token mechanics
DividendPassthrough
Routes dividends paid to pool-held tokens through to liquidity providers pro rata.
-
Token mechanics
WrappedNativeYield
On chains with native yield, donates the pool's accrued yield to in-range liquidity.
-
Risk
OracleBand
Requires a swap to clear within a band around a signed reference price, so a thin pool cannot be walked away from reality.
-
Risk
ILInsurance
Skims a slice of fees into a vault that pays impermanent-loss claims to the providers who funded it.
-
Risk
DrawdownCap
Caps how much price impact one address may cause per epoch.
-
Liquidity provider economics
TickHarberger
Auctions the exclusive right to provide liquidity at the active tick under a Harberger tax, so it is always for sale.
-
Liquidity provider economics
TenureWeightedFees
Weights fee share by continuous time in the pool, so capital that stays is paid more than capital that visits.
-
Liquidity provider economics
RangeRent
Charges and pays rent for range occupancy based on how much of the range was actually used.
-
Liquidity provider economics
AutoCompoundDonate
Donates accrued fees straight back to in-range liquidity, compounding without touching positions.
-
Liquidity provider economics
RetroRebate
Pays volume rebates from on-chain epoch accounting, with no Merkle drop and no off-chain claim.
-
Liquidity provider economics
FungibleRange
Tokenises a range position as an ERC-20 so it can be traded, lent and used as collateral.
-
Agent-native
X402Gate
Meters pool access with x402 payment receipts, so an autonomous agent can pay per swap for a better fee tier.
-
Agent-native
ERC8004ReputationFee
Sets the fee tier from the swapper's on-chain agent reputation.
-
Agent-native
AgentBudget
Enforces per-agent rate limits and spend budgets in the pool itself, not in the agent's own code.
-
Agent-native
IntentSettle
Settles signed ERC-7683 intents against pool liquidity, with solvers competing on the fill.
-
Agent-native
HookMeter
Instruments another hook: gas, revert rate and fee take, published on-chain for anyone to audit.
-
Agent-native
HookStack
Runs an ordered stack of sub-hooks on one pool, each with its own gas budget.
-
Time
ExpirySettle
Gives a pool a maturity date at which it settles, turning it into a dated instrument.
-
Time
VestedBuy
Vests purchases linearly and enforces the schedule at the pool rather than in a token contract.
-
Time
EpochRebalance
Rebalances the pool toward a target weight each epoch, making the pool itself an index.
-
Time
StreamDCA
Executes recurring dollar-cost-average streams block by block.
-
Cross-domain and information
SharedLiquidity
Mirrors one pool across chains and settles the net position, so liquidity is not fragmented per chain.
-
Cross-domain and information
L1Anchor
Anchors an L2 pool to a proven L1 price.
-
Cross-domain and information
VarianceSwap
Pays realized variance, making liquidity providers short volatility and traders long it, explicitly.
-
Cross-domain and information
ImpliedVolFee
Prices swaps off an implied-volatility surface rather than a realized-volatility estimate.
-
Cross-domain and information
CommitRevealDark
Hides order size behind a hash commitment and clears the batch on reveal.
-
Cross-domain and information
LotteryFees
Sends a slice of fees to a no-loss lottery among the pool's liquidity providers.
-
Cross-domain and information
ReserveStable
Mints and burns against a reserve to hold a band, with the band enforced by the hook.