Under the hook.
You do not need this page to hold EBBL — it is here so you know why the rules hold. Every rule above is a property of deployed code, not a policy.
The token contract
The token is a plain ERC-20 on Ethereum with 150,000 EBBL created once. It carries no mint function and no burn-from-other-accounts function, no pause, and no ownership that survives deployment. What it cannot do is structural: the functions simply are not there.
The hook
The market is a single Uniswap v4 pool, and the hook is the contract the pool calls on every swap. The hook does three things and no more:
- It takes the Draw — 2% of each trade — and holds it as the Shallows.
- It keeps the window’s tally: buy volume on one side, sell volume on the other.
- When a window closes on net outflow, it spends the Shallows buying EBBL from the pool and sends the bought units to the Silt.
What has no setter
The Draw’s 2%, the window rule, and the supply are written as constants, not storage. A constant cannot be written to after deployment — there is no transaction anyone could send that would change them. The deployer’s authority ends at deployment: no key can move a holder’s balance, pause the market, or reissue a retired unit.
The Silt
The Silt is the terminal state, not a place units wait. At settlement the bought units are destroyed at address zero inside the same transaction that bought them, and the settlement is recorded on-chain with the amount and the supply after. Permanence here is not a promise — it is the absence of any path back.