One hook.
Any logic.
A Uniswap v4 hook is code frozen at an address; every new idea means a new hook, a new pool and a migration. EVH puts a virtual machine inside the hook. Modules are small programs that plug in live, each in its own sandbox, and vote on every swap. Publish one, and if the pool runs it, it pays you in ETH.
Six programs run inside every swap. None can hurt it.
Before and after each trade, the Kernel (the hook) hands every live module the same facts about the swap and runs it in the Machine, a small stack VM with saturating arithmetic. Each module answers with a fee vote, a share of the fee for its prize pot, and up to four awards from that pot. The walls are in the contract, not in a promise.
Its memory is its own
Each module writes only its own slots. It can read another's, never change them. A game keeps its score; a fee curve remembers yesterday.
A hard cap, set at publish
20,000 to 150,000 gas, and a step budget. A loop that never ends just runs out, alone. The six together fit 600,000.
A fault is rolled back
A broken run undoes its own writes and loses its vote; the swap goes on. Fault in more than one run in five and the module is ejected for good.
Liquidity is out of reach
The language has no word for moving funds. A module can only pay prizes from its own pot, which only the fees it asked for fill.
No single module sets the fee
The pool charges the median of the votes, inside 0.1% and 3%. With no votes it charges 1%. One wild module moves nothing.
Starving it doesn't work
A swap sent with too little gas to run every module reverts instead of quietly skipping them. Nobody trades past the rules by underpaying gas.
The genesis modules, running in your browser.
This is the same machine as the chain: the JavaScript VM here and the on-chain Machine agree on 795 test programs, instruction for instruction. Pick a module, move the trade, read its vote.
Throw ideas at the pool. If it runs them, they pay you.
Nobody owns EVH's logic. Anyone can publish a module; EVH holders decide which run by backing them. Every day the set changes.
Publish
Write a module in EVL, test it in Studio, publish it. Publishing burns 1,000,000 EVH: ideas cost something, spam costs more.
Back
Holders stake EVH behind the modules they want. Unback any time; the EVH comes back a day later.
Rotate
Once a day, the six most backed that fit the gas budget are staged; the next day they go live. Anyone can call it.
Earn
Every fee the pool takes is paid out in ETH, the moment it is taken, to the live modules' pots, authors and backers.
Where each fee goes
The fee is taken in ETH on every swap. Modules that ask for a share fill their own prize pots first: up to 20% each and 30% together. The rest is shared: a fifth to the authors of the live modules, four fifths to the EVH behind them.
The first programs. Every one replaceable.
EVH opens running a first set of modules. They hold their place only while EVH backs them; a better idea takes the slot.
An AI can steer it. It can't take the wheel.
A module can name an agent: an address, often an AI, allowed to write into that module's mailbox and nothing else. The program reads the mailbox and decides what it means: a fee the agent suggests, a deadline after which the suggestion expires, a parameter for a game.
The program, not the agent, has the last word, and the median and the walls have the word after that. An agent that goes rogue moves one vote of six, inside 0.1% to 3%; the genesis agent module also clamps it to 2% and forgets it once its deadline passes.
EVH is the vote on what the pool runs.
Back modules with it to choose the logic and earn the fees; burn it to publish.
- Supply
- 1,000,000,000 EVH, minted once. No owner, no mint, no pause, no tax in the token.
- Launch
- The whole supply in the ETH / EVH pool, one-sided, no ETH. The LP position is burned: the liquidity can never be removed.
- Burns
- 1,000,000 EVH for every module published.
- Fees
- Paid in ETH, never in EVH: nothing is sold to pay anyone.
- Contracts
- Published here at launch, verified on Etherscan and Sourcify.