Stardust for iota.js: Digital Assets
This tutorial will show you how to user-defined native tokens, also known as Digital Assets, with IOTA's Stardust protocol in the Shimmer network using iota.js
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, protocol-defined Tokens (SMR) and, optionally, user-defined native 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 in the Stardust Protocol. This tutorial will focus on outputs that involve user-defined native tokens, a.k.a digital assets. The tutorial will also use Alias and Foundry Outputs.
A Foundry Output is an Output that controls the supply of user-defined, custom tokens, also known as native tokens.
Last but not least, you will learn how to define UTXOs to transfer native tokens among addresses.
If you want to mint Non-Fungible Tokens (NFTs), you can check out this how-to guide.
Storage Costs and Deposits
You need to take into account that both Alias and Foundry outputs need to be stored by Hornet Nodes, so there is a storage cost as with any UTXO.