web3wagmi
← All standards

ERC-5501 Rental & Delegation NFT - EIP-721 Extension

StagnantERCcreated 2022-08-18requires ERC-165, ERC-721, ERC-4400, ERC-4907

Adds a conditional time-limited user role to EIP-721. This role can be delegated or borrowed.

Authors: Jan Smrža (@smrza), David Rábel (@rabeles11), Tomáš Janča, Jan Bureš (@JohnyX89), DOBBYLABS (@DOBBYLABS)

ERC-165 interface ids

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

IERC55010xf808ec37

Functions this standard introduces (4)

0xcbd00851setUser(uint256,address,uint64,bool)
0x8fc88c48userExpires(uint256)view
0x7ee19964userIsBorrowed(uint256)view
0xc2f1f14auserOf(uint256)view

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 (3)

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

IERC5501Balance0x0cb22289

0x0cb22289userBalanceOf(address)

IERC5501Enumerable0x1d350ef8

0x1d350ef8tokenOfUserByIndex(address,uint256)

IERC5501Terminable0x6a26417e

0xc5b9d060setBorrowTermination(uint256)
0x267702aagetBorrowTermination(uint256)
0x89e893b4terminateBorrow(uint256)

Events (4)

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

0x71e41666027a2b4557ad6dfdb283b947f4a9acbb2757169345d52ed8fc3a170cUpdateUser(uint256,address,uint64,bool)
0x4bd363ec03602055b4800dc76a2b1928b2569c50fed8fdc000fb48ae63847c8aAgreeToTerminateBorrow(uint256,address,bool)
0x18cc29bf7faabb7cdac8395a8cc7314aed56223fbcc29a21559abb214768da53ResetTerminationAgreements(uint256)
0xcdb5bd4d8075db7c766290ddbae2d18cb49abc6957393755817bdab38d30d0e7TerminateBorrow(uint256,address,address,address)

Depends on (4)

Proposals this one names in its requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion