web3wagmi
← All standards

ERC-7695 Ownership Delegation and Context for ERC-721

DraftERCcreated 2024-04-02requires ERC-165, ERC-721

Introduces contexts and ownership delegation for ERC-721 tokens, expanding dApps and financial use cases without transferring ownership

Author: Duc Tho Tran (@ducthotran2010)

ERC-165 interface ids

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

IERC76950x486b6fba

Functions this standard introduces (18)

0xe34464d4acceptOwnershipDelegation(uint256)
0x624fedb2attachContext(bytes32,uint256,bytes)
0xf6c6bb92createContext(address,uint64,bytes)
0xf2ddaf3dexecDetachContext(bytes32,uint256,bytes)
0x29b2be01getContext(bytes32)view
0xcb6252c6getContextUser(bytes32,uint256)view
0xe1458320getOwnershipDelegatee(uint256)view
0x10bda4edgetOwnershipManager(uint256)view
0xce2dc36bisAttachedWithContext(bytes32,uint256)view
0x4b8532b0isTokenContextLocked(bytes32,uint256)view
0xaaf70302maxDetachingDuration()view
0xcad98336pendingOwnershipDelegatee(uint256)view
0x99d788f0requestDetachContext(bytes32,uint256,bytes)
0xddc89f4fsetContextLock(bytes32,uint256,bool)
0x68afc92dsetContextUser(bytes32,uint256,address)
0x50814c2dstartDelegateOwnership(uint256,address,uint64)
0x993c5874stopOwnershipDelegation(uint256)
0xded8825dupdateContext(bytes32,address,uint64)

Inherited (10)

0x095ea7b3approve(address,uint256)ERC-721
0x70a08231balanceOf(address)ERC-721
0x081812fcgetApproved(uint256)ERC-721
0xe985e9c5isApprovedForAll(address,address)ERC-721
0x6352211eownerOf(uint256)ERC-721
0xb88d4fdesafeTransferFrom(address,address,uint256,bytes)ERC-721
0x42842e0esafeTransferFrom(address,address,uint256)ERC-721
0xa22cb465setApprovalForAll(address,bool)ERC-721
0x01ffc9a7supportsInterface(bytes4)ERC-165
0x23b872ddtransferFrom(address,address,uint256)ERC-721

Optional extensions (1)

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

IERC7695Enumerable0xcebf44b7

0xe68defacgetContext(uint256)
0x7ddedf1dgetContextCount()
0x3d18d645getAttachedContext(uint256,uint256)
0x68f4a243getAttachedContextCount(uint256)

Events (9)

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

0xd646610e00048edcd547e643a376e2ae2b8dcecb8c534703718c9a7e7c9bc02cContextUpdated(bytes32,address,uint64)
0xa6e9e35c8a5f310b19b5699a7563ef66fade71f347ebefaf96e51dea3241d96fContextAttached(bytes32,uint256)
0x553d41eb4b32b2becd9ce2ff4fbd83598108811d23f67d39cc7f809e1f7a5d5bContextDetachmentRequested(bytes32,uint256)
0x94e01d8372cb1de282815157551f36cbba527f4dbecc3cbd524d38c147feca85ContextDetached(bytes32,uint256)
0xc6bb28e6096807c3e639ecc36a99861b1ff0bf80ed6ba4fad23333cf9e182efcContextUserAssigned(bytes32,uint256,address)
0xa95021cc113e3bf56d07571579887f9542166f81e995fbde08395a89726fcb29ContextLockUpdated(bytes32,uint256,bool)
0xd53478650f5188c1beb4a4897d233f3c9c636f600630c72266bdb216474fa752OwnershipDelegationStarted(uint256,address,uint64)
0x54b44a462e87fa8234e977fa235b3407f1434f69b1d378032ba06a103835bfd9OwnershipDelegationAccepted(uint256,address,uint64)
0x93f65897a88aa3c0b9b5d4db049fe366ce98e99591bc37e151bbd3d6a0814b02OwnershipDelegationStopped(uint256,address)

Depends on (2)

Proposals this one names in its requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion