ERC-4907 extends ERC-721 with a second role — the user — who has time-limited rights to use an NFT while the owner keeps ownership. The owner (or an approved operator) calls setUser(tokenId, user, expires), and when the expiry passes the user role lapses automatically, with no transaction needed to “return” the asset. It turns NFTs into leasable assets.
Key takeaways
- Three additions:
setUser,userOf,userExpires, plus anUpdateUserevent. - Ownership never moves during a rental, so collateral, royalties and title stay with the owner.
- Automatic expiry —
userOfreturns the zero address onceexpirespasses. - For ERC-1155 assets, the analogous pattern is ERC-5006 (rentable multi-tokens).
How ERC-4907 works
function setUser(uint256 tokenId, address user, uint64 expires) external;
function userOf(uint256 tokenId) external view returns (address);
function userExpires(uint256 tokenId) external view returns (uint256);
event UpdateUser(uint256 indexed tokenId, address indexed user, uint64 expires);
Applications — a game, an access-control system, a booking platform — check userOf(tokenId) to decide who may use the asset right now. Implementations typically clear the user when the NFT is transferred.
Use cases
Property and space access
A tokenized unit, parking space or co-working desk can be leased by assigning the tenant as user for the lease term, with smart locks or access systems reading userOf. The owner (or SPV) keeps the title NFT. See real estate tokenization.
Equipment and vehicle leasing
Machinery or vehicles with IoT-enabled access can be rented by period; usage data and payments can be tied to the user role.
Memberships and licences
Software licences, club memberships or event passes can be lent or sublet for defined periods.
Gaming and metaverse
Players rent items or land for a season without the owner risking a sale.
Design considerations
- Payments and deposits — ERC-4907 does not handle rent. Pair it with a rental marketplace contract that collects payment and calls
setUser. - Early termination — decide whether owners can revoke a user before expiry; the base standard lets the owner or approved operator call
setUseragain. - Legal agreements — for physical assets, the lease contract governs; the NFT records and automates access.
- Collateral use — owners can pledge the NFT while it is rented, but lenders must understand the encumbrance.
Example rental marketplace flow
- List: the owner approves the rental marketplace as operator and lists the NFT with a daily price and maximum duration.
- Rent: a renter pays rent plus any deposit in a stablecoin; the marketplace calls
setUser(tokenId, renter, expiry). - Use: the application (game, access system, booking platform) checks
userOf(tokenId)on each access. - Expire: at expiry,
userOfreturns the zero address automatically. - Settle: the marketplace releases rent to the owner and returns the deposit, minus any agreed deductions.
Implementation sketch
// Simplified ERC-4907 logic — not audited.
struct UserInfo { address user; uint64 expires; }
mapping(uint256 => UserInfo) internal _users;
function setUser(uint256 tokenId, address user, uint64 expires) public {
require(_isAuthorized(ownerOf(tokenId), msg.sender, tokenId), "not owner nor approved");
_users[tokenId] = UserInfo(user, expires);
emit UpdateUser(tokenId, user, expires);
}
function userOf(uint256 tokenId) public view returns (address) {
return uint256(_users[tokenId].expires) >= block.timestamp ? _users[tokenId].user : address(0);
}
Physical-world integrations
For property, vehicles or equipment, the user role becomes useful when it controls something physical:
- Smart locks query the rental contract (via a backend) before opening.
- Telematics associate usage data with the current user for billing.
- Insurance policies reference the user and rental period.
The lease agreement remains the legal basis; the token automates access and records who had rights when.
Frequently asked questions
No. Only the user role is assigned; ownership stays with the owner.
userOf returns the zero address automatically — no transaction is needed.
Yes, ERC-5006 defines a similar user role with amounts for multi-token contracts.
No. Payments are handled by a separate marketplace or escrow contract.
Technically yes; implementations typically clear the user on transfer. Rental marketplaces often hold the NFT in escrow to protect renters.
The user role applies to the NFT as a whole. For fractional property, the SPV or manager decides on tenancy and income flows to fractional holders.
This article is for general information only and is not legal, tax or investment advice. Token standards evolve — always confirm the current status of an ERC at eips.ethereum.org and take advice from qualified counsel in each jurisdiction before issuing tokens.


