Integration guide for ERC-721

ERC-4907 is an extension of ERC-721. It proposes an additional role (user) which can be granted to addresses, and a time where the role is automatically revoked (expires). The user role represents permission to “use” the NFT, but not the ability to transfer it or set users.

https://eips.ethereum.org/EIPS/eip-4907

Steps for integration of ERC-721

  • Choose the integration model of ERC-4907
  • Adopt ERC-4907
  • Configure testnet marketplace
  • Lend assets
  • Adopt your application to fully support 4907
  • Integration test on tesnet
  • Release on mainnet

Choose the integration model of ERC-4907

The game developer should choose the model of integration with ERC-4907:

  • ERC-4907 — support ERC-4907 in your smart contract
  • ERC-4907 Wrapper — deploy additional smart contract, which will contain all related logic with renting

Suggestions

  • If your ERC-721 contract has not been deployed on the mainnet, we suggest ERC-4907
  • If your ERC-721 contract has been deployed on the mainnet and support upgradable, we suggest ERC-4907
  • If your ERC-721 contract has been deployed on the mainnet, we suggest ERC-4907 Wrapper

Adopt ERC-4907

The ERC-4907 standard is an extension of ERC-721 that introduces the dual roles of ‘owner’ and ‘user’ at its application layer. ERC-4907 streamlines NFT rentals through an automated ‘expires’ function which enforces the time-limited role of the user. This innovative feature makes NFTs rentable by default; owners no longer have to manually withdraw user rights, eliminating a tedious process and another on-chain transaction.

Configure testnet markeplace

We are supporting different options for configuration of our marketplace, to start integration testing we should configure these options

  • collection address
  • royalty address
  • royalty fee
  • min / max rental period on collection level

This operation working only on our secure & safety infrastructure

Lend assets

Using our UI you will need lend assets to our marketplace and set options for renter

  • Approve access for assets
  • Choose asset
  • List asset with details

🚧

Our frontend application and logic of smart contract is in active development, we can change details of implementation soon

Select assets from you wallet

Select assets from you wallet

List asset with offer details

List asset with offer details

Adopt your application to fully support ERC-4907

To fully support benefits of rental protocol you need to handle of use cases of Asset usage

  • Define renter rights: Define the rights and responsibilities of the renter in your game. This can include things like the ability to use and customize the NFT, the duration of the rental period, and the consequences of violating the rental agreement.
  • Integrate the rental protocol into your infrastructure: Integrate the rental protocol into your game's infrastructure, such as your web application, mobile app, or backend. This will allow users to view and rent NFTs within your game, as well as manage their rentals.
  • Display rented NFTs in your UI: Once you've integrated the rental protocol into your infrastructure, you'll need to display rented NFTs in your user interface.
  • Make sure you are handling all edge cases with possibble rental usage (anti-cheat protection, security checks, disbursments of earning in game)

Integration test on testnet

Test the rental protocol & your application to make sure it's functioning as intended. This can include running integrations tests on your smart contracts, as well as running integration tests on your infrastructure.

Release on mainnet

Monitor the rental protocol: Keep an eye on the rental protocol to make sure it's functioning properly. This can include monitoring rental activity, handling disputes, and updating infrastructure as needed