Immutable + StarkNet: Cross-Rollup NFT Liquidity

8 min readMay 25, 2022

Immutable X is the leading platform for the next generation of Web3 games — games that are actually fun to play, with robust economies built on genuine asset utility. Utility NFTs, like game assets, have traditionally struggled to achieve strong liquidity at a huge scale without compromising decentralization or security. Immutable exists to solve those problems and allow hundreds of millions of users to own their assets while playing the world’s biggest games.

Immutable X is a high-performance, application-specific StarkEx zk-rollup, which facilitates the minting, trading and transferring of NFTs and ERC-20s. So far, we’ve minted more than 50 million NFTs and processed more NFT trades than any other blockchain or L2 in April — all without compromising Ethereum security or requiring extortionate gas fees.

However, until recently, zk-rollups have had a major tradeoff: they don’t support custom smart contracts or general-purpose composability. This is not a significant hurdle for many NFT projects, which simply require standard ERC-721/ERC-20 contracts, metadata support, and the ability to trade assets. These requirements can be provided in an application-specific rollup. In fact, almost all of the largest NFT projects to date, including PFP projects like CryptoPunks, or games like Gods Unchained, could have been built using an application-specific zk-rollup, with no custom NFT contracts.

Unfortunately, games that utilize complex DeFi mechanics or composability often require custom smart contract support. Up until now, projects which require both scale and composability have been forced to move away from Ethereum and choose a less secure, non-Ethereum L1 such as Polygon or Solana. But that’s about to change.

Introducing StarkNet

StarkNet is widely regarded as one of the most exciting projects in the Ethereum scaling ecosystem. StarkNet is a zk-rollup but also allows developers to deploy custom, composable CAIRO smart contracts (and transpiled Solidity through Warp for EVM compatibility). Put more simply, if you’ve written smart contracts on L1 Ethereum or another EVM compatible chain (e.g. Polygon, BSC), you’ll be able to transpile and deploy them on L2 StarkNet with minimal changes. This will make it substantially easier for projects to migrate from L1 to L2. While StarkNet is still relatively early in its journey, it has now been live on mainnet for months and has a rapidly growing ecosystem of fantastic projects.

However, StarkNet’s more general functionality and support for custom smart contracts come at a cost. Immutable X’s application-specific nature and single sequencer allow us to have synchronous transaction confirmation and extremely high throughput. You can send one API call, wait for the response, and you’ve minted 10,000 NFTs (for no gas cost) which can be traded instantly.

By contrast, StarkNet looks much more like a traditional blockchain. StarkNet reintroduces a gas fee mechanism, as well as asynchronous transaction confirmation and other consensus-related challenges — all of which mean more decentralization, but a worse user experience. Additionally, the throughput of the system for common activities like minting and trading is reduced in comparison to the hyper-optimized StarkEx-based rollup (though StarkNet optimization is an active area of development).

Immutable X + StarkNet

Above all else, Immutable X is a platform — our job is to ensure that the next generation of web3 games have the tools they need to conquer the world. If your game requires sophisticated DeFi interactions, you’ll probably want to use StarkNet. If your game doesn’t use these complex mechanics and is more directly focused on gameplay, StarkEx will generally provide a better user and developer experience. If some games are better suited to an application-specific rollup, and some require custom contracts & composability, our products clearly need to support multiple rollups!

Some projects may even want to deploy parts of their projects to StarkNet, and parts to StarkEx. Already, it’s common practice for some projects on Immutable X to do their asset sale or token launch on L1, to take advantage of benefits in that environment. Ultimately, it’s all Ethereum — Immutable X is there as a platform, not to confine projects to a particular rollup.

To enable this, we will be offering our entire product suite (orderbook, minting tools, trading primitives, wallet, marketplace, etc.) on StarkNet, in addition to our existing application-specific rollup. Concretely, this means CAIRO contracts for minting, trading and selling NFTs, supported by an ecosystem of products that abstract the differences between NFTs on IMX-supported rollups. A portion of fees from every trade across either rollup (as long as it’s processed through our contracts/sequencer) will be shared with the $IMX staking rewards pool. For additional clarity, check out the diagram below — Immutable is the platform, not simply the rollup.

Supporting multiple rollups will increase the complexity of our product, but will allow us to create the best possible ecosystem for gaming content. Of course, there is also the liquidity and composability tradeoff of supporting multiple rollups — what we don’t want is an ecosystem of isolated rollups. Immutable will ensure that there is robust interoperability between the rollups our platform supports, through the construction of seamless and trustless asset bridges and the abstraction of these assets in our APIs. As these rollups share a settlement layer (L1 Ethereum), bridging is possible without compromising asset security.

Immutable’s unique vertically integrated strategy — offering everything from wallets to orderbooks to trading contracts to native bridges — will ensure that these cross-rollup transactions are feasible without compromising user experience or breaking the immersion of a game. To support two rollups without creating liquidity islands, players must be able to settle a transaction for a StarkEx asset using StarkNet ETH, and vice-versa.

It’s important to note that we are not adopting a blockchain-agnostic strategy, or going “multi-chain”. In general, platforms and products which have done this have offered a messy UX, fractured their liquidity, and massively slowed down their development velocity. Supporting a limited number of rollup environments, each with a clear target customer, allows us to build a larger ecosystem while retaining the UX and trustlessness that zk-rollups provide.

Another possibility we have discussed with projects who are building for true planet-scale, or who need custom rollup behavior, is the potential for dedicated rollup environments on StarkEx or StarkNet via L3 fractal scaling. Without Immutable X’s platform layer, there would be a substantial liquidity and composability tradeoff to these dedicated solutions, as assets or games might be isolated. However, when you’re building on any Immutable supported rollup, we will ensure your project retains access to the entire Immutable X ecosystem — our goal is to ensure liquidity can flow freely between these rollups without compromising UX.

If you’re still uncertain as to the best fit for your project, Immutable is able to guide projects through these decisions. We’ve built some of the space’s most successful games on L1 and L2, and assembled a team of the best NFT and gaming experts in the world to advise projects on game and economy design — please reach out to us if you’d like to know more! We’ve put together a quick diagram to summarize our current recommendations:

So, should I wait for StarkNet to launch my project? What happens if I’ve already launched my project on application-specific Immutable X? The simple answer is that as long as you’re launching on Immutable X, you’ve made the right choice. The majority of games don’t need custom smart contracts and should launch as soon as possible on Immutable’s application-specific rollup to start building a successful community. If your game doesn’t need custom contracts right now, but you think it might in future, our advice is still to launch your initial assets on StarkEx, and then add the additional functionality on StarkNet once it’s ready. Common game functions like crafting or staking can be easily implemented on StarkEx in a trusted manner, which is sufficient for most games. This dual structure is the model being pursued by games like Illuvium and Guild of Guardians.

Won’t this come with additional technical complexity? Fortunately, Immutable X makes supporting assets on multiple rollups easy. Our indexing APIs will support assets on all environments, and our bridges will allow liquidity to flow freely across compatible rollups without compromising security. Your users won’t even have to switch marketplaces — all of the current tradeoffs can be eliminated, without forcing you to build your entire project on a rollup that only partially fits your needs.

Rollout Plan

To enable projects to start integrating as soon as possible, we will be rolling out support for StarkNet in several phases:

Phase 1 — NFT Minting (Today)

The core primitives necessary to build a StarkNet NFT project:

  • Feature-rich and opinionated set of template contracts for ERC20s and ERC721s
  • Custom token standards, NFT royalty and metadata support
  • Trustless L1 <> L2 asset bridges without the ability for assets to be compromised

Phase 2 — NFT Trading (July)

The requisite trading primitives for liquid gaming NFTs:

  • Exchange Contracts (limit orders, auctions etc.)
  • Global Orderbook

Phase 3 — StarkEx Parity (Q3)

  • Support for StarkNet on all other Immutable X products (e.g. indexer, wallet, marketplace)

Phase 4 — Seamless Interoperability (Q4/Q1)

  • Seamless and trustless asset bridges between StarkEx and StarkNet rollup environments

Phase 5 — Dedicated Rollups (TBD)

  • Potential support for more custom environments provided in partnership with StarkWare (technical details and commercial considerations TBD)

We’ll be partnering with many fantastic existing StarkNet NFT projects to enhance and enrich that ecosystem. We want as many games as possible to benefit from Immutable X’s toolset, and to do this we know we need to work with all of the fantastic ecosystem developers who are already building amazing things. You will have seen some of our team at the StarkNet hackathon at DevConnect Amsterdam — we’ll be an increasingly active community member from now on.

If you’re building a game, wallet, marketplace, toolset, or anything at all which you think can improve the quality of Ethereum rollup-based games, please reach out — we’d love to chat!

Next Steps

We are incredibly excited about the future of Web3 gaming — there are so many amazing projects in development! While these projects sometimes have different rollup layer requirements, all of them have a common goal: creating a fantastic user experience, and a rich, long-term economy. That’s where Immutable comes in — we want to be the best place to build successful gaming economies and the platform which solves the challenges preventing web3 games from realizing their full potential.

If you’re as excited about the future of Web3 gaming economies as we are and would like to contribute, you can head over to our Discord / Twitter / GitHub. If you want to work on these problems directly, we’re hiring for just about every role, including CAIRO developers!