Delegator Extension That Enables ERC721 to be loaned

Hi there.

ERC721 is widely used in blockchain games. I think it’s good to NFTized game accounts and game equipment so that users can own their own assets. However, I don’t think it’s a good experience for every player to buy an NFT before playing the game. Sometimes we just want to try the game. Under such circumstances, if we can borrow NFT to play the game in a safe and convenient way, the experience will be much better.

In order to solve this problem, I thought of a method, that is, add a delegator extension to ERC721. Specifically, like the following code.

mapping(uint256 => address) private _delegators;
function setDelegator(address delegator, uint256 tokenId)

If I want to borrow an NFT from you, you just set me as the delegator of your NFT. It’s safe for you to do it, cause I don’t have any permission to transfer or approve your NFT.

What a delegator can do is defined by the game developers, or the utility NFT developers. If developers are willing to adopt this extension, they need to add the identification and processing of the delegator in the code.

I will develop specific implementations and examples in the next. I would also like to get feedback from everyone :slight_smile:

1 Like

I am glad that you have noticed the same need for explicit role for NFTs to address renting of ERC721s. Your proposal seems very similar to what I have described and has been merged as EIP4400.

You can add your comments/thoughts in the Discussion section here and lets see whether the proposed EIP4400 fulfils your needs:

I will update the EIP in the coming days with the new feedback that we have received from the community.