Output Types and Features
Stardust introduces changes to the UTXO model, introducing novel output types with new unlock conditions and features.
Output Types
Basic Output
The simplest output is the basic output. At the minimum, you will need to specify an address and amount of tokens. However, you can customize this basic output to include a variety of features and unlock conditions.
NFT Output
You can mint NFTs by creating NFT outputs and sending an NFT transaction. You can define immutable metadata and a verified issuer while you create it.
Alias Output
An alias output is essentially a UTXO state machine that stores the state second layer smart contract chains and allows for two controllers, which can be rotated and create custom native tokens linked to the alias address.
Foundry Output
You can create a foundry output to control the supply of your native tokens.
Unlock Conditions
Unlock conditions have always been present in crypto. The first and clearest example is the recipient address. The stardust upgrade adds new unlock conditions that will allow you to add expirations, timelocks and specify the storage deposits.
Address
The most traditional unlock condition is the address. Addresses can only unlock outputs with their signatures.
Storage Deposit Return
Due to the storage deposit rules, you cannot create transactions smaller than the minimum deposit. However, with the storage deposit return unlock condition, you can specify an amount that will need to be returned once the funds are unlocked. This way, you can send micro-transactions as small as you want. You will only need to send the minimum deposit, which will be returned once the micro-transaction is processed.
Expiration
In Shimmer, you can define an expiration date and time for an output. This way, if the output isn't consumed by the expiration date, it will be returned to your account. This is particularly useful if you want to cancel a transfer if a deadline isn't met.
Timelock
Similar to the expiration unlock condition, you can add a timelock to outputs. This means that the output will be locked until a specific date and time.
Features
Outputs in Shimmer have new features that aim to make the Stardust ledger more flexible and give the users more than simple transactions.
Metadata
The metadata feature allows you to store any piece of data within an output. However, there are size constraints as transactions are limited in size. This is hardly an issue as you can slice data into manageable chunks.
Sender
The sender feature lets you define a sender address within the output. You could combine this feature with metadata to create verified data sources.
Issuer
The issuer feature is quite similar to the sender feature, but it is only available when you mint an NFT. Artists can use this feature to add a verified Issuer to the NFT and protect buyers and traders from counterfeits.
Tag
The tag feature is similar to the metadata features, but it aims to serve a different purpose. Though both features allow you to store data in an output, tags can be indexed. This means you could map data metadata from a verified sender.
You can find a more detailed description Stardust Ledger in the Stardust Protocol docs.