Five contracts, one balance sheet.
A Resonator is a Uniswap v4 pool with a Hook that owns the position. Around it sit an ERC-20 representing claims on that position, a settlement contract that fills intents against the same depth, a read-only decomposition and a timelock. Nothing here is a wrapper around somebody else's vault.
How the pieces sit.
- Deposit and mint
- Claims and settlement
- Redemption reverses whichever path it came in on.
The Hook retunes, you do not.
A concentrated position drifts out of range as price moves, and re-centring it by
hand is the single largest source of cost and error for an LP. The Hook does it
inside afterSwap, on a rule rather than a schedule.
The rule is a band, not a target. Rebalancing whenever the price moves at all would burn the position's earnings in gas and adverse selection; rebalancing on a timer is arbitrary. The Hook acts only when the position has drifted past a configured fraction of its own width.
Fires roughly a dozen times a week on a volatile pair, and not at all on a stable one.
Where the yield
actually comes from
Fee income by harmonic — the decomposition Spectra publishes per Resonator. A single APY figure hides whether you are being paid for volume, for volatility, or for taking the wrong side of a drift.
Illustrative. The point is that all four lines are published, not just the first one.
What can be changed, and by how much.
Each of these sits behind a timelock long enough to exit first. The bounds are enforced in the contract, not by policy.
What is centralised today.
Every protocol here starts with more trust in it than it wants to end with. These are the parts that are not trustless yet, named rather than left for someone to find.
Contracts
Addresses publish at mainnet deployment. Nothing is live yet, and this page will say so until it is.
Read the contracts before you trust them.
Source publishes with the first deployment. Until then this site is a specification, and says so.