unitone
V4 HOOK · UNICHAIN · TESTNET

Streaming yield,
in UNISON.

8.41% APR7d trailing

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.

Streaming nowUSDC · 7D WINDOW
0.0008137
USDC per second
BUFFER$9,842
POOL TVL$4.21M

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.

fees in
afterSwap
buffer
7-day window
LP claim
anytime

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.

swap
fee delta
drip buffer
+ skim

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
  = 2240

CREATE2-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

UNISWAP V4UNICHAINFOUNDRYEIP-1153SOLIDITY 0.8.24OPENZEPPELINv4-PERIPHERYHOOKMINERFLASHBLOCKSSAFE WALLET
UNISWAP V4UNICHAINFOUNDRYEIP-1153SOLIDITY 0.8.24OPENZEPPELINv4-PERIPHERYHOOKMINERFLASHBLOCKSSAFE WALLET
UNISWAP V4UNICHAINFOUNDRYEIP-1153SOLIDITY 0.8.24OPENZEPPELINv4-PERIPHERYHOOKMINERFLASHBLOCKSSAFE WALLET
UNISWAP V4UNICHAINFOUNDRYEIP-1153SOLIDITY 0.8.24OPENZEPPELINv4-PERIPHERYHOOKMINERFLASHBLOCKSSAFE WALLET

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?

Unitone
Sablier
Bunni
Vanilla v3
Per-second drip
AMM-native
Singleton + transient storage
Treasury-friendly cash flow
Sub-cent claim gas on Unichain
varies

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.