Why ERC721 is better than ERC20 to represent a real estate property on ETH blockchain

We recently built a solution to help real estate professionals to record a sale of property and title ownership on the blockchain. See: Using blockchain for title registration in real estate industry

We represented each property via an ERC20 token. Note that each ERC20 token is exactly the same just like how each $1 bill are same – same value, same look, and feel. In order to maintain which token represents which property, we maintained a mapping of address to the owner who currently owns the token:

propertyTransferDetails[_propertyAddress].push(PropertyTransferInfo(Owner(_ownerName, _ownerEmailAddress, _to), ""));

The PropertyTranferInfo is a struct as follows:

struct PropertyTransferInfo {
Owner owner;
string deedURL;


struct Owner {
string name;
string email;
address walletAddress;

Every time a user wants to transfer a property, we would look for the current owner and transfer 1 token out of his wallet and update the information in our contract.

This has two issues –

  1. In the real world, every property is different – shape, size, address, value. ERC20 does not allow to associate properties with a token.
  2. If a user uses a system other than our engine to transfer token, we would lose track of which token belongs to which property.

Enter ERC721. Its a specification to create a token that can have properties associated with it. See technical specifications for ERC721: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md

We can now associate address (and eventually other properties) with the address itself and each token is unique to a property. The DApp built previously still works as is. If you are interested to see all this in action and like to get a custom software solution built, please reach out to us at blockchain@jalantechnologies.com


1 Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s