ETHERVYPER

a token that lives in its own pool hook

> hook / token

0x4AC476012f059091b474e794644E9aB15c16c040

100,000 SUPPLY
> dual ledger

balanceOf(a) = sload(bal) + tload(delta)

SSTORE for canonical balances across txs. TSTORE for the per-tx session ledger that flushes once at end of call. Multi-hop routes collapse to one SSTORE per touched holder.

mstore(0x0c, _BALANCE_SLOT_SEED)
mstore(0x00, a)
let bal := sload(keccak256(0x0c, 0x20))
mstore(0x0c, _TDELTA_SLOT_SEED)
mstore(0x00, a)
let r := add(bal, tload(keccak256(0x0c, 0x20)))
> flash-mint

free · atomic · no callback

Conjure VYPER into the caller's TSTORE delta. A flush refuses to commit while the loan is open — forget to repay and the whole tx reverts.

flashMint(1_000_000e18);
// ... arbitrage with transferSession ...
flashBurn(1_000_000e18);
// flush is clean; tx settles
> trade direct

no router, no permit2. the hook is the router.

BUY · ETH → VYPER

hook.buy{value: 1 ether}(minOut);

SELL · VYPER → ETH

hook.approve(hook, amount);
hook.sell(amount, minEthOut);
POOL

ETH / eVYPER

FEE

1%

HOOK FLAGS

AFTER_SWAP

CHAIN

ETHEREUM

SUPPLY

100,000

DECIMALS

18

> gas
scenariobeforeafterΔ
transfer (fast path)53 44940 737−23.8%
approve + transferFrom78 69365 873−16.3%
session multi-hop → flush100 18087 391−12.8%
session cancel self33 66326 352−21.7%
genesis mint (ctor)15 00512 135−19.1%
ETHERVYPER™X.COM/VYPERETH