ERC-1155
ERC-1155 is a multi-token standard that supports both fungible and non-fungible tokens in a single contract, with batch transfer and callback mechanisms.
In Depth
ERC-1155 defines a multi-token interface where a single contract manages multiple token IDs that can be fungible, non-fungible, or semi-fungible. The standard includes batch transfer operations (safeBatchTransferFrom), mandatory receiver callbacks (onERC1155Received, onERC1155BatchReceived), and a single setApprovalForAll operator mechanism. Batch operations introduce atomicity requirements (all transfers succeed or all revert), and callbacks create reentrancy surface. Fuzzing catches bugs in batch atomicity, callback safety, per-ID accounting, and the interaction between fungible and non-fungible token IDs within the same contract. For the full property suite, see How to Fuzz ERC-1155 Multi-Token Contracts.
Frequently Asked Questions
What is ERC-1155?
ERC-1155 is an Ethereum multi-token standard that manages both fungible and non-fungible tokens in a single contract. It supports batch transfers for gas efficiency and requires receiver contracts to implement callback interfaces. It's widely used in gaming, NFT platforms, and DeFi protocols that manage multiple asset types.
How do you fuzz ERC-1155 batch transfers?
Fuzzing ERC-1155 batch transfers means writing invariants for batch atomicity (all transfers in a batch succeed or all revert), per-ID supply conservation, callback safety (receiver hooks can't corrupt state or cause reentrancy), and balance consistency across single and batch operations. See the ERC-1155 fuzzing guide for the full approach.