Rooch Overview

Rooch as Bitcoin Application Layer

The Rooch project aims to build the application layer of Bitcoin ecosystem. The Rooch project takes a native approach to extend the functionalities of Bitcoin blockchain and enables decentralized applications for Bitcoin assets, with the Bitcoin level security.

  • If you are a user who are looking into play with some Bitcoin applications, you may find that all your Bitcoin assets, including BTC, Ordinals or BRC20 assets, can be used directly in all the Bitcoin Apps powered by Rooch, without going through a custodial bridge.
  • If you are a developer who wants to build an app with Bitcoin assets, Rooch provides you with an easy to program environment with MoveVM and the full access to all Bitcoin states from your smart contracts, which means your app can interoperate seamlessly with Bitcoin.
  • If you are a community member who hold some assets from any Bitcoin apps, Rooch makes sure that all your assets are Bitcoin L1 native assets that can be leaped back to Bitcoin L1 at any time without permissions.


Rooch is a verfiable application (VApp) execution runtime container for Bitcoin blockchain with the following features:

  • MoveVM - Rooch embeds a full MoveVM for developers to program the smart contracts with Move Language
  • Bitcoin Full State - Rooch has the full state of Bitcoin blockchain which can work with smart contract based interpreter to identify not only plain UTXO but also Ordinals based asset protocol such BRC20
  • Scalable - Rooch is a fast execution environment that can achieve 100k peak TPS powered by parallel execuion
Rooch Architecture

Rooch is composed of the core component MoveOS as well as interfaces and tools for accessing smart contracts and states.

  • MoveOS is the component that does all the computation and state storage work.
  • MoveVM is a full function turing-complete VM that executes smart contracts written in Move Language
  • flexEmu is a general purpose MIPS emulator that generates Fraud Proof from MoveVM
  • State Storage contains the full state of Bitcoin blockchain and the application states
  • Frameworks contains the modules for interpreting the Bitcoin state and the standard Move libraries, along with customized Rooch Framework which provide rich features for a better dev exerperience


Rooch Usage

Rooch offers 2 ways of building Bitcoin applications: State Binding and CSV Assets Leaping. By combining them,

State Binding

Rooch allows the state transitions in the applications smart contracts to be binded with the Bitcoin state. With the full Bitcoin state available in Rooch, smart contracts can access and read all the Bitcoin states and interpret them to gain the information regarding a user's Bitcoin address and the assets under its control. The State Binding mechanism allows a piece of application state to be binded with the state of a certain Bitcoin UTXO, be it the plain UTXO or Ordinals UTXO.

For more details, please refer to Stackable L2 (opens in a new tab)

CSV Assets

Client Side Validation Assets (CSV Assets) are the core for enabling all innovations in the Bitcoin ecosystem. Rooch provides a metaprotocol design of Ordinals called Bitseed to enable the CSV asset leaping between Bitcoin states and the Rooch application states, making all Bitcoin assets can be leaped into any of the Rooch based Bitcoin applications in a permissionless way.

For more details, please refer to CSV Assets