The proposed interface is simple and can be decomposed into 2 parts:
There is no transfer possible with ERC1238, however some events are defined to record when tokens are minted or burned. For each case, we have 2 variants based on whether the operation relates to a single token id or multiple (called a batch). This makes for 4 events in total:
Three balance functions are defined:
balanceOf
: For a single account and token id. Same signature as ERC1155.balanceOfBatch
: For a single account and multiple token ids. Same signature as ERC1155.balanceOfBundle
: For multiple accounts and multiple token ids.Every ERC-1238 compliant contract must implement the ERC1238 interface: