ERC-4907 NFT Rental Expiry Tool
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This tool enables NFT owners and rental platform operators to set and manage rental expiry for ERC-4907 NFTs. ERC-4907 is an extension of ERC-721 that adds a "user" role — the user has rights to use the NFT (e.g., in-game utility, access passes) without owning it, until a specified expiry timestamp. This is ideal for rental marketplaces, gaming, ticketing, and other use cases where NFTs need to be temporarily lent. It connects to your wallet and reads the NFT contract address, token ID, user address, expiry timestamp, rental status, rental history, and timestamps. The tool signs and submits transactions to set NFT rental expiry, update user rights, revoke rental access, record expiry metadata, and emit rental events.
HOW TO USE
1. Connect your wallet using the wallet bridge (supports MetaMask, WalletConnect, and other EVM-compatible wallets).
2. Select the target network that matches your NFT contract deployment.
3. Enter the NFT contract address and the token ID, then click "load contract" to initialize the connection.
4. Click "fetch rental status" to retrieve the current user, expiry timestamp, and rental history.
5. Review the current rental status — the tool displays whether the rental is active or expired.
6. Enter the user address (renter) and the expiry timestamp (when the rental should end).
7. Click "validate expiry" to verify that the user address is valid and the expiry is in the future.
8. Click "check rental history" to view the complete rental history for this NFT.
9. Review the rental details before executing.
10. Click "set rental expiry" to sign and submit the transaction that grants rental rights to the user until the specified expiry.
11. Click "revoke access" to immediately revoke the user's rental rights by setting expiry to the current time.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 to interact with any EVM-compatible ERC-4907 NFT contract that implements a standard interface (userOf(uint256) view returns (address), userExpires(uint256) view returns (uint256), setUser(uint256, address, uint64) external, getRentalHistory(uint256) view). The setUser function updates the user address and expiry timestamp for a given token ID. Only the NFT owner or authorized operator can call this function. The contract emits a UpdateUser event when the user is set. The userExpires view returns the expiry timestamp for the current user. The getRentalHistory view returns an array of timestamps, users, and expiries, providing a complete audit trail of rental activity. Transaction handling follows EIP-1559 gas price calculations using receipt.effectiveGasPrice for accurate cost reporting. Rental metadata is recorded both in the contract's history and locally for the user's reference.
WHAT IT CANNOT SEE
This tool operates purely on-chain and cannot verify off-chain rental agreements — it does not check that the renter has paid, signed a contract, or agreed to terms. It cannot validate user identity — the tool cannot confirm that the user address belongs to the intended renter. It cannot detect unauthorized use — the tool cannot monitor how the NFT is being used or whether the user is complying with rental terms. It cannot ensure rental terms are met — the tool does not enforce off-chain conditions like usage limits or damage clauses. It also cannot guarantee that access is revoked — the tool relies on the contract's enforcement of the expiry, but does not verify that the contract correctly implements the ERC-4907 standard or that the expiry is respected.
PLEASE NOTE
This tool works exclusively with EVM-compatible blockchain networks (Ethereum, Polygon, Arbitrum, Optimism, Base, etc.). It requires the NFT contract to implement the ERC-4907 interface described above. All transactions incur gas fees paid by the connected wallet. The tool maintains no persistent storage — all state is refreshed from the blockchain on each session. Setting a rental expiry grants the user rights to use the NFT until the specified time — ensure you trust the user and have agreed on rental terms before setting the expiry. Revoking access is immediate but may cause disputes if the user has paid for a rental period. Always verify the user address and expiry timestamp carefully before executing.