Streaming yield, in UNISON.
A Uniswap v4 hook on Unichain that drips LP fees per-second into your wallet — predictable fixed-income curves for treasuries that need yield they can model.
UNITONE IN NUMBERS
Numbers that don't lie.*
*because they're on-chain
TVL STREAMING
0.00
across 23 pools
AVG DRIP APR
0.0
7-day rolling
SECONDS STREAMED
0
since testnet launch
HOW IT WORKS
Fees in. Drip out.
Three callbacks, one continuous stream. Every Uniswap v4 swap routes its LP fee portion into a per-pool drip buffer, which bleeds out linearly to subscribed LPs.
01
afterSwap deposits fees
On every swap, the hook skims the LP-fee portion into a drip buffer using PoolManager.take. Settled inside the v4 lock with EIP-1153 transient storage — ~5-8k gas overhead.
02
Buffer drips linearly
Buffer balance bleeds out over a 7-day window at rate = bufferBalance / windowSec. New fees arriving in afterSwap roll the unclaimed remainder forward — no fee gets stranded.
03
LPs claim anytime
claimable(t) = (t − lastClaim) × dripRate × share / totalShares. Pull whenever — once per block or once per month, same result. Predictable cash flow for treasury models.
HOOK ANATOMY
Three flags. 0x8C0.
Unitone implements three v4 hook callbacks. The permission mask lives in the lowest 14 bits of the contract address — CREATE2-mined to encode exactly which methods PoolManager will route.
BIT 6 · AFTER_SWAP
afterSwap()
Skim LP-fee delta into the drip buffer via PoolManager.take. Returns (selector, 0) — does not influence swap delta. ~5-8k gas overhead inside the v4 lock.
BIT 11 · BEFORE_ADD_LIQUIDITY
add()
Auto-subscribe new depositors to the active drip. lastClaim[user] = block.timestamp.
BIT 9 · BEFORE_REMOVE_LIQUIDITY
remove()
Settle pending drip into user balance before share is burned. Prevents stranded yield.
ADDRESS MASK
Bits to address
// permission mask
(1 << 11) | (1 << 9) | (1 << 6)
= 0x8C0
= 2240CREATE2-mined into the lowest 14 bits — PoolManager reads the address as the routing table.
BUILT ON THE STACK · TRUSTED BY DAOs WHO MEASURE IN DAYS, NOT BLOCKS
FOR INSTITUTIONAL LPs
Built for the people who can't watch every block.
Per-second drip is for LPs who measure in days, not seconds — but want yield that compounds in real time anyway.
DAO Treasuries
Stable yield curves on stablecoin pools. Forecast monthly inflows for ops budgets. No more swap-week-timing roulette.
Market Makers
Hedge exposure against per-second income, not bursty per-swap rebates. Cleaner books, fewer reconciliation gaps.
Fund Managers
Tokenize the drip as a yield-bearing receipt. Familiar fixed-income reporting shape on top of an AMM.
VS. THE ALTERNATIVES
Why not just use X?
FAQ
Questions before you stream.
A contract that registers with PoolManager and gets called at specific lifecycle moments — swap, mint, burn, donate. Unitone implements three callbacks (afterSwap, beforeAddLiquidity, beforeRemoveLiquidity). The permission mask 0x8C0 is encoded in the hook's deployment address via CREATE2 mining.
Treasuries can't model swap timing. With per-second drip, fees deposit into a buffer that bleeds out linearly over a 7-day window — a predictable cash flow LPs can forecast for budgets and reporting.
~5–8k gas. EIP-1153 transient storage on Unichain makes the per-swap accounting nearly free compared to ERC-4626 wrappers (which run 40–80k extra). At Unichain's typical 0.001 gwei, claim transactions cost fractions of a cent.
Rolls forward. afterSwap detects expiry and adds the unclaimed remainder back into the new buffer. Nothing gets stranded. LPs can ignore the protocol for months and still capture every basis point.
Testnet first — Unichain Sepolia (chain 1301). Mainnet deployment targets Q4 2026 after audit. Use the simulator to model expected yield against historical pool data in the meantime.
Any v4 pool that opts in. Initial deployment focuses on stablecoin pairs (USDC/USDT, USDC/PYUSD) and ETH/major-stable pools — where treasuries want exposure but need predictable income.
Call hook.claim() — pulls (now − lastClaim) × dripRate × share / totalShares from the buffer. Claim once a block, once a month, same end result. lastClaim updates atomically inside beforeRemoveLiquidity if you exit the pool.
EARLY ACCESS
Get the alert when testnet opens.
We'll email you the moment Unichain Sepolia deployment lands. No spam, no token preview, no marketing emails — just one signal.