Skip to content

informalsystems/emerald

Repository files navigation

Emerald

banner

Telegram Chat Documentation license

Emerald is a modular framework for building decentralized networks of trust. Designed with simplicity at its core, it enables users to deploy reliable, easy to operate, high performance, EVM-compatible networks.

Important

Emerald is under active development and should be used at your own risk. The software has not been externally audited, and its security and stability are not guaranteed.

Why Emerald

Society runs on networks of trust: shared expectations and reputations that let us coordinate and innovate at scale.

Blockchains strengthen these networks with transparent rules and auditable operations. Bitcoin enabled global value transfer. Ethereum made trust programmable. But their large-scale governance makes it hard for institutions to define specific trust rules.

Emerald empowers institutions to build networks of trust with tailored governance and compliance logic while retaining the reliability and interoperability of decentralized systems.

Architecture

Emerald's architecture is intentionally clean and composable, consisting of three key components:

  • The Malachite consensus engine
  • An Ethereum execution client (currently Reth) integrated via Engine API
  • A proof-of-authority (PoA) module

This modular design keeps the system easy to understand, maintain, and extend while providing full EVM compatibility, predictable PoA consensus, and simple deployment and operation.

For more details, please refer to the Architecture section of the docs.

Getting Started

Prerequisites

  • Rust toolchain (use rustup for easiest setup)
  • Foundry (for compiling, testing, and deploying EVM smart contracts)
  • Docker (optional, for local deployments)

Installation

git clone https://github.com/informalsystems/emerald.git
cd emerald
make build

Deploying a Local Testnet

For instructions on how to deploy a local Emerald testnet, please refer to the Deploy Local Tesnet section of the docs.

Launching a Production Network

For instructions on how to launch an Emerald network in production, please refer to the Launch Production Network section of the docs.

Performance Evaluation

Emerald delivers high performance with sub-second block times, providing the low-latency confirmations needed for demanding institutional applications. In benchmarking, Emerald reaches approximately 9,200 TPS peak and 8,300 TPS sustained. Its consensus engine, Malachite, can achieve up to 71.7k TPS without an execution client, demonstrating both the strength of the underlying consensus layer and the clear potential to further optimize Emerald.

For more details, please refer to the Performance Evaluation section of the docs.

Contributing

Contributions are welcome! Please open an issue or submit a PR. For large changes, we recommend discussing them in an issue first.

Acknowledgements

Emerald is built on top of the work in malaketh-layered, owned by Circle (see here a complete list of changes). Their implementation provided a strong foundation for Emerald, and we are grateful for the contributions and engineering effort behind the project.