ERC-6956 Asset-bound Non-Fungible Tokens
Asset-bound NFTs anchor a token 1-1 to an asset and operations are authorized through oracle-attestation of control over the asset
ERC-165 interface ids
Computed here as the XOR of the selectors each interface defines.
| IERC6956 | 0xa9cf7635 |
Functions this standard introduces (12)
0x99a346af | anchorByToken(uint256) | view |
0x20cac85c | approveAnchor(bytes,bytes) | |
0x5aa7ba8f | approveAnchor(bytes) | |
0x287a0c54 | approveAuthorization() | view |
0x22e26bf5 | attestationsUsedByAnchor(bytes32) | view |
0x15f75281 | burnAnchor(bytes,bytes) | |
0x0cd53d5f | burnAnchor(bytes) | |
0x901637e2 | burnAuthorization() | view |
0x43f6805f | decodeAttestationIfValid(bytes,bytes) | view |
0x16c99b79 | tokenByAnchor(bytes32) | view |
0xb97f592e | transferAnchor(bytes,bytes) | |
0x25ed3fdc | transferAnchor(bytes) |
Optional extensions (3)
Interfaces the spec defines alongside the core one, which an implementation may or may not carry.
IERC6956AttestationLimited0x75a2e933
0x7cb70de5 | attestationLimit(bytes32) | |
0x491776ca | attestationUsagesLeft(bytes32) | |
0x4002921c | attestationLimitPolicy() |
IERC6956Floatable0xf82773f7
0xff17d74d | floating(bytes32) | |
0x84bf8fba | floatStartAuthorization() | |
0xd79ca0b3 | floatStopAuthorization() | |
0x54138bb3 | float(bytes32,uint8) |
IERC6956ValidAnchors0x051c9bd8
0x051c9bd8 | anchorValid(bytes32,bytes32[]) |
Events (10)
Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.
0xfe4a69f7911ca79f9ffc289280b5a70eedc2957e98939565d0a5396687d9204f | AnchorApproval(address,address,bytes32,uint256) | |
0xe50623df1cea48c40d705b7a6d25fefb906a1efb35e2e705beaae8874ee013c6 | AnchorTransfer(address,address,bytes32,uint256) | |
0xf1308b8e914792ca367aca95e5edcb055205ccb1cff16c794a85b5aaf0a259fc | AttestationUse(address,bytes32,bytes32,uint256) | |
0xa23e97503ca8c4a0237ff9ad0bcdd4642b7399c1571d1b9f54645ca422739662 | OracleUpdate(address,bool) | |
0x9d72288c74709041d54a5b66d3c2b3bb32b770d42e1be03ac32f586f28b63dc5 | GlobalAttestationLimitUpdate(uint256,address) | |
0x9ba239f9f503fd91c2d4c02554e4e30dd8434d5546b3a25fb0b15d56d3609993 | AttestationLimitUpdate(bytes32,uint256,uint256,address) | |
0xaccba5123227ee0099525bcb31f8a273f3023ac9a4458d4804caecc1d69bf2ad | AttestationLimitReached(bytes32,uint256,uint256) | |
0x813e62061f661fc55f49e41911d374dee0b354ffd1ec9eb04dc18b07d6813804 | FloatingStateChange(bytes32,uint256,uint8,address) | |
0xccf7149ae20933032262903106d212029317c574e9b3d8cf35691eba94bd8dda | FloatingAllStateChange(bool,address) | |
0x5d14c0727e865600a5bd0c79e5bb53019a08131062b817e34deda19d906db7c8 | ValidAnchorsUpdate(bytes32,address) |
Depends on (2)
Proposals this one names in its requires field.
What the specification covers
Compare with
Parsed from the canonical specification · discussion