
Contracts that declarehow they behave.
An independent group writing Ethereum standards for one problem: a contract should be able to say what it does, in a form an integrator reads in one call and verifies without trusting anyone. ONE-ERC is the first.
Launch a tokenWe write Ethereum standards, and we work on one problem: every contract is its own program, so nobody can tell what one does without reading it.
One word. Every way this token departs from a plain ERC-20.
Fixed at deployment. Read it once, store it next to the token address, and never read it again. A token that does not answer has not told you it is ordinary — it has told you nothing, and those are different in the direction that costs money.
Read the specificationDeclaration
extensions(), behaviorFlags(), extensionData(), accountState(). What is installed, how it is configured, and what that means.
Interfaces
Metadata, transfer fee, transfer restriction, non-transferability, transfer hook. Descriptive names, no draft ERC numbers.
Implementation
Composable modules on OpenZeppelin v5, and three deployment shapes: immutable, upgradeable, or a clone of a shared runtime.
Verification
Canonical tokens are 45-byte clones of one runtime you vetted. Match the shape, read the address, and the declaration stops being a claim.
A verified token and its permanent market, launched in one transaction.
Anyone can create a fixed-supply ONE-ERC, optionally make the first buy, and open trading immediately in a permanently locked Uniswap v4 pool. The token burns every admin, mint and seize authority before the launch completes.
- Opening FDV01
- ~5 ETH
- Supply02
- 1 billion
- Launchpad swap fee03
- 1.25%
One standard published, one problem stated, and the open threads behind both.

The same pool, the same token, the same 2% fee, and five routes through it.
The route that quotes on the amount it sends fails with Uniswap V2's K error. The four that ask the token something first all succeed — request the fee, price against the published ceiling, name the output wanted, or transfer under a floor and never learn what the fee was. Nothing about the token changed between the runs, only whether the integrator could find out in advance.
Every capability here already exists on chain. Fee-on-transfer, pausing, freezing and hooks are all shipping today.
What does not exist is a way for a token to say which of them it has, cheaply enough that reading it is not a favour.
Measurements
Nothing in this section is estimated.
