NFT Rental is a trustless protocol built on Kadena EVM that enables NFT rentals
NFTs today are expensive and often remain idle in wallets, creating high barriers to entry for gamers, event attendees, and community members. At the same time, NFT owners lack sustainable ways to monetise their assets.
Solution: I built an NFT Rental, enabling a “Rental model for NFTs”:
Rent NFTs – Users pay a fixed fee to borrow NFTs for a limited time. Access is granted via ERC-4907’s user role and auto-revoked after expiry.
Trustless & Secure – NFT owners never lose custody; smart contracts enforce access control, rental terms, and expiry.
Key Features:
🖼️ ERC-4907 support for rental user rights & expiry. 💸 Rental marketplace – owners can list NFTs, renters can browse & pay. ⏳ Time-bound rentals & automatic expiry. 🌐 Deployed on Kadena EVM Testnet.
How it works (Demo):
Owner mints a demo NFT (Golden Duck skin, Pizza Pass, Arcade Skin). The owner lists the NFT for rent via our RentalManager contract. Renter clicks “Rent” → pays fee → gains usage rights for X days. Upon expiry, the NFT automatically revokes access without requiring owner intervention.
Impact: 🎮 Gamers can rent premium skins or characters instead of buying. 🎟️ Event organisers can issue NFTs that work like temporary passes. 💰 NFT owners earn ongoing yield from assets instead of leaving them idle.
This project demonstrates composable NFT utilities using ERC-4907, ERC-721, and smart contract automation, with potential integration into gaming, DAOs, ticketing, and DeFi collateral.
I built an NFT Rental on Kadena’s EVM chain, taking advantage of Kadena’s scalability to deliver a smoother user experience.
🛠️ Smart Contracts (Solidity on Kadena EVM) RentableNFT contract: Extended an ERC-721 to include a temporary user role and expiry timestamp (ERC-4907-style). This allowed us to separate ownership (owner keeps custody) from usage rights (borrower).
RentalManager contract: Let owners list NFTs with a rental price + duration. Handles payments in KAD (on Kadena EVM). Assigns usage rights via setUser(). Auto-expires rentals, revoking access after the time runs out.
⚙️ Technologies Used Kadena EVM – Solidity contracts deployed directly to Kadena’s EVM chain. Scaffold Kadena Hardhat – contract development, compilation, and deployment. OpenZeppelin Contracts – base ERC-721 implementation + security helpers. React + Wagmi – front-end marketplace for listing, browsing, and renting NFTs. Rainbow Wallet integrations on Kadena EVM Testnet – smooth wallet connection for minting, listing, and renting.
🔗 Partner Tech Benefits Kadena EVM: Full Solidity compatibility meant we could port Ethereum-style contracts without rewriting everything in Pact.
🛠️ Hacky / Notable Things We Did
Instead of using ERC-721 Enumerable (which can be gas-heavy), we added a lightweight totalMinted() function and looped through token IDs off-chain to list a user’s owned or rented NFTs. To simulate automation, we relied on the userExpires check for rentals. Future versions could integrate with an off-chain keeper to auto-cleanup expired rentals.