ERC-6065 Real estate token
Review · NFTs & multi-token · created 2022-11-29
A standard for putting real-world real estate onto an ERC-721-based NFT. It carries the operating agreement hash, property identification information, debt and foreclosure status, and the administrator address, so that property rights transfer together with the NFT.
Why it is needed
Ownership of Ethereum tokens is settled by the consensus of on-chain validators, but ownership of real estate is backed by legal contracts, property law, and courts. As a result, with existing asset-linked ERC-721 tokens, there is no guarantee that legal ownership of the underlying real-world asset transfers along with the token when it is sent to someone else. In the United States, ownership changes are sometimes recorded on paper at the county recorder's office, making it practically impossible to update this manual record every time an NFT trades. Furthermore, if a dispute arises, the matter needs to be documented so that a court can interpret and enforce ownership. This standard attempts to bridge this gap by attaching immutable information identifying the specific property and a hash of the legal rights documents to the token, presenting a common structure that lets rights to the property transfer atomically, that is, together in one step, with the NFT transfer.
What to implement
event Foreclosed(uint256 id);: The event that must be emitted when an asset is foreclosed.function legalDescriptionOf(uint256 _id) external view returns (string memory);: Returns the legal description of the property taken from the physical title document. Immutable data.function addressOf(uint256 _id) external view returns (string memory);: Returns the street address of the property. Immutable data.function geoJsonOf(uint256 _id) external view returns (string memory);: Returns the geographic coordinates of the property in GeoJSON format. Immutable data.function parcelIdOf(uint256 _id) external view returns (string memory);: Returns the parcel ID used by local authorities to identify the property. Immutable data.function legalOwnerOf(uint256 _id) external view returns (string memory);: Returns the legal owning entity named on the physical title. Immutable data.function operatingAgreementHashOf(uint256 _id) external view returns (bytes32);: Returns the immutable hash of the legal document (operating agreement) that contains the rights and terms of use for the property.function debtOf(uint256 _id) external view returns (address debtToken, int256 debtAmt, bool foreclosed);: Returns the token representing debt, the debt amount (negative means credit), and whether the physical asset has been foreclosed.function managerOf(uint256 _id) external view returns (address);: Returns the administrative address that may hold additional on-chain or off-chain permissions over the NFT or the physical asset.
In depth
ERC-721 inheritance and five components
This standard inherits from ERC-721 and keeps its transfer and approval logic unchanged. It also inherits the ERC-721 Metadata standard, which handles name, symbol, and metadata URI, so existing NFT marketplaces and services can handle it directly. The token has five components: ERC-721 inheritance, the immutable hash of the operating agreement (operatingAgreementHashOf), the property's unique identifiers (legal description on title, street address, GIS coordinates, parcel/tax ID, owning entity on title), the debt value and foreclosure status (debtOf), and the administrative address (managerOf).
operatingAgreementHashOf: an immutable hash of legal rights
The immutable hash of a legal document issued by the entity that owns the property. The operating agreement is a unique document containing the rights, clauses, and terms for that property. The hash must be immutable so that anyone receiving the token later, or any integrator, can trust the legitimacy and enforceability of those rights. Once the NFT is transferred, the new owner can immediately exercise these legal rights. To change the legal structure, rights, or terms, the existing token must be burned and a new one issued with a new hash.
Five property unique identifiers
legalDescriptionOf is the legal description taken from the physical title document, addressOf is the street address, geoJsonOf is the geographic coordinates in GeoJSON format, parcelIdOf is the parcel ID used by local authorities, and legalOwnerOf is the legal owning entity named on the verifiable physical title. All five values must be immutable so that the property's identity cannot change later, giving NFT holders confidence even if a dispute arises. In particular, legalOwnerOf lets anyone verify the legitimacy of off-chain ownership and the legal contract. The source notes that this verification could in the future be automated in combination with something like Chainlink Functions.
debtOf: debt and foreclosure status
debtOf returns the address of the token representing debt (debtToken), the debt amount (debtAmt), and whether foreclosure has occurred (foreclosed). A positive value is debt owed against the property, and a negative value is a credit the NFT owner can claim. The administrator can bill necessary real-world costs, such as property tax, repairs, or maintenance, through this value, and can issue credits if there is a rental income-sharing agreement. The source recommends using only a single type of debt token. If foreclosed is true, the physical asset has been separated from the NFT, and the NFT is no longer backed by the asset. A Foreclosed event must be emitted when foreclosure occurs, and integrating contracts must reflect this status in calculations such as valuation. How the value is updated is left to the implementer; the standard only unifies how it is represented and read.
managerOf: separating ownership from administrative authority
managerOf returns an Ethereum address that, without being the owner of the NFT, may hold additional on-chain or off-chain permissions over the NFT or the physical asset. For example, while a contract such as a lending protocol holds the NFT, this lets the depositor's address still take actions on the property through another integration such as an administrator portal. The standard does not require a specific implementation of the administrator role, only the value itself, and in many cases the managerOf value is the same as the NFT owner's address.
The Administrator and the legal structure
Because verifying the state of a physical asset is difficult and costly, a trusted party, the administrator, is needed to be responsible for ensuring the on-chain NFT accurately reflects the physical asset. When the administrator issues a legally binding digital representation, rights can transfer atomically each time the NFT changes hands, without changing the legal owner on the title, while also handling payment and filing procedures. In the reference implementation's US-style structure, a parent company places a bankruptcy-remote LLC under each property, that LLC owns a DAO LLC named on the title and deed, and the DAO LLC issues the NFT and the operating agreement. Even if the administrator goes bankrupt or dissolves, the NFT owner retains the right to a transfer of the DAO LLC or a distribution of sale proceeds. A token implementing this standard must have a legal entity to carry out off-chain duties, but this particular structure is not mandatory.
Proposal status: Review
This proposal's status is Review, meaning it is still under review and its content may change. The reference implementation is also a work in progress, and a blocklist feature to freeze assets held by a compromised address has yet to be implemented.
Things to watch out for
- Confirming immutability of identifiers and the agreement hash: Integrating protocols are recommended to confirm that the property's unique identifiers and the operating agreement hash of the NFT they intend to integrate are immutable. These values must be immutable to guarantee legitimacy to future assignees.
- Checking the debtOf value: To accurately assess the value of this token, checking the debtOf value is recommended. This is especially important for applications that lend against assets under this standard.
- Checking foreclosure status: Checking the foreclosure status to confirm whether the token is still backed by the physical asset it was originally linked to is recommended.
- Time delay before irreversible actions: To prepare for the possibility of asset freezing if a hacked NFT is deposited into a protocol, a time delay can be imposed before taking irreversible actions. Asset freezing is not mandatory and depends on the administrator's implementation.