Skip to main content
LIVE ON UNICHAIN SEPOLIA · REACTIVE NETWORK AUTOMATION

Your Liquidity,
Always at Work.

A Reactive Yield Automation built as a Uniswap v4 hook. When your USDC exits its range, capital routes to Compound V3 within the same block — recalled just-in-time before the next swap executes. Zero off-chain infrastructure. Each position is an on-chain NFT.

StableStream mark
TVL
Yield APY
In Yield
Active Source
Compound V3
Automation
Reactive Network

PROTOCOL FEATURES

Built for Capital Efficiency

Every component eliminates idle capital and maximises yield. Autonomously, trustlessly, on-chain.

Reactive Yield Routing

Idle capital automatically flows to Compound V3 the moment your position exits range. No decisions, no clicks, no keeper bots — the Reactive Network fires within the same block.

Seamless Integration

Built natively into Uniswap v4. Deposit USDC, earn yield. Works with every wallet and every Uniswap tool — no new UI to learn, no additional contracts to manage.

Same-Block Automation

RangeMonitorRSC on Reactive Network subscribes to your hook's events and fires callbacks in the same block — JIT recall returns capital before the next swap executes. No off-chain infrastructure.

On-Chain Position NFTs

Every liquidity position is a transferable ERC-721. Position state, yield accrued, and routing history — all on-chain, all queryable.

On-Chain APY Verification

APYVerifier rejects any source reporting more than 2x its trailing TWAP before capital moves — a compromised adapter cannot drain the pool. Contracts are unaudited; verify the logic in libraries/APYVerifier.sol.

Dynamic Swap Fees

Swap fees scale with yield utilisation — when more capital is earning yield, the fee rises to compensate LPs for reduced pool depth. Computed on-chain by DynamicFeeModule.

SYSTEM ARCHITECTURE

How StableStream Works

01
Position Created
You deposit USDC as concentrated liquidity. The module mints an on-chain position receipt and begins tracking your tick range.
02
Price Exits Range
When the market moves and your tick leaves the active range, the module emits an event. Reactive Network sees it within the same block.
03
Yield Activates
The RSC calls routeToYield. Your idle capital shifts to Compound V3 — automatically, no buttons, no bots.
04
Price Returns — JIT Recall
The next swap approaching your range triggers beforeSwap. The RSC calls recallFromYield within the same block. Capital is back before the swap executes.
For Developers · For Liquidity Providers

Deployed. Auditable. Live.

Every claim on this page is backed by on-chain contracts, passing tests, and verifiable provenance.

161
TESTS PASSING
11 suites · Fuzz tested · Every edge case documented
View on GitHub Actions
UHI8
UNICHAIN ALUMNI PRIZE
Originated at the Uniswap Hook Incubator — winner of the Unichain Alumni Prize
4
CONTRACTS VERIFIED
StableStreamHook · YieldRouter · CompoundV3Adapter · RangeMonitorRSC
View on Uniscan
For Developers

THE PRIMITIVE UNDERNEATH

StableStream is the reference implementation. This is the module.

IdleCapitalYieldModule is an abstract Solidity contract providing reusable idle-capital yield routing for any Uniswap v4 hook. Inherit it to get position tracking, four callback hooks, and RSC-triggered yield routing — zero product coupling.

SOLIDITY· 11 LINES
contract MyHook is IdleCapitalYieldModule {
    constructor(IPoolManager pm, YieldRouter router, address asset, address owner)
        IdleCapitalYieldModule(pm, router, asset, owner)
    {}
}
Your hook inherits all position tracking, yield routing, and RSC automation.
PROOF
11/11
MINIMALHOOK TESTS PASSING

Proves the module works with zero StableStream-specific code. Inherit, deploy, route. 11 tests verify position tracking, access control, and yield routing — all independent of the reference implementation.

View MinimalHook.sol ▾
contract MinimalHook is IdleCapitalYieldModule {
    constructor(
        IPoolManager _poolManager,
        YieldRouter _yieldRouter,
        address _usdc,
        address _owner
    ) IdleCapitalYieldModule(_poolManager, _yieldRouter, _usdc, _owner) {}
}
View test suite on GitHub ↗

Reactive Network RSC fires callbacks within the same block — no bots, no cron jobs, no oracles.

Read the Integration Guide →
For Developers

IDLECAPITALYIELDMODULE

Two Days vs. Two Months

What you would have to reimplement from scratch — and what IdleCapitalYieldModule gives you for free.

You would buildIdleCapitalYieldModule gives you
Position tracking (open, close, query by owner)3 public functions, 1 struct, 8 events
Range detection (tick math, beforeSwap / afterSwap)4 hook callbacks, in-range / out-of-range events
Yield routing (deposit to external protocol, track, recall)routeToYield / recallFromYield, YieldAccounting
Dynamic fee scaling (yield ratio → swap fee)getDynamicFee()
Rate limiting (per-block caps, cooldown, JIT bypass)POSITION_COOLDOWN_BLOCKS, MAX_CALLBACKS_PER_BLOCK
Automation (event → callback chain)RangeMonitorRSC — deploy once, subscribe automatically
APY safety (anomaly detection, risk scoring)APYVerifier (TWAP), RiskEngine
Multi-source routing (Compound, Aave, native staking)YieldRouter with IYieldSource adapters
Gas optimization (EIP-1153 transient storage)TransientStorage library
Tests against edge cases and security invariants161 tests across 11 suites
For Liquidity Providers

PROTOCOL INTERFACE

Manage Your Positions

Deposit USDC and earn. When your position is out of range, capital routes to Compound V3 automatically. All passive, all on-chain.

Connect Your Wallet

Connect to Unichain Sepolia to deposit USDC and view your live positions.