Obol

オボル

Every coin struck at the price you paid. The ERC-402 standard, minted into being.

STRIKE FEED // awaiting first strike…

The Experiment

実験

What this is

A study of Obol Labs — the collective of distributed validator operators and the retroactive funding that pays them — recast as an original token economy. In ancient Greece an obol was a small coin — the fare placed with the dead to pay Charon, the ferryman.

So the experiment mints three artifacts: OBOL, a fixed-supply ERC-20 with permit and votes; CharonTollHook, a Uniswap v4 hook that ferries a toll from every swap to a retroactive funding treasury; and ERC-402, a draft token standard where the coin itself remembers what you paid for it.

600M
fixed supply
26
passing tests
3
contracts
1
new standard

The Standard

規格四〇二

ERC-402 · price-struck fungible tokens

ERC-20 tokens forget their history. ERC-402 tokens don't: each holder carries an on-chain weighted-average strike price — a native cost basis in a declared quote asset. Transfers carry their strike with them. Authorized strikers (the AMM hook that watched your swap execute) declare the exact execution price at the moment of trade.

interface IERC402 {
    event Struck(address indexed striker, address indexed account,
                 uint256 amount, uint256 priceWad);

    function quoteAsset() external view returns (address);
    function priceStruckOf(address) external view returns (uint256);
    function costBasisOf(address) external view returns (uint256);
    function strikeCreditOf(address) external view returns (uint256);
    function isStriker(address) external view returns (bool);
    function strike(address account, uint256 amount, uint256 priceWad) external;
}  // + ERC-20, + ERC-165

Why it matters on a brokerage chain: cost basis is the number every account is built around — PnL, tax lots, execution reporting. ERC-402 makes it a consensus fact instead of an indexer's opinion.

The Ferryman

渡し守

a uniswap v4 hook with three duties

The launch tax. Buys and sells both open under a 50% tax that decays linearly to 0.10% over the first hour — collected in ETH, ferried straight to the treasury. Snipers pay the ferryman dearly. Max buy: 0.77% of supply.

50.00% at t=0 0.10% at t=1h POOL INITIALIZED +60 MIN
buy & sell tax · collected in ETH → treasury

Charon's toll. Once the decay settles, a resting 0.10% toll remains on every crossing — the obol for the ferryman, forever feeding the retroactive funding treasury. Capped at 1%, owner-tunable.

The striker. When the pool trades OBOL, every buy calls strike() on the token with the exact execution price, tax included — the coin leaves the pool already knowing what you paid for it.

Born on Chain

チェーン生まれ

robinhood chain · arbitrum orbit L2

Deployment targets Robinhood Chain — the tokenized-asset L2 where a cost-basis-aware token standard belongs. One script deploys the token, mines the hook's CREATE2 address so its permissions live in the address bits, grants it striker rights, and arms the dynamic-fee launch pool.

networkRobinhood Chain testnet / mainnet chain id46630 / 4663 rpcrpc.testnet.chain.robinhood.com gas tokenETH · settles to Ethereum via blobs deployforge script script/Deploy.s.sol --rpc-url robinhood_testnet --broadcast

The Collective

集団

600,000,000 OBOL · every last coin in the pool

LAUNCH POOL 100%
TEAM, VCS, INSIDERS 0%

The entire supply is struck into the launch pool, single-sided, held by the ferryman himself — the hook is the LP. No team bags, no unlock cliffs. The retroactive treasury is funded the only honest way: Charon's 0.10% toll on every crossing. Governance ships with the token: OBOL is ERC-20 Votes, delegable from block one.