web3wagmi
← All standards

ERC-7508 Dynamic On-Chain Token Attributes Repository

DraftERCcreated 2023-08-15requires ERC-165

Dynamic on-chain storage of token attributes in a public-good repository.

Authors: Steven Pineda (@steven2308), Jan Turk (@ThunderDeliverer)

ERC-165 interface ids

Computed here as the XOR of the selectors each interface defines.

IERC75080x212206a8

Functions this standard introduces (45)

0x0c7af259getAddressAttribute(address,uint256,string)view
0x5d1d61b6getAddressAttributes(address[],uint256[],string[])view
0xb8f4e18agetAttributes(address,uint256,string[],string[],string[],string[],string[],string[])view
0x8c79e5f6getAttributesMetadataURIForCollection(address)view
0x622a61e1getBoolAttribute(address,uint256,string)view
0x14ac5b39getBoolAttributes(address[],uint256[],string[])view
0x3806d384getBytesAttribute(address,uint256,string)view
0xc034868cgetBytesAttributes(address[],uint256[],string[])view
0x473dc551getIntAttribute(address,uint256,string)view
0xb9fea139getIntAttributes(address[],uint256[],string[])view
0x58d7ac36getStringAttribute(address,uint256,string)view
0x6592caf6getStringAttributes(address[],uint256[],string[])view
0x1b8bfea3getUintAttribute(address,uint256,string)view
0x1785d515getUintAttributes(address[],uint256[],string[])view
0x3b4afbe5isCollaborator(address,address)view
0x5e63d019isSpecificAddress(address,address,string)view
0x0074b057manageAccessControl(address,string,uint8,address)
0x05c55942manageCollaborators(address,address[],bool[])
0x99ce1b6aprepareMessageToPresignAddressAttribute(address,uint256,string,address,uint256)view
0xe3698a9cprepareMessageToPresignBoolAttribute(address,uint256,string,bool,uint256)view
0xbcbf0026prepareMessageToPresignBytesAttribute(address,uint256,string,bytes,uint256)view
0xf891efa6prepareMessageToPresignIntAttribute(address,uint256,string,int256,uint256)view
0x062d49aaprepareMessageToPresignStringAttribute(address,uint256,string,string,uint256)view
0xb43c50e2prepareMessageToPresignUintAttribute(address,uint256,string,uint256,uint256)view
0xbf65cf66presignedSetAddressAttribute(address,address,uint256,string,address,uint256,uint8,bytes32,bytes32)
0xacb80ac8presignedSetBoolAttribute(address,address,uint256,string,bool,uint256,uint8,bytes32,bytes32)
0x6a97da2bpresignedSetBytesAttribute(address,address,uint256,string,bytes,uint256,uint8,bytes32,bytes32)
0x55c93046presignedSetIntAttribute(address,address,uint256,string,int256,uint256,uint8,bytes32,bytes32)
0x4a70d109presignedSetStringAttribute(address,address,uint256,string,string,uint256,uint8,bytes32,bytes32)
0x700a9fe2presignedSetUintAttribute(address,address,uint256,string,uint256,uint256,uint8,bytes32,bytes32)
0xad965b35registerAccessControl(address,address,bool)
0x2d793515setAddressAttribute(address,uint256,string,address)
0x649dde6asetAddressAttributes(address[],uint256[],(string,address)[])
0x5d5443c9setAttributes(address,uint256,(string,address)[],(string,bool)[],(string,bytes)[],(string,int256)[],(string,string)[],(string,uint256)[])
0x00137cbbsetAttributesMetadataURIForCollection(address,string)
0x19c4fb5dsetBoolAttribute(address,uint256,string,bool)
0xcc9cc372setBoolAttributes(address[],uint256[],(string,bool)[])
0xc58281bcsetBytesAttribute(address,uint256,string,bytes)
0x9ccf774fsetBytesAttributes(address[],uint256[],(string,bytes)[])
0x1bc69ccasetIntAttribute(address,uint256,string,int256)
0x7821d155setIntAttributes(address[],uint256[],(string,int256)[])
0xcedb3f89setStringAttribute(address,uint256,string,string)
0xdacdb1a2setStringAttributes(address[],uint256[],(string,string)[])
0xed208672setUintAttribute(address,uint256,string,uint256)
0x50fc1728setUintAttributes(address[],uint256[],(string,uint256)[])

Inherited (1)

0x01ffc9a7supportsInterface(bytes4)ERC-165

Events (10)

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

0x961c9ccd18ff75f83e58597107ced585c08a0514de45947c8aa7a0d5fdf67d18AccessControlRegistration(address,address,address,bool)
0x97d2a2ba740da24a4e4a4e94fd62999fa5917e0df31c996b0305550a292673a9AccessControlUpdate(address,string,uint8,address)
0x1b460238cb695fc31c141a22bca8cea3e92a6fa4ded4ccee2a33f9972f2eece0MetadataURIUpdated(address,string)
0x5ce2cdea67a188cbf267b966a3a0d897f902c098d0b718269e43dd3cd618761aCollaboratorUpdate(address,address,bool)
0x78ab16f2d097b9728046fb602022fccefef4ec306810b9e8b6fd618e91c12214AddressAttributeUpdated(address,uint256,string,address)
0xfc6eac6df20a61ff9d8ec7453e452ca73931f2cb16944e9dc884b4a8d6423914BoolAttributeUpdated(address,uint256,string,bool)
0x3e7f7fe71b156da17053b2814558642d261b19433ae77e083aac01f074124f37BytesAttributeUpdated(address,uint256,string,bytes)
0x0c10bed87f43a5875a921aa58c1428dcdefe61e5ed5c58bc96d7961ab34d4b9aIntAttributeUpdated(address,uint256,string,int256)
0x11e1b2f69159e4bf02488e2c90bf30e6075a4bf57a39ce63ba83d10a96777c03StringAttributeUpdated(address,uint256,string,string)
0x2b529d8c80cbea7dc71690ffd099111430f1e30963439b4659e9a1ec3fba5785UintAttributeUpdated(address,uint256,string,uint256)

Depends on (1)

Proposals this one names in its requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion