Skip to main content

Tokens & NFT 2.0

Useful Tip

The guide section will walk you through creating and deploying an LSP7 token or an LSP8 NFT on the LUKSO Testnet.

Check the profile explorer to browse the deployed digital assets.

Introduction

The current standards representing fungible and non-fungible tokens (NFTs) are limiting the NFTs and token industry as they lack standardization and many powering features.

The lack of standardization can be seen through each NFT or token standard implementing its own interface with its own function names. This leads to having multiple token contracts deployed on networks, implementing different interfaces, and being non-interoperable between each other.

As for features, these standards are just representing incremental tokenIds without proper metadata, asset representation, standard interaction between sender and receivers, and no security measurements to ensure safe asset transfers.

Tokens & NFT 2.0 is a collective name for the new token and NFT standards LSP7-DigitalAsset and LSP8-IdentifiableDigitalAsset. These replace ERC20 and ERC721, which you would usually use on other networks.

Tokens & NFT 2.0

StandardDescription
LSP4 - DigitalAssetMetadata The standard used by both LSP7 & LSP8 to provide proper metadata to the asset with standard ERC725Y Data Keys.
LSP7 - DigitalAssetSimilar to ERC20 Standard, LSP7 represents fungible tokens standard with proper metadata, more secure transfers and more interactive transfer.
LSP8 - IdentifiableDigitalAssetSimilar to ERC721 and ERC1155 Standard, LSP8 represents non-fungible tokens (NFTs) standard with proper metadata, more secure transfers, more asset representation and more interactive transfer.

Tokens & NFT Standards LSP4, LSP7 and LSP8

The functions of the LSP7 and LSP8 standards are overall simpler, more straightforward and unified, with a similar function names for both LSP7 and LSP8.yarn

Both functions in LSP7 and LSP8 have the same name (transfer) to transfer assets. This is easier compared to ERC20 and ERC721 that use different naming (transfer for ERC20 vs transferFrom in ERC721 to transfer tokens as the token owner).

Looking at LSP7 & LSP8 we have unified transfer(...) & transferBatch(...) functions in both contracts. Those functions contain a hook which is executed conditionally and can be used in any of the above cases.

References