Skip to main content

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.