web3wagmi
← All standards

ERC-6956 Asset-bound Non-Fungible Tokens

ReviewERCcreated 2023-04-29requires ERC-165, ERC-721

Asset-bound NFTs anchor a token 1-1 to an asset and operations are authorized through oracle-attestation of control over the asset

Authors: Thomas Bergmueller (@tbergmueller), Lukas Meyer (@ibex-technology)

ERC-165 interface ids

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

IERC69560xa9cf7635

Functions this standard introduces (12)

0x99a346afanchorByToken(uint256)view
0x20cac85capproveAnchor(bytes,bytes)
0x5aa7ba8fapproveAnchor(bytes)
0x287a0c54approveAuthorization()view
0x22e26bf5attestationsUsedByAnchor(bytes32)view
0x15f75281burnAnchor(bytes,bytes)
0x0cd53d5fburnAnchor(bytes)
0x901637e2burnAuthorization()view
0x43f6805fdecodeAttestationIfValid(bytes,bytes)view
0x16c99b79tokenByAnchor(bytes32)view
0xb97f592etransferAnchor(bytes,bytes)
0x25ed3fdctransferAnchor(bytes)

Optional extensions (3)

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

IERC6956AttestationLimited0x75a2e933

0x7cb70de5attestationLimit(bytes32)
0x491776caattestationUsagesLeft(bytes32)
0x4002921cattestationLimitPolicy()

IERC6956Floatable0xf82773f7

0xff17d74dfloating(bytes32)
0x84bf8fbafloatStartAuthorization()
0xd79ca0b3floatStopAuthorization()
0x54138bb3float(bytes32,uint8)

IERC6956ValidAnchors0x051c9bd8

0x051c9bd8anchorValid(bytes32,bytes32[])

Events (10)

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

0xfe4a69f7911ca79f9ffc289280b5a70eedc2957e98939565d0a5396687d9204fAnchorApproval(address,address,bytes32,uint256)
0xe50623df1cea48c40d705b7a6d25fefb906a1efb35e2e705beaae8874ee013c6AnchorTransfer(address,address,bytes32,uint256)
0xf1308b8e914792ca367aca95e5edcb055205ccb1cff16c794a85b5aaf0a259fcAttestationUse(address,bytes32,bytes32,uint256)
0xa23e97503ca8c4a0237ff9ad0bcdd4642b7399c1571d1b9f54645ca422739662OracleUpdate(address,bool)
0x9d72288c74709041d54a5b66d3c2b3bb32b770d42e1be03ac32f586f28b63dc5GlobalAttestationLimitUpdate(uint256,address)
0x9ba239f9f503fd91c2d4c02554e4e30dd8434d5546b3a25fb0b15d56d3609993AttestationLimitUpdate(bytes32,uint256,uint256,address)
0xaccba5123227ee0099525bcb31f8a273f3023ac9a4458d4804caecc1d69bf2adAttestationLimitReached(bytes32,uint256,uint256)
0x813e62061f661fc55f49e41911d374dee0b354ffd1ec9eb04dc18b07d6813804FloatingStateChange(bytes32,uint256,uint8,address)
0xccf7149ae20933032262903106d212029317c574e9b3d8cf35691eba94bd8ddaFloatingAllStateChange(bool,address)
0x5d14c0727e865600a5bd0c79e5bb53019a08131062b817e34deda19d906db7c8ValidAnchorsUpdate(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