This project implements the state transition function for a sovereign rollup that uses Celestia for consensus and DA. It uses Aleo's SnarkVM to maintain the state of the rollup, also enabling private transfers. This is a proof of concept of building highly customizable and modular rollups on Celestia using new VMs.
This project uses the Leo language, compiled down to Aleo, to run private ZK programs inside the SnarkVM. The SnarkVM is then used as the VM for the rollup. Using the Sovereign Labs rollup framework, the token program as part of the SnarkVM is used as the state transition function for the rollup, and is used to advance one state root to the next.