ERC-721: An Intro to the ERC721 Token Standard

Delton RhodesMarch 11, 2020


ERC-721 is a specific type of smart contract standard on the Ethereum network that enables the creation of non-fungible tokens. Although ERC-721 tokens are not mutually interchangeable (fungible) like ERC-20 tokens and other digital currencies, they have still gained massive popularity for their role in representing ownership of unique assets. ERC-721 tokens can represent everything from digital collectibles to deeds and titles of real-world property. 

According to Etherscan, there are currently 3,300+ ERC-721 smart contracts in existence. Gods Unchained Cards, the most popular ERC-721, has over 7.3 million transfers as of January 2020. 

In this article, we’ll look at how ERC-721 emerged as a standard for gaming dApps and other use cases. We’ll also examine various developer proposals to add even more improvements to ERC-721.

erc-721 token standard banner image

What Is ERC-721?

ERC-721 was created by William Entriken, Dieter Shirley, Jacob Evans, and Nastassia Sachs in January 2018 as a new token standard for the Ethereum network. This smart contract category aims to offer an alternative to the previously-developed ERC-20 standard.

Non-Fungible Tokens

All ERC-721 tokens are non-fungible, meaning that each token is completely unique and therefore cannot necessarily be exchanged at a flat 1:1 rate with any other non-fungible token. This directly contrasts with fungible goods (e.g. gold or currencies) that have commonly-accepted price points or price ranges. 

Currently, digital collectibles are the most well-established use case for non-fungible tokens. In the physical world, sports trading cards or Pokémon trading cards are probably the closest equivalent to these collectible non-fungible tokens. ERC-721 non-fungible tokens can also be used to represent other unique items. Concert tickets, real estate deeds, works of art, and a variety of other items can be represented through ERC-721 tokens.

Learn more about Non-Fungible Tokens (NFTs) here.

ERC-20 Vs. ERC-721

The biggest difference between ERC-20 and ERC-721 is the role of these standards in representing digital scarcity. 

USD Coin (USDC) is an example of an ERC-20 token on the Ethereum network. Each of the roughly 430 million USDC in circulation at the time of writing has the same commonly-accepted value of $1.00. No single unit of USDC is worth more than the other, and each unit is exactly the same as the next. 

CryptoKitties (CK) is an example of an ERC-721 token. Each of the roughly 1.8 million CK in existence (current circulation as of writing time) are worth anywhere from $0.19 to a staggering $999,000 on the CryptoKitties website. Each unit is different from the next. In this case, no two cats have the same characteristics. This means their monetary values wildly fluctuate for each unit, similar to how the perceived value of different paintings can vary for each piece. 

Why Was ERC-721 Developed?

The main motivational factor behind the development and implementation of ERC-721 was the desire for a system to track digital ownership of non-fungible tokens on the blockchain. While ERC-20 was sufficient for tracking identical tokens, it failed to offer a solution for tracking items that are individually unique.

Going From Physical To Virtual

Why is the development of ERC-721 significant? For starters, it marked another step towards tokenization, or the process of putting items that used to rely upon the physical world (e.g. the title to a car or real estate deeds) to something that could exist in the virtual world, like digital assets and tokens. 

In addition, ERC-721 made collectibles more easily accessible to anyone, regardless of their location. All that’s required is a mobile device that can run basic applications and an internet connection.

Lastly, the development of ERC-721 tokens was significant because they made it possible to complete transactions involving the transfer of assets from one person to another from anywhere on Earth in a manner of seconds or minutes, rather than days or weeks. 

Blockchain Proves Scarcity

ERC-721 provides a standard for contracts that solve many of the problems that had become rampant with physical tokens. 

For example, ticket counterfeiting was (and still is) a major problem with the rise of improved printing technologies and lack of a common tracking software for all tickets. ERC-721 eliminates this and other forms of counterfeiting because each item can be represented only once on the Ethereum network. 

Scarcity can be verified by in real-time by anyone, even non-technical users, via blockchain explorers (i.e. Etherscan). 

Ethereum Improvement Proposal 721 Overview

Before ERC-721 became an official standard, it was first proposed as Ethereum Improvement Proposal 721, or EIP 721 for short. 

Ethereum Improvement Proposals (EIPs) are an integral step in establishing standards for core protocol specifications, client APIs, and contract standards. Even the well-known ERC-20 token standard was not an established feature of the Ethereum network prior to its July 2015 launch. Instead, it was created as EIP 20 in November 2015. 

Similarly, a number of developer discussions ultimately shaped EIP 721 requirements that currently define how ERC-721 was implemented and how non-fungible tokens function on the Ethereum network.

A few important standards established in EIP 721 include the following: 

  1. Created the safe transfer function, which ensured transfers can only be initiated by the owner of a non-fungible token, the approved address of a non-fungible token, or an authorized operator of the current owner of a non-fungible token.
  2. Established a powerful set of tools for wallet, broker, and auction applications to quickly use a large number of non-fungible tokens.
  3. Implemented Standard Interface Detection (ERC-165) to expose the interfaces that a ERC-721 smart contract supports.
  4. Ensured that all ERC-721 tokens are enumerable, meaning that wallets , brokers, auctioneers, and any other users can view all non-fungible assets on the blockchain. As a result, no semi-private or private registries for ERC-721 tokens exist.
  5. Adopted commonly-used semantics already used in the ERC-20 specification. This provided backwards compatibility for popular non-fungible token dApps like CryptoKitties and CryptoPunks, which were actually established before EIP 721 was implemented.

CryptoKitties: The First ERC-721 Project

As mentioned above, CryptoKitties actually launched before ERC-721 became a smart contract standard. The early success of CryptoKitties undoubtedly played a major role in the decision by Ethereum developers to adopt EIP 721.

CryptoKitties Launches in 2017

CryptoKitties launched on the Ethereum mainnet on November 28, 2017. Just a few days later, by December 3, 2017, TechCrunch reported that about $1.3 million in ETH had been transacted for CryptoKitties. Multiple kittens sold for 50 ETH, the equivalent of $23,000 at the time. One sold for 246 ETH (then the equivalent of $113,000). 

The CryptoKitties phenomenon helped establish the legitimacy of non-fungible tokens, in general, and the ERC-721 token contract, in particular, especially for the gaming and collectibles markets.

Ethereum Blockchain Congestion Issues

By March 2018, CryptoKitties reached more than 1.5 million users. At one point, the CryptoKitties dApp accounted for as much as 30 percent of Ethereum trading volume.

This also exposed major congestion issues with the single-chain design of the Ethereum network. Like all smart contract platforms, Ethereum has just one blockchain with one peer-to-peer network for all third-party projects to share.

As a result, when CryptoKitties exploded in popularity, it didn’t just cause congestion for CK traders. Instead, it caused a traffic jam for the entire platform. The high volume of CryptoKitties ERC-721 transactions promoted an increase in transaction costs and drastically longer transaction wait times for all third-party projects built on Ethereum, including fungible assets like ETH and ERC-20 tokens. 

Eventually, the issue was minimized in 2018 as CK transactions eventually dropped by 98.4 percent within six months after launch. Nevertheless, CryptoKitties demonstrated the potential for high demand of non-fungible tokens.

Other ERC-721 Projects Followed 

Although CryptoKitties was once the most popular ERC-721 token, this is no longer the case in 2020. Gods Unchained Cards (CARD) has since easily surpassed CryptoKitties in 24 hour transfers, 7 day transfers, and total all-time transfers. 

ERC-721 use cases have expanded well beyond collectibles. For instance, services like Ethereum Name Service (ENS) and .crypto (Unstoppable Domains) are used to register and identify unique, human-readable blockchain domain names designed for the decentralized internet. ENS and UD also allow users to create shortened usernames for receiving cryptocurrency, rather than using a standard address that’s just a long alphanumeric string of random characters. This simplifies the process of sending and receiving transactions on Ethereum. 

To cite another example, Codex Record (CR) serves as a decentralized registry of ERC-721 tokens for unique assets like art, fine wines, watches and more. 

What’s Missing From ERC-721?

The release of ERC-721, as with most new standards, did not solve all problems for the development of non-fungible tokens. As time has gone on, developers have pointed out known issues with ERC-721 and proposed new EIPs that address specific limitations. Just as ERC-20 inspired the creation of ERC-721, ERC-721 has inspired new use cases and standards. 

As Rizwan Virk pointed out in a blog post, “The top 5 smart contracts (as of September, 2018) which implement ERC-721 don’t seem to have the images easily accessible (with the exception of Gods Unchained, but this produces an error when you try to access it). Having a separate server provide JSON is a level of indirection which is probably complicating this more than it needs to be.”  

Here are a few more examples of proposed improvements to ERC-721.

ERC-1412: Batch Transfers For Non-Fungible Tokens

ERC-1412 was created in September 2018, seeking to provide a way for users to send multiple tokens in a single transaction. 

With the ERC-721 token standard, transferring multiple ERC-721 tokens requires multiple transactions. This can be time-consuming for end users who want to send non-fungible tokens in groups rather than individually. This lack of functionality also leads to higher gas fees and more blockchain congestion. 

ERC-1412 proposes significant gas savings on batch transfers in some cases and works alongside the existing ERC-721 standard instead of trying to replace it. 

EIP 2309: ERC-721 Consecutive Transfer Extension 

ERC-2309 was created in October 2019. It proposes a standard for the ConsecutiveTransfer event in order to give decentralized platforms a standard way of determining ownership of large quantities of non-fungible tokens without the need to support a new token standard. 

While minting large quantities of ERC-721 tokens is efficient, transferring them is not and leads to the possibility of running out of gas or exceeding transaction timeout limits. In sum, the intended result of ERC-2309 is increased scalability for ERC-721 transactions. 

EIP 1523: Standard for Insurance Policies as ERC-721 Non Fungible Tokens

ERC-1523 was created in October 2018. It proposes the creation of a new standard for the accompanying metadata structures used to uniquely define an insurance policy. 

The goal of ERC-1523 is to enable the possibility of adoption of ERC-721 tokens for the insurance industry. ERC-1523 aims to provide a way for insurance policies to be bundled, securitized, and traded in a uniform and flexible way by various independent actors (e.g. syndicates, brokers, and insurance companies).

Non-Fungible Tokens and Komodo

Like the Ethereum ecosystem, the Komodo ecosystem also supports the creation of non-fungible tokens. However, unlike Ethereum, Komodo gives every business an independent Smart Chain on which to build those non-fungible tokens. With Ethereum, you must create your NFTs on the Ethereum blockchain and pay your gas fees in ETH, whereas with Komodo's technology, you can customize and launch a Smart Chain and then create NFTs on top of your own chain. There are no gas fees and transactions are always paid in your Smart Chain's native coin.

Following this tutorial, developers have the ability to create non-fungible tokens in five minutes or less on Smart Chains via Komodo’s Antara Framework. Check out Komodo's developer documentation for more information and in-depth guides about developing on Komodo.

If you'd like to learn more about blockchain technology and keep up with Komodo's progress, you can join Komodo's Community Portal and sign up for the monthly newsletter.

Begin your blockchain journey with Komodo today.