ERC-3525 Semi-Fungible Token
Defines a specification where ERC-721 compatible tokens with the same SLOT and different IDs are fungible.
ERC-165 interface ids
Computed here as the XOR of the selectors each interface defines.
| IERC3525 | 0xd5358140 |
Functions this standard introduces (7)
0xe345e0bc | allowance(uint256,address) | view |
0x8cb0a511 | approve(uint256,address,uint256) | payable |
0x9cc7f708 | balanceOf(uint256) | view |
0x263f3e7e | slotOf(uint256) | view |
0x0f485c02 | transferFrom(uint256,address,uint256) | payable |
0x310ed7f0 | transferFrom(uint256,uint256,uint256) | payable |
0x3e7e8669 | valueDecimals() | view |
Inherited (10)
0x095ea7b3 | approve(address,uint256) | ERC-721 |
0x70a08231 | balanceOf(address) | ERC-721 |
0x081812fc | getApproved(uint256) | ERC-721 |
0xe985e9c5 | isApprovedForAll(address,address) | ERC-721 |
0x6352211e | ownerOf(uint256) | ERC-721 |
0xb88d4fde | safeTransferFrom(address,address,uint256,bytes) | ERC-721 |
0x42842e0e | safeTransferFrom(address,address,uint256) | ERC-721 |
0xa22cb465 | setApprovalForAll(address,bool) | ERC-721 |
0x01ffc9a7 | supportsInterface(bytes4) | ERC-165 |
0x23b872dd | transferFrom(address,address,uint256) | ERC-721 |
Optional extensions (3)
Interfaces the spec defines alongside the core one, which an implementation may or may not carry.
IERC3525SlotEnumerable0x3b741b9e
0xed08fa80 | slotCount() | |
0x993bef8d | slotByIndex(uint256) | |
0x4f8a0f83 | tokenSupplyInSlot(uint256) | |
0x00cd0110 | tokenInSlotByIndex(uint256,uint256) |
IERC3525SlotApprovable0xb688be58
0x55cd4e06 | setApprovalForSlot(address,uint256,address,bool) | |
0xe345f05e | isApprovedForSlot(address,uint256,address) |
IERC3525Metadata0xe1600902
0xe8a3d485 | contractURI() | |
0x09c3dd87 | slotURI(uint256) |
Events (4)
Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.
0x0b2aac84f3ec956911fd78eae5311062972ff949f38412e8da39069d9f068cc6 | TransferValue(uint256,uint256,uint256) | |
0x621b050de0ad08b51d19b48b3e6df75348c4de6bdd93e81b252ca62e28265b1b | ApprovalValue(uint256,address,uint256) | |
0xe4f48c240d3b994948aa54f3e2f5fca59263dfe1d52b6e4cf39a5d249b5ccb65 | SlotChanged(uint256,uint256,uint256) | |
0x7bdf71e6625aa496095bf08b60c677cf81c963f402cf258981e3bd7507d3480c | ApprovalForSlot(address,uint256,address,bool) |
Depends on (3)
Proposals this one names in its requires field.
Built on by (2)
Later proposals that name this one in their requires field.
What the specification covers
Compare with
Parsed from the canonical specification · discussion