web3wagmi
← All standards

ERC-5727 Semi-Fungible Soulbound Token

DraftERCcreated 2022-09-28requires ERC-165, EIP-712, ERC-721, ERC-3525, ERC-4906, ERC-5192, ERC-5484

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)

0xb51c3a00issue(uint256,uint256,bytes)payable
0xa4e2ee11issuerOf(uint256)view
0xcb0c9330revoke(uint256,bytes)payable
0x9f40a360revoke(uint256,uint256,bytes)payable
0x9bd6f65everifierOf(uint256)view
0x85852ce4verify(uint256,bytes)

Inherited (19)

0xe345e0bcallowance(uint256,address)ERC-3525
0x095ea7b3approve(address,uint256)ERC-721
0x8cb0a511approve(uint256,address,uint256)ERC-3525
0x70a08231balanceOf(address)ERC-721
0x9cc7f708balanceOf(uint256)ERC-3525
0x0489b56fburnAuth(uint256)ERC-5484
0x081812fcgetApproved(uint256)ERC-721
0xe985e9c5isApprovedForAll(address,address)ERC-721
0xb45a3c0elocked(uint256)ERC-5192
0x6352211eownerOf(uint256)ERC-721
0xb88d4fdesafeTransferFrom(address,address,uint256,bytes)ERC-721
0x42842e0esafeTransferFrom(address,address,uint256)ERC-721
0xa22cb465setApprovalForAll(address,bool)ERC-721
0x263f3e7eslotOf(uint256)ERC-3525
0x01ffc9a7supportsInterface(bytes4)ERC-165
0x23b872ddtransferFrom(address,address,uint256)ERC-721
0x0f485c02transferFrom(uint256,address,uint256)ERC-3525
0x310ed7f0transferFrom(uint256,uint256,uint256)ERC-3525
0x3e7e8669valueDecimals()ERC-3525

Optional extensions (5)

Interfaces the spec defines alongside the core one, which an implementation may or may not carry.

IERC5727Enumerable0x217d8ec4

0xb828a5b5slotCountOfOwner(address)
0x771c923aslotOfOwnerByIndex(address,uint256)
0xee49b94bownerBalanceInSlot(address,uint256)

IERC5727Governance

0x94c0d6abremoveApprovalRequest(uint256)
0x23b4a1f3voteApproval(uint256,bool,bytes)
0x95ee5f5eapprovalURI(uint256)

IERC5727Delegate0x2e9d93de

0x026e402bdelegate(address,uint256)
0x4d99dd16undelegate(address,uint256)
0x616a0ee3isOperatorFor(address,uint256)

IERC5727Recovery0x379f4e66

0x379f4e66recover(address,bytes)

IERC5727Expirable0x806f015a

0x806f015asetExpiration(uint256,uint64,bool)

Events (7)

Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.

0x713b90881ad62c4fa8ab6bd9197fa86481fc0c11b2edba60026514281b2dbac4Revoked(address,uint256)
0x4825eec4df6d3ed2dd00e817a9b18c41dca6ea990df684ec6b0bf75b4df13f8fVerified(address,uint256,bool)
0xdd950cfb849a682bcbed9993d06b29be5ba2d7d254f4aaf5ecdd3937ed6aaee7ApprovalUpdate(uint256,address,uint8)
0x2247fe805e13dffc07bf4657d3897476172e7e0ceef04c3341998ed508e02d49Approve(address,uint256,bool)
0xb0d234274aef7a61aa5a2eb44c23881ebf46a068cccbd413c978bcbd555fe17fDelegate(address,uint256)
0x32bc683fe5521b8c5787c2845a178d8c3a7ee6d1d7667d46687c31beb83a9b8aUnDelegate(address,uint256)
0xc4aef5da6b1f6085ebd05a82a61d94bf83a486f32ab4ac3f7843afeed66b1440Recovered(address,address)

Depends on (7)

Proposals this one names in its requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion