ERC-6909: Minimal Multi-Token Standard
ERC-6909 is a leaner alternative to ERC-1155 that strips out the safe-transfer acceptance check (no recipient hooks at all), removes the URI requirement, and simplifies operator approvals. Used by Uniswap V4's pool manager — every pool's liquidity is represented as a separate ERC-6909 token id.
Required Interface
solidity
function balanceOf(address owner, uint256 id) external view returns (uint256);
function transfer(address to, uint256 id, uint256 amount) external returns (bool);
function transferFrom(address from, address to, uint256 id, uint256 amount)
external returns (bool);
function approve(address spender, uint256 id, uint256 amount) external returns (bool);
function allowance(address owner, address spender, uint256 id) external view returns (uint256);
function setOperator(address operator, bool approved) external returns (bool);
function isOperator(address owner, address operator) external view returns (bool);Neo Equivalent: Direct Port
The Neo C# port replaces approve/allowance with witness checks (default Neo authorization). Operators map to NEP-30-style authorisation contracts but for the common case the witness model already covers it.
