# From NFT 1.0 to NFT 2.0: A Review of the Evolution of Non-Fungible Tokens
## 2 Background and Preliminaries
### Non-Ethereum Standards  
Other blockchains have proposed standards for NFTs. Flow proposes an NFT standard that allows users to delegate their stakes to professional operators. Flow employs the \"Upgradeable Smart Contract\", a contract that can be updated by its authors. Authors can propose changes to the code of the smart contract, and when all authors agree on its final form, it is recorded on the blockchain and becomes immutable. The non-fungible token contract defines a set of functionalities that must be included in each implementation. Contracts that implement this interface are required to implement two resource interfaces: NFT, a resource that describes the structure of a single NFT; and Collection, a resource that can hold multiple NFTs of the same type ([[https://github.com/onflow/flow-nft](https://github.com/onflow/flow-nft)]([https://github.com/onflow/flow-nft](https://github.com/onflow/flow-nft)), accessed on 23 May 2023). Another standard is called FA2, proposed from the Tezos blockchain, which includes support for single or multiple token types, enabling batch transfers and atomic swaps of the tokens. FA2 enables developers to create custom token contracts and supports arbitrarily complex interactions with tokens. In particular, FA2 can have hybrid implementations where multiple token kinds (fungible, non-fungible, non-transferable, etc.) can coexist (e.g.,in a fractionalised NFT contract). TF2 also specifies the standard of the metadata attached to a token, which includes an optional JSON string to describe each NFT. Moreover, the EOS and WAX blockchains support the deployment of NFTs. An important standard is dGoods ([[https://docs.eosstudio.io/contracts/dgoods/standard.html](https://docs.eosstudio.io/contracts/dgoods/standard.html)]([https://docs.eosstudio.io/contracts/dgoods/standard.html](https://docs.eosstudio.io/contracts/dgoods/standard.html)), accessed on 23 May 2023), an open-source and free standard for handling the virtual representation of items, both digital and physical. The standard focuses on semi-fungible tokens; however, it is flexible, so it can be used also for strictly fungible or non-fungible tokens. The non-fungible tokens also have a metadata field, represented as a JSON object, which contains the type of asset associated with the token, a description of the asset, and various URIs to link the appropriate resources. However, the two blockchains also support other standards, including Atomic Assets ([[https://atomicassets.io/](https://atomicassets.io/)]([https://atomicassets.io/](https://atomicassets.io/)), accessed on 23 May 2023), which focuses on gaming applications and reducing the cost for the end users; and Simple Assets ([[https://simpleassets.io/](https://simpleassets.io/)]([https://simpleassets.io/](https://simpleassets.io/)), accessed on 23 May 2023), which focuses on artistic NFTs. An interesting standard is the Token Metadata ([[https://docs.metaplex.com/programs/token-metadata/](https://docs.metaplex.com/programs/token-metadata/)]([https://docs.metaplex.com/programs/token-metadata/](https://docs.metaplex.com/programs/token-metadata/)), accessed on 23 May 2023) program proposed for the Solana blockchain. Its main goal is to attach additional data to fungible tokens or NFTs on Solana. It achieves this using program derived addresses (PDAs), which are addresses derived from the addresses of other accounts. NFTs in Solana are Mint Accounts with the following characteristics:  
* They have a supply of 1, meaning only one token is in circulation. * The token has 0 decimals, so it cannot be divided. * They have no Mint Authority, meaning that it is impossible to mint additional tokens. Mint Accounts are responsible for storing the global information of a token, and Token Accounts store the relationship between a wallet and a Mint Account, such as the number of tokens held by the wallet it is linked to. Via a PDA, Metaplex defines a Metadata Account that stores data useful for applications and marketplaces, such as the list of creators of a token.