ERC-6909

ERC-6909 is a minimal multi-token standard that manages multiple token IDs within a single contract, offering a gas-efficient alternative to ERC-1155 with a cleaner interface and dual approval system.

In Depth

ERC-6909 replaces the complexity of ERC-1155 with a streamlined multi-token interface. Each contract manages multiple token IDs with per-ID balances, per-ID allowances, and a separate operator approval mechanism. Uniswap v4 adopted ERC-6909 for its pool accounting, and the standard is gaining traction across DeFi. The dual-approval model and shared-state design create subtle bug classes around cross-ID isolation, operator scope creep, and supply conservation that fuzzing is uniquely suited to catch. For a full walkthrough of the invariants and property design, see How to Fuzz ERC-6909 Multi-Token Contracts.

Frequently Asked Questions

What is ERC-6909?

ERC-6909 is an Ethereum token standard that lets a single contract manage multiple token IDs with per-ID balances and allowances. It's designed as a simpler, more gas-efficient replacement for ERC-1155, and has been adopted by protocols like Uniswap v4 for multi-token accounting.

How do you fuzz ERC-6909?

Fuzzing ERC-6909 means writing invariants for supply conservation (mints minus burns equals total supply per ID), cross-ID isolation (operations on token ID A can't affect token ID B's balance), and operator scope (an operator can transfer any ID, but a per-ID approval only covers that specific ID). See the ERC-6909 fuzzing guide for the full property suite.

Related Terms

Related Blog Posts

Need expert help with erc-6909?