1 . Unichain: All contracts deployed on Unichain Sepolia (chain ID 1301). The 1-second block time is load-bearing for the JIT recall mechanism — it's what makes same-block recall practical. Pool: ETH/USDC at 0x2af851d6f565ece7e573e814a3c453b0f75b4f56a55307e6dffdc0f91bb3ebed, hook at 0xDB23B8Ff772fC1e29EB35a4BECe17f6D1a9A86C0 (CREATE2-mined address with permission flags in lower 14 bits).
Github:https://github.com/Majormaxx/stablestream Slides: https://drive.google.com/file/d/17X3mnjgXxQ8P0O_a2vJQvAGWzVBUr1ky/view?usp=sharing Project Link:https://frontend-nine-mocha.vercel.app/ Demo Video:https://www.loom.com/share/e5174b4ddd954786a5a43d9903340413
Stablecoin LPs on concentrated AMMs have a specific problem nobody talks about cleanly: capital efficiency is binary. Inside the range, you earn fees. Outside the range, your USDC just sits there — not in the pool, not in a yield protocol, nowhere. Fully idle.
The math is bad. A $500K USDC position in a tight range (say ±20 ticks) on a stablecoin pair can realistically be out of range for 40-60% of a given day, depending on peg volatility. At 4.5% APY on Compound V3, that's $246/day of yield left on the table — per position, every day. Across a pool with ten LPs at that size, you're looking at real money going nowhere.
The existing workarounds are worse than the problem. Manual rebalancing costs gas and attention. Keeper bots require off-chain infrastructure that someone has to run and trust. Full-range positions forfeit the fee efficiency that made concentrated liquidity worthwhile in the first place.
I built StableStream because the hook lifecycle in Uniswap v4 gives you exactly the signals you need — afterSwap tells you when a position crosses out of range, beforeSwap tells you when it's about to cross back. The Reactive Network gives you a way to act on those signals without any off-chain component. The two fit together in a way that genuinely solves the problem rather than papering over it.
The specific moment that made this click was realizing that the Reactive Network's RSC fires in the same block as the triggering event. On Unichain's 1-second block times, that means a position can be routed to yield within one second of going out of range, and recalled within one second of needing to come back. That's JIT recall that actually works in practice.