Hello again!
Before we jump into the second half of this article, I just want to make sure everyone has read Part One, as it provides the necessary context surrounding the launch of Shimmer that I will discuss now. As always, thank you for reading and I encourage all of you to DYOR because you can never be too informed!
OK let’s get to it…
What is Shimmer?
Shimmer is the staging network for IOTA 2.0, meant to battle-test real smart contract implementation before they go live on the IOTA Mainnet. If you are familiar with Kusama and Polkadot, you can think of Shimmer as IOTA’s Kusama; a real-stakes training ground for IOTA upgrades before they hit the multi-billion dollar IOTA mainnet.
The current IOTA network, a Directed Acyclic Graph called the Tangle, is optimized for one thing: sending digital assets from point A to point B. The launch of Shimmer presents a new era for IOTA, transforming the network into a multi-asset ledger capable of hosting layer 2 networks with their own dApp ecosystems all running in parallel. As I mentioned in Part One, IOTA smart contracts are not executed directly on the L1, developers will create their own utility chains on which smart contracts will run. These chains will be fully interoperable and composable, eliminating the need for bridges and any fees associated. So how does Shimmer, and eventually the IOTA mainnet, enable such an ecosystem? With help from a little (actually a very big) upgrade called Stardust…
Stardust Tokenization Framework
The Stardust upgrade transforms the layer 1 (L1) IOTA into the infrastructure layer for layer 2 (L2) smart contract chain and smart contract deployment I have described. Before hitting mainnet, this upgrade is making its long-awaited debut on the Shimmer network, enabling a seamless flow of digital assets and information between smart contract chains anchored to IOTA’s Tangle. The upgrade provides the foundation needed by these utility chains to interoperate with each other; to create and manage the flow of assets throughout the system.
How Accounts Work
- Each L2 smart contract chain has an L1 address (a.k.a Chain ID).
- Each chain will have an L2 ledger, consisting of L2 accounts and balances.
- Any smart contract can be the owner of an L2 account.
- The chain owner will also control an L2 account, called a common account, which is used to hold funds from the collection of fees the chain might impart, or to send funds to the L1 account.
Custom & Native Tokens
Stardust introduces the new IOTA tokenization framework, allowing the L1 Tangle base layer to act as a multi-chain bridge between each smart contract chain. Any smart contract chain can create supply-controlled custom tokens on the Tangle directly. These tokens can be minted and transferred feelessly between different smart contract chains utilizing the L1 as a trustless connector. When tokens are transferred between chains, they are wrapped and sent to the L1 for transfer, then delivered to the destination chain as their unwrapped, native version.
The creator of a native token is referred to as the issuer. The tokens are minted using Token Foundries – an output that controls the supply of the token. The Foundry can mint and melt (remove from total supply) tokens according to a preset schedule. Holders are permitted to burn tokens, removing them from the circulating supply but not the total supply.
NFTs
Non-Fungible Tokens in Stardust are, shall we say, not like other girls. In general, NFTs carry immutable metadata, but the Stardust upgrade takes this to the next level. Stardust-enabled NFTs have the following features:
- Any NFT can own other NFTs, tokens or other assets both on the base layer and on smart contract chains, transforming any NFT into a unique wallet with a permanent address.
- NFTs may include an immutably attached issuer identity upon minting.
- NFTs may include an immutably attached data set upon minting.
- Each has a unique identifier that functions as a permanent address controlled by the owner.
And in case you didn’t already guess, minting and transferring NFTs on Shimmer is feeless.
Storage Deposits
Most distributed ledger technologies (DLTs) that exist currently operate using transaction fees, borne by the user, that are used to incentivize network miners or validators to do their jobs. While fees aren’t very popular among regular users, they can serve as protection against transaction spam, also known as dust. A feeless network is much more vulnerable to bloat attacks – transaction spam issuance that clogs the network by taking up lots of data space. In IOTA’s UTXO model, if more outputs are created than are spent, the ledger state grows in size. The larger the ledger, the greater the strain put on the hardware that runs the network nodes.
Storage deposits are a dust protection mechanism.
When you create an output (execute a transaction) on Shimmer, you will need a minimum amount of base tokens (SMR) as a deposit until the transaction output is later spent (for the IOTA network, the base token would be IOTA of course). Output sizes differ depending on the amount of storage needed (more complex transactions require more storage), and the deposit is based on how much storage the output uses. Essentially, by holding an amount the base token you are renting storage space on the network. This makes bloat attacks very expensive for an attacker, just as fees do on most other networks.
Output Unlock Conditions
Another exciting feature brought to you by the Stardust upgrade is related to the storage deposits described above. Output unlock conditions enable users to set conditions related to the deposit linked to a transaction.
- Storage deposit return unlock conditions permit users to define a return condition for their storage deposit to be returned to them. For example, if you send native tokens to another user or smart contract, you can restrict the use of said tokens until the receiver has returned your storage deposit of base tokens back to you.
- Expiration unlock conditions allow time specifications for output consumption. Imagine you send your friend 2 SwagCoins but later realize that you’ve sent it to the wrong address! Expiration lock conditions allow you to set an expiration time/date by which the SwagCoins must be accepted; if they are not consumed by then they are sent back to your wallet, along with your storage deposit.
- Timelock unlock conditions enable outputs to be unlocked at a specified time. Users can set a deadline for smart contract requests, at which point the contract will execute the request made.
The Stardust upgrade is a huge milestone for the IOTA/Shimmer developers and community members. The extent of the functionality it yields for Shimmer and IOTA is monumental. If you are interested in learning more, I highly recommend reading the full article released by the foundation.
The SMR Token
The SMR token is the base, native token of the underlying layer 1 Shimmer network. All layer 2 smart contract chains that launch on Shimmer have access to SMR through their L1 address account. As previously mentioned, SMR will also be used for storage deposits on transaction outputs.
In the future, when IOTA 2.0 makes its debut on Shimmer, holding SMR will also give you Mana – a Sybil protection and congestion control system used in GoShimmer’s decentralized consensus mechanism. You can review Part One if you need a refresher on how Mana works.
Tokenomics
SMR was fairly distributed to IOTA stakers during the three-month staking period in Q1 of 2022. Staking was performed using the IOTA-native Firefly wallet (more below). Currently, SMR is available to trade on Bitfinex and Bitforex.
The future of SMR will include governance decisions for holders, and whatever yield opportunities are created by the builders entering the Shimmer ecosystem.
Firefly Wallet
The Firefly wallet is a user’s entry point into the IOTA/Shimmer ecosystem. The dashboard is sleek and very easy to use, to which I can personally attest. It is available on Windows, Mac and Linux and also supports Ledger Nano X and Ledger Nano S via USB connection.
For in-depth, comprehensive how-to instructions, check out IOTA’s Firefly user guide.
What’s Next?
Now that Shimmer has successfully launched, the community awaits smart contract chain deployments with baited breath. Luckily the wait won’t be too long; Shimmer has already announced the upcoming launch of the EVM-compatible ShimmerEVM: the first smart contract chain anchored to the Shimmer network. An early public test chain of ShimmerEVM already exists for developers to experiment with and test their integration before the official launch.
Resources
Deep dive into the Stardust upgrade
Network and token launch announcement
List of registered ecosystem dApps planning to launch on Shimmer