First Steps

Welcome to the NFT Rental quickstart 👋 Using our Rental protocol you can easily rent and lend any new and existing ERC721 tokens by interaction with Unfreeze smart contract protocol. Rental protocol requires collection to have support for an EIP-4907 standard, otherwise appropriate wrapper will be created. In both scenarios Integration will be done using the contract identifiers, there is no need to manage wrapper addresses Unfreeze will take care of it. Steps required to enable rental for NFT collection:

1. NFT contact registration with an Unfreeze registry 🚀

Before processing further make sure that you are register as a partner to our registry smart contract.

Register new NFT collection

There are three ways to register a collection, depending on whether you want to register an existing collection that extends the EIP-4907 standard, create a compatible wrapper on a collection that does not extend the standard or register collection with your own ERC-4907 wrapper. 1. Register collection (without EIP-4907 support) On a Protocol Registry execute registerRentContractAndDeployWrapper method. Unfreeze will create and deploy wrapper that supports rental standard. Parameters

Param NameParam TypeDescription

partnerName_

string

Unique Identifier of a partner from a Partner registry

contractName_

string

Collection name unique for the partner

owner_

address

Address of collection administrator/owner

originalNftAddr_

IERC721

Address of the NFT collection that doesn't support EIP-4907

Function

    function registerRentContractAndDeployWrapper(
        string memory partnerName_, 
        string memory contractName_, 
        address owner_, 
        IERC721 originalNftAddr_ 
    )

2. Register collection (with EIP-4907 support) On a Protocol Registry execute registerRentContract method Parameters

Param NameParam TypeDescription

partnerName_

string

Unique Identifier of a partner from a Partner registry

contractName_

string

Collection name unique for the partner

owner_

address

Address of collection administrator/owner

originalNftAddr_

IERC721

Address of the NFT collection that supports EIP-4907

Function

    function registerRentContract(
        string memory partnerName_, 
        string memory contractName_, 
        address owner_, 
        IERC721 originalNftAddr_ 
    )

3. Register collection (with existing wrapper that supports EIP-4907) On a Protocol Registry execute registerRentContractWithWrapper method

Unfreeze will use wrapped contract to perform rental actions. Parameters

Param NameParam TypeDescription

partnerName_

string

Unique Identifier of a partner from a Partner registry

contractName_

string

Collection name unique for the partner

owner_

address

Address of collection administrator/owner

wrapperContractAddr_

IERC4907

Address for a ERC721 wrapped contract with a support for ERC4907

originalNftAddr_

IERC721

Address of the NFT collection that doesn't support EIP-4907

Function

    function registerRentContractWithWrapper(
        string memory partnerName_, 
        string memory contractName_, 
        address owner_, 
        IERC4907 wrapperContractAddr_, 
        IERC721 originalNftAddr_ 
    )

Last updated