How Forma Uses The Astria Stack
Eshita Nandini
Jun 26, 2024
Forma, the first sovereign rollup on the Astria Stack, officially launched in May. Built to be the destination for fully onchain NFTs, over 42,000 NFTs have been minted or bought, with a total bridge volume of over 3M TIA.
This post will explore Forma’s architecture and how the Astria Stack arms it with customizability for its specific use case, low costs, fast block times, and a user-friendly experience, which are important to guarantee for artists and collectors alike.
Powered By The Astria Stack
Before diving into Forma, let’s talk about the Astria Stack.
The Astria Stack is the development stack for building and deploying decentralized rollups on the Astria Sequencing Layer.
The Astria Stack includes all the components necessary to launch an EVM rollup, which uses the Astria Sequencing Layer to handle decentralized block building and Celestia for data availability. Rollups only need to choose how they handle execution. Because the Astria Sequencing Layer orders arbitrary data, developers can run custom rollups on it, i.e. any execution environment (SVM, Move, etc.) or a rollup written in any language.
The EVM is the first virtual machine that the Astria Stack supports because we've believed from Day 1 that there’s a need for EVM-equivalent environments within the Celestia ecosystem. The Astria Stack runs Astria-geth, a minimally modified fork of go-ethereum, ensuring a secure, Ethereum-equivalent application environment. Astria-geth serves as the user-facing component of the stack, exposing the standard Ethereum JSON-RPC endpoint. Equivalence enables developers and users interacting with an Astria-geth based rollup to use standard EVM tooling such as Foundry, Metamask, etc.
A comprehensive list of differences from upstream go-ethereum can be found here.
The Astria Stack Full Rollup Node
An Astria rollup node contains four components: Astria-geth, Composer, Conductor, and a Celestia light node. Each rollup deployed with the Astria Stack has the following transaction submission, block retrieval, and execution flow:
Write Path: Transaction Submission
Users submit transactions to the astria-geth node's mempool.
The rollup-specific Composer retrieves pending transactions from the rollup’s mempool in the order they are received, wrapped into an Astria transaction and submitted to Astria’s CometBFT Mempool. In its current form, the Composer is essentially a gas station.
The Sequencing Layer receives these transactions and orders them into a “meta block”.
The Relayer collects batches of sequencer-built blocks and posts them as a single transaction to Celestia. Once a sequencer block has been included on Celestia, it is considered finalized.
Read Path: Block Retrieval and Execution
The Conductor retrieves ordered blocks with soft commitments from the Sequencing Layer at ~2 second Astria block times and firm commitments from Celestia via its light node.
The Conductor then filters blocks for its specific rollup’s namespace.
Filtered blocks are then sent to the rollup execution client (eg. astria-geth) via Astria’s Execution API, resulting in an updated state.
For further details on Astria's architecture, check out our docs.
Forma: The First Sovereign Rollup
Forma is the first live sovereign rollup. It is powered by the Astria Stack, with Celestia underneath. Forma is decentralized and permissionless, anyone can use it for building onchain.
Forma currently operates on its own instance of the Astria Sequencing Layer (forma-net). It consists of four Astria sequencer nodes which use CometBFT for consensus. The forma-net Sequencer Relayer submits blobs to Celestia mainnet and uses TIA as its gas token. Forma will migrate to Astria mainnet once it is live.
Forma uses the Astria Stack, with modifications to Astria-geth to create forma-geth. These changes include custom EVM precompiles for handling onchain metadata, facilitating cheap minting and gas fees for the best collector experience.
Nativeminter is a custom EVM precompile used by the Forma Hyperlane implementation to mint and burn the native gas token. The alternative would have been to equip the chain at genesis with a set amount of gas tokens, and have a Hyperlane warp route contract to escrow those tokens for the bridge. The nativeminter via a precompile is a cleaner solution with better forward compatibility.
There is also the compress precompile that enables gas efficient compression of data on chain (using brotli compression algorithm). This can help reduce costs for end users to store data onchain and helps to minimize unnecessary “state bloat” from bringing more data onchain. The jsonstore precompile enables gas efficient storage of json data onchain. This also uses compression and more favorable gas costs for storage than standard EVM storage. Every address has a jsonstore which only it can write to. Read is permissionless, anyone (i.e., any other NFT) can read any other jsonstore addresses.
One of the benefits of the Forma precompiles is to enable durable onchain metadata, facilitating tools for composability. This allows users to use existing creations as primitives and opens up a platform for dynamic and expressive art that is easy to create and share.
One-Click Celestia to Forma Bridge
The Forma bridge allows users to connect their wallet and one-click bridge over TIA from Celestia Mainnet to Forma.
On the backend, TIA is bridged from Celestia to Stride via an IBC transfer. TIA on Stride is then bridged to Forma using Hyperlane in the following order after landing on Stride:
Stride Hyperlane contract is called, and TIA is locked in the contract.
Validators watch for these contract interactions and sign that the bridge request is valid.
Validators post signatures offline.
Relayers watch for validator signatures, and when quorum is met, submit the transaction and validator signatures to the Forma Hyperlane contract
Forma Hyperlane contract validates the signatures, validates that quorum is met, and mints the amount of tokens being bridged to the recipient. Bridging out is the same flow, but in the reverse order.
Signer threshold for bridging is 4/10. Bridging out is 3/3 but the team is currently looking into updating it to 4/10.
The simple bridge UX allows users to quickly start using TIA on Forma.
Looking Ahead: The Astria Stack x Forma
Astria is building the Sequencing Layer for permissionless rollups. The Astria Stack is the full development stack that developers can use to build and deploy decentralized rollups. Forma, the first live rollup on the Astria Stack, was able to spin up an EVM-equivalent rollup and implement custom builds to ensure a fast and cost-effective fully onchain experience for bridging and minting NFTs.
Since Forma’s launch, the Modularium campaign has featured an NFT collection from a different artist each week. TIA holders have eagerly been minting these NFTs, contributing to 230K TIA total transaction volume across 80K wallets. Forma's sovereignty has allowed it to offer the most efficient bridging and minting experience possible, powered by Astria.
The Astria Stack is the easiest way to use the Sequencing Layer. EVM rollups can be deployed today via the Astria CLI, with Celestia underneath. Integrations in the future will allow for more optionality when building a rollup on the Astria Stack.
Follow along on Twitter for updates or join the Astria Discord for support.
Thank you to the Forma team, Codecrafting and Kirk, for their feedback on this piece!