According to the provisions of ERC721 Contract; when minting an NFT collection we can set the maxSupply of tokens for that particular Asset/NFT say a particular Artwork. And everytime someone mints an NFT, they are assigned a tokenId and their address is stored against that tokenId in the mapping of ownerships.

That begs the question that what exactly is the diff between say token 1 and token x of the same NFT Asset? Aren't they fungible? If say me and owner of token x of the NFT choose to swap our tokens there won't be any change in their respective worth?

Considering this in mind, how should we design the NFT contracts for say Real Estate or Vehicles where virtually every other vehicle should have its own separate NFT contract (should be considered a unique Asset) with a maxSupply of just one?

1 Answer 1


The ERC721 standard differs from fungible standards like ERC20 in a number of ways:

  • Each ERC-721 token is identified by a unique token ID that is linked to a single owner. This ID distinguishes each NFT from every other token within the same collection.

  • Unlike ERC20 tokens (and indeed other standards like ERC1155), which can be divided into smaller units (like how 1 ETH can be divided into wei), an ERC-721 token is indivisible. You cannot own or transfer a fraction of an NFT; you either own the entire token or you do not own it at all.

  • Additionally, ERC-721 tokens can have metadata associated with them, which can include attributes like name, description, and image URL. This metadata can represent rare attributess in the context of PFP platforms like Bored Ape Yacht Club, but can include any data. The metadata is what often gives the NFT its value, as it can signify rarity, origin, and other unique characteristics that cannot be replicated. This is not the case with fungible tokens like ERC20, where each token is considered to be identical (fungible)

In the context of your second question - how should we design the NFT contracts for say Real Estate or Vehicles where virtually every other vehicle should have its own separate NFT contract

A solution for Real Estate would be be to implement an ERC721 compliant Real Estate contract where each each token represents ownership of a distinct House/Apartment. For cars, perhaps an ERC1155 contract may be more fitting, if you wish to have distinct categories of car make/model, and to have each model of car be grouped as a fungible asset. The design decisions are dependant on the use-case of your platform.

To be clear, if you made a RealEstate721.sol contract to represent ownership of houses/apartments, you would not need to make a new contract every time a new Real Estate NFT was minted, you would just need to mint a new token through the contract.

  • So say in my use case for vehicles if i implement an ERC 1155 contracy; I would have to make categories for every car model in existence because in my marketplace every model of car can be traded. That would be a tremendous task and poor design I feel. Theoretically it sounds fine but implementation wise; not so much I feel. Maybe i am wrong. Secondly, regarding my question on fungibility, two diff NFT tokens(token ids diff) of the same NFT contract (say NFT token of Bored Ape) aren;t they exchangable and hence of same worth?
    – Geek
    Feb 1 at 20:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.