Stardust for iota.js: NFT Transactions
This tutorial will get you acquainted with the structure and functionality of NFT Transactions in IOTA's Stardust protocol in the Shimmer network using iota.js primitives to issue transactions that involve NFT Output.
Introduction
Starting from Chrysalis, IOTA is a UTXO-based (Unspent Transaction Output) Ledger. Each UTXO, also known as Output, has an associated number of tokens that determines its value. Thus, the permanent data on the ledger is composed of a set of records (Outputs) that can be unlocked by the owner of its associated address, i.e., the one who knows the address' private key.
There are different output types. This tutorial series will only focus on
NFT Outputs known as INftOutput
. NFT Outputs are
generated by transactions that unlock and consume already existing Outputs. When a transaction consumes them, these
Outputs turn into Inputs and generate new Outputs, typically another NFT Output with the same NFT ID but in a different state. At pruning time, consumed Outputs will be removed by Nodes.
Storage Costs and Deposits
You need to take into account that NFT Output, as any other UTXOs, need to be stored by Hornet Nodes, so there is a storage cost.