The arccompletes itself.
Every trade completes a cycle. Every cycle deepens the floor. No owner, no vote, no decision — only the arc, running on every swap.
Protocol state
Reads from the hook at launch. Genesis values shown.
Full stats →A reflex, not a decision.
A biological reflex fires without a thought in between — stimulus straight to response. Reflex works the same way: trading is the stimulus, a deeper floor is the response, and there is no owner, vote, or treasury choosing to act in between. The arc just completes itself.
A buyer crosses a band. RFLX converts to ETH inside the pool.
Idle ETH is submitted to Lido, held as non-rebasing wstETH shares.
stETH compounds daily. The surplus over principal becomes the signal strength.
The signal buys RFLX at the floor and deepens the lowest active band.
This is the arc. Stimulus to response, with nothing in between that requires a decision.
The floor is liquidity, already in the pool.
Reflex’s floor is liquidity already in the pool — RFLX placed at the lowest active band, owned by no one, with no path in the contract to remove it. Depth at the bottom only accumulates.
It only adds. Every discharge buys RFLX and deepens the floor band. Liquidity is never removed — there is no withdrawal path.
It climbs in steps. When a band reaches 2× its original depth, the target advances. The floor price steps up the curve.
It cannot retreat. Sellers meet accumulated depth on every trade. The ratchet has a pawl: progress locks in, discharge after discharge.
Each step is permanent. In the pool the bar never falls — it only waits for the next discharge to climb again.
One million RFLX. No other path in.
All 1,000,000 RFLX is written directly into Uniswap v4 tick ranges before the first trade — 100 single-sided positions, no LP, no mint. Their shape is a softened hyperbolic decay; band widths ramp linearly, and per-band supply follows a k = 0.75 power curve — dense, continuous price discovery from the very first trade.
The whole distribution is deterministic and computed on-chain by the RFLDF library — fully programmed, on-chain liquidity native to v4.
Yield is discharged
into the floor.
Harvestable yield is tracked as the spread between the protocol’s wstETH shares (valued in stETH) and their recorded principal. Once it clears the threshold, anyone can fire the discharge — there is no operator who decides to. Principal is reduced share-proportionally, so a discharge extracts only genuine yield and never touches the staked base.
Buys RFLX at the floor price and deepens the lowest active band.
Paid to whoever triggers the discharge. Anyone can. No privileged role.
Protocol upkeep. Routed automatically, withdrawable only by ops.
The whole protocol is one hook.
Reflex is a self-contained demonstration of what Uniswap v4 hooks make possible: protocol logic that lives inside the AMM and runs on every swap — not a contract sitting beside the pool, but code the pool itself calls.
There is no separate controller, no keeper privilege, no treasury contract. The seeding, the band lifecycle, the staking, and the discharge all happen in the hook’s own callbacks. It is an attempt to put an entire liquidity mechanism on-chain, in one place, with nothing left to operate by hand.
Pins the pool to the one canonical RFLX/ETH key — nothing else can open it.
Only the hook may touch pool liquidity. External LPs are rejected at the gate.
Takes the fee, enforces the early max-tx, and on sells restores retraced bands.
Reconciles ETH deltas, advances the band lifecycle, and stakes idle ETH to Lido.
Runs the protocol's own atomic moves: seeding, the discharge swap, claim settlement.
Two contracts deploy — the RFLX token and the hook. Everything downstream is existing mainnet infrastructure: Uniswap v4, Lido, Curve.
Nobody is at the controls.
startReflex() runs once. Ownership is renounced on the spot. What remains is the arc — executing on every swap, owned by no one, for as long as Uniswap v4 runs.
Every parameter is on-chain. Each line here maps to a function you can verify on Etherscan the day it ships.
Questions, answered plainly.
Deployed once.
No one can touch it.
Reflex deploys immutably on Ethereum mainnet and ownership is renounced at launch. After that, no one can change the parameters, move funds, or pause it — the contract just runs.
Contract0x0000…dEaD↗