Stellar provides an environment to trade any assets with fast and virtually-free transactions, coupled with the ability to issue capped and non-fractionable units of an asset, these properties make Stellar an ideal blockchain for Non-Fungible Tokens (NFTs).
Many creators and NFT artists have now discovered the benefits of creating and trading NFTs on Stellar. The Litemint NFT marketplace on Stellar provides a stats page showing monthly NFT sales volume, top sales, unique items, creators. Check it out!
There are different ways to create NFTs on Stellar, and even more ways to store and address large amount of data for these NFTs. This guide is about how to use Stellar to create NFTs that can stand the test of time while maximizing interoperability with the Stellar ecosystem services and wallets.
<aside> š” NOTE The best practices described below have been developed and used to issue thousands of future proof NFTs for artists on the Litemint marketplace. These NFTs are compatible with all Stellar wallets and are traded on the Stellar Decentralized Exchange (SDEX).
</aside>
As an NFT issuer, you should think carefully about how to store your NFT meta data. Using decentralized storage is a strong requirement for future-proofing your NFTs.
ā Storing the data on-chain can be very costly and is not currently scalable on Stellar. Although it can be viable for some use cases (e.g., storing small images, NFTs from StellarQuest have successfully used this approach) it is not recommended for general use cases.
āļø Follow the guidelines developed by Protocol Labs for storing data on the InterPlanetary File System (IPFS) and addressing NFT data with MultiformatsĀ Content Identifier (CID) specification. The IPFS protocol is broadly used in the NFT industry and its adoption is fast growing with IPFS-based decentralized storage services like web3.storage andĀ nft.storage.
<aside> š” PRO TIP There are several free services for IPFS, you can create an account with web3.storage, they currently offer 1TB of IPFS storage for free.
</aside>
<aside> š” PRO TIP You can find more details on the ipfs.io website including advanced instructions to upload data to IPFS with filenames preservation.
</aside>
NFTs can represent ownership for anything. A meta data file is a must to provide extra information about your NFTs for example description, image, video, audio, name, title, terms, circular reference to the on-chain asset can be specified with meta data.
Battle-tested and practical standards have been specified for creating meta data files on Ethereum with ERC-721 tokens, follow these standards for creating your meta data files for Stellar NFTs.
Here is an example of a JSON meta data file for an NFT on Stellar with the image field containing the canonical form of link to NFT data on IPFS:
{
"name":"Stellar Punk 0100",
"description":"just came back from the Moon.. it's a temple to our Sun... hand drawn xlm network moon punks are here! always 1/1 animated edition",
"image":"ipfs://QmZM3EYeamVihFFVd5kZmG35ua19DcKT4gNh4aofaPQ2H6",
"code":"sPUNK",
"issuer":"GC64XYMQAF43THY3DSGYW7X4TA322HP3XHOQKA4FAI2736HDADTHVF2O",
}