Launch of the ShimmerEVM Public Smart Contract Chain
Start Using Smart Contracts Today on Shimmer
TL;DR:
Today, fully EVM-compatible smart contracts become available in the public ShimmerEVM chain. The ShimmerEVM chain is the first chain in a multi-chain environment, allowing horizontally scalable, fast, secure, and parallel processing of smart contracts as well as bridgeless L2 cross-chain value transfers. Furthermore, it enables full modularity and composability of smart contracts even between chains, prevents parasitic value extraction through MEV, and comes with a free Random Number Generator (RNG) that can e.g. be used for oracles. At the same time, it is one of (if not the) the most energy-efficient ledgers in existence. The public ShimmerEVM will kick-start smart contracts in the IOTA ecosystem, tapping into a community that has so far been unable to leverage this technology.
When we began our journey to support smart contracts on Shimmer and IOTA several years ago, we devised a plan for a permissionless multi-chain solution anchored to either Shimmer or IOTA. This solution utilized the DAG as the foundational layer for cross-chain communication. It addressed the pain points prevalent on other smart contract platforms while also enabling IOTA-based assets to function on any of these chains.
With this vision, we initiated the IOTA Smart Contracts (ISC) project. Starting with a modest team of just two developers, we experimented with different prototypes across multiple protocol versions. Over time, our team expanded to over 10 members, evolving into a mature and domain-expert-driven group. We collaborated extensively with developers launching dApps and with the broader community. Our collective efforts have brought us to this significant milestone: the launch of the first public ISC chain on a network with an actual token. Welcome to the debut of ShimmerEVM.
Running on Shimmer, the staging network for IOTA, ShimmerEVM serves an important purpose: to validate that what we've built over the years functions as intended, and to bring utility to the Shimmer network. We've collaborated with launching projects to ensure we are as compatible with other EVM technologies as possible while preserving the unique properties that set us apart. With this initial chain established, we are validating our solution and setting the stage for more chains to launch in a permissionless manner, a concept that has been integral to our original design from the outset.
The Shimmer network as the foundational layer
Shimmer is the IOTA ecosystem’s staging network. Any core protocol improvements and feature upgrades are made available on Shimmer first, where they are tweaked, battle-tested, and perfected before being integrated into the IOTA network. If you haven’t yet, you can read more about it here.
Because the Shimmer network always gets the latest features, dApps will develop and implement their products on Shimmer first, before launching on IOTA. Shimmer is the perfect environment to develop dApps and test out new functions to bring them to perfection.
The purpose of a staging network is to battle-test and strengthen what is deployed on it. In the case of ShimmerEVM, the inaugural ISC chain, this signifies the debut of our smart contract software on a platform other than a testnet. Please bear this in mind when participating in the network. Despite all the testing we've conducted, the software hasn't been fully battle-hardened. Adjust your expectations and exposed risk accordingly, and enjoy.
The features of ShimmerEVM
ShimmerEVM runs on the latest version of ISC and therefore inherits all its included features. ISC is a heavily maintained product with ever-improving features that, once available, will be brought to Shimmer and ShimmerEVM first. We’ve extensively covered these features in previous blog posts, but here’s a summary of the most important features applying to ShimmerEVM:
- EVM Compatible: Run your contracts from other chains with minimal to no adjustments
- Extended EVM functionality: So-called ‘magic contracts’ allow you to interact with native assets and NFTs from Layer 1, utilize native randomness, and communicate with other chains anchored to Shimmer by simply calling functions on these pre-deployed contracts.
- MEV protection: Our leaderless consensus ensures random ordering of the transactions in a block to better protect you against sandwich attacks and other MEV techniques.
- L1 Native Asset support: Effortlessly send your SMR tokens (and in the future NFTs and custom Native Assets) to the ShimmerEVM through Firefly, no special bridge needed
- Node support: Next to the validator nodes, ShimmerEVM also supports (pruning) access nodes and (non-pruning) archive nodes allowing qualified node operators from projects to run their own nodes to their demands on request.
- All the other good stuff ISC comes with: We also offer a custom API, metadata functionality, a CLI, a set of core contracts including account and governance functionality for the chain, and much more. Please refer to the Wiki for more information on everything supported by ISC.
Getting started
To use the ShimmerEVM you need certain connection details. Here’s an overview:
- Network name: ShimmerEVM
- JSON-RPC Endpoint: https://json-rpc.evm.shimmer.network/
- Websocket JSON-RPC Endpoint: wss://ws.json-rpc.evm.shimmer.network/
- Explorer URL: https://explorer.evm.shimmer.network/
- Chain ID: 148
- Token name: SMR
- wSMR Contract address: 0xBEb654A116aeEf764988DF0C6B4bf67CC869D01b
- EVM Toolkit (withdraw back to Shimmer L1): https://evm-toolkit.evm.shimmer.network
The easiest way to get started on ShimmerEVM is by having Metamask installed and clicking on “Add to Metamask” at the bottom of the renewed explorer page.
Once connected, you can easily use the latest version of the Firefly wallet to send SMR from the Shimmer network to the ShimmerEVM destination network that was added in the latest release.
As already mentioned: ShimmerEVM is a first of its kind. It’s new and unproven, not battle-hardened. The chain will have to prove itself and the ISC platform over time while running, so be mindful of this and do not use the chain with large amounts of tokens right from the start.
Chain details and governance
To kickstart development, we’re launching ShimmerEVM as a public chain, guaranteeing the highest possible QoS, availability, and reliability. But over time, the IOTA Foundation will hand over the reins of the ShimmerEVM chain to the community. To decentralize the chain further a supermajority of validators will gradually be given to the community.
Governance of the chain is currently also with the IOTA Foundation. This allows us to easily call management functions to adjust fees if needed or rotate a set of validators which could be especially important in the first weeks or months of ShimmerEVM. The chain governance is also meant to transition over time to either a validator committee-based consensus on the chain governance or controlled by a yet-to-be-developed DAO smart contract.
What’s next?
With ShimmerEVM and the first major release of ISC completed, the team will focus on the following:
- Monitoring and improvement: The ShimmerEVM launch will provide invaluable data for improving the ISC software. We will closely monitor the network and make further improvements based on those learnings.
- Developer Experience: While this version of ShimmerEVM/ISC contains all the features we want to deliver, certain aspects can always be improved. Feedback from testing has shown that, while powerful, our magic contracts are quite low-level to work with, making it harder for developers to use them in practice. We are looking at abstracting the most common use cases in functionality that is easy to use and understand for any smart contract developer.
- Evaluation: With these deliverables out of the way, after a multi-year build-up it’s time to evaluate and learn. What went right, what could be improved, what are other similar projects doing and how has the space evolved compared to ISC? This evaluation will help decide what to work on and include in the next release.
- Decentralization: As mentioned above, our aim is to decentralize ShimmerEVM as much as possible over time. This will need both development and onboarding work from the participating future validators.
If you are a builder and want to participate in ShimmerEVM we highly recommend that you join our Touchpoint Builders Program for support and collaboration with other projects and developers.