← All standardsERC-5727 Semi-Fungible Soulbound Token
An interface for soulbound tokens, also known as badges or account-bound tokens, that can be both fungible and non-fungible.
Authors: Austin Zhu (@AustinZhu), Terry Chen
Functions this standard introduces (6)
0xb51c3a00 | issue(uint256,uint256,bytes) | payable |
0xa4e2ee11 | issuerOf(uint256) | view |
0xcb0c9330 | revoke(uint256,bytes) | payable |
0x9f40a360 | revoke(uint256,uint256,bytes) | payable |
0x9bd6f65e | verifierOf(uint256) | view |
0x85852ce4 | verify(uint256,bytes) | |
Inherited (19)
0xe345e0bc | allowance(uint256,address) | ERC-3525 |
0x095ea7b3 | approve(address,uint256) | ERC-721 |
0x8cb0a511 | approve(uint256,address,uint256) | ERC-3525 |
0x70a08231 | balanceOf(address) | ERC-721 |
0x9cc7f708 | balanceOf(uint256) | ERC-3525 |
0x0489b56f | burnAuth(uint256) | ERC-5484 |
0x081812fc | getApproved(uint256) | ERC-721 |
0xe985e9c5 | isApprovedForAll(address,address) | ERC-721 |
0xb45a3c0e | locked(uint256) | ERC-5192 |
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 |
0x263f3e7e | slotOf(uint256) | ERC-3525 |
0x01ffc9a7 | supportsInterface(bytes4) | ERC-165 |
0x23b872dd | transferFrom(address,address,uint256) | ERC-721 |
0x0f485c02 | transferFrom(uint256,address,uint256) | ERC-3525 |
0x310ed7f0 | transferFrom(uint256,uint256,uint256) | ERC-3525 |
0x3e7e8669 | valueDecimals() | ERC-3525 |
Optional extensions (5)
Interfaces the spec defines alongside the core one, which an implementation may or may not carry.
IERC5727Enumerable0x217d8ec4
0xb828a5b5 | slotCountOfOwner(address) | |
0x771c923a | slotOfOwnerByIndex(address,uint256) | |
0xee49b94b | ownerBalanceInSlot(address,uint256) | |
IERC5727Governance
0x94c0d6ab | removeApprovalRequest(uint256) | |
0x23b4a1f3 | voteApproval(uint256,bool,bytes) | |
0x95ee5f5e | approvalURI(uint256) | |
IERC5727Delegate0x2e9d93de
0x026e402b | delegate(address,uint256) | |
0x4d99dd16 | undelegate(address,uint256) | |
0x616a0ee3 | isOperatorFor(address,uint256) | |
IERC5727Recovery0x379f4e66
0x379f4e66 | recover(address,bytes) | |
IERC5727Expirable0x806f015a
0x806f015a | setExpiration(uint256,uint64,bool) | |
Events (7)
Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.
0x713b90881ad62c4fa8ab6bd9197fa86481fc0c11b2edba60026514281b2dbac4 | Revoked(address,uint256) | |
0x4825eec4df6d3ed2dd00e817a9b18c41dca6ea990df684ec6b0bf75b4df13f8f | Verified(address,uint256,bool) | |
0xdd950cfb849a682bcbed9993d06b29be5ba2d7d254f4aaf5ecdd3937ed6aaee7 | ApprovalUpdate(uint256,address,uint8) | |
0x2247fe805e13dffc07bf4657d3897476172e7e0ceef04c3341998ed508e02d49 | Approve(address,uint256,bool) | |
0xb0d234274aef7a61aa5a2eb44c23881ebf46a068cccbd413c978bcbd555fe17f | Delegate(address,uint256) | |
0x32bc683fe5521b8c5787c2845a178d8c3a7ee6d1d7667d46687c31beb83a9b8a | UnDelegate(address,uint256) | |
0xc4aef5da6b1f6085ebd05a82a61d94bf83a486f32ab4ac3f7843afeed66b1440 | Recovered(address,address) | |
Depends on (7)
Proposals this one names in its requires field.
What the specification covers
Parsed from the canonical specification · discussion