GitPedia

Malachite

Flexible BFT consensus engine in Rust

From circlefin·Updated June 22, 2026·View on GitHub·

Flexible BFT Consensus Engine in Rust State-of-the-art implementation of Tendermint The project is written primarily in Rust, distributed under the Apache License 2.0 license, first published in 2023. Key topics include: bft, consensus, malachite-engine, rust, tendermint.

Latest release: v0.5.0
August 1, 2025View Changelog →
<h1 align="center"> <img src="https://raw.githubusercontent.com/circlefin/malachite/refs/heads/main/assets/banner.png" alt="Malachite" width="2400" align="center"> </h1> <h4 align="center"> Flexible BFT Consensus Engine in Rust<br/> State-of-the-art implementation of Tendermint </h4>
<div align="center">

Build Status
Quint tests
MBT tests
Code coverage

Apache 2.0 Licensed
Rust Stable
Rust 1.82+
Quint 0.22

Telegram Chat

Documentation

</div>

About

Malachite is a Byzantine-fault tolerant (BFT) consensus engine implemented in Rust.

The Malachite team from Informal Systems has officially joined Circle, bringing their expertise and IP to help build Arc, an open Layer-1 blockchain purpose-built for stablecoin finance. Visit arcnetwork.xyz for more information.

Malachite /ˈmæl.ə.kaɪt/ is pronounced as follows: "Mala" (like in "malady" or "maladjusted") + "kite" (like the flying toy).

[!IMPORTANT]
Malachite is alpha software and under heavy development.
The software is provided "as is" and has not been externally audited; use at your own risk.

Goals

Malachite aims to empower developers building decentralized systems—including sequencers, social networks, and Layer-1 blockchains—by offering a flexible, reliable, and high-performance BFT consensus engine. It now serves as the consensus foundation for Arc, a new purpose-built blockchain developed by Circle.

Features

Tendermint as a Library

Bundled with Malachite comes a state-of-the-art implementation of the Tendermint BFT consensus algorithm.
Tendermint is an optimistically responsive consensus algorithm, and therefore exhibits high-performance, and has found adoption in many decentralized systems through its implementation in Go as part of CometBFT.

Design

Key design decisions in Malachite are heavily inspired by lessons and experiences of maintaining CometBFT throughout the years.
Malachite addresses numerous points of technical debt in the design of consensus engines, resulting in a lean, flexible, and reliable solution that performs at the highest level.

Reliability and Performance

Parts of Malachite were co-designed with their formal specification and model checking, notably for the Tendermint algorithm, which improved the confidence and reliability of this core library.

Early experiments with Malachite show an average finalization latency of 780 ms at a scale of 100 validators with 1MB blocks.
Depending on the setup, Malachite can clear up to 2.5 blocks per second or finalize up to 13.5 MB/s (around 50,000 transactions per second).

Future performance benchmarks will be maintained and published as part of Arc’s open-source documentation at a future date.

Overview

Repository

The repository is split into three areas, each covering one of the important aspects of this project:

  1. code: Contains the Rust implementation of the Tendermint consensus algorithm, split across multiple Rust crates.
  2. docs: Contains Architectural Decision Records (ADRs) and other documentation, such as the 2018 paper describing the core consensus algorithm.
  3. specs: Contains English and Quint specifications.

Crates and Status

[!NOTE]
The actual name of each crate is prefixed with arc-malachitebft-.
For instance, the crate denoted by core-consensus below can be found on crates.io as arc-malachitebft-core-consensus.

Core consensus algorithm

Crate nameCrateDocs
core-consensuscore-consensuscore-consensus Docs
core-drivercore-drivercore-driver Docs
core-state-machinecore-state-machinecore-state-machine Docs
core-typescore-typescore-types Docs
core-votekeepercore-votekeepercore-votekeeper Docs

Consensus engine

Crate nameCrateDocs
app-channelapp-channelapp-channel Docs
appappapp Docs
codeccodeccodec Docs
configconfigconfig Docs
discoverydiscoverydiscovery Docs
engineengineengine Docs
metricsmetricsmetrics Docs
networknetworknetwork Docs
peerpeerpeer Docs
protoprotoproto Docs
syncsyncsync Docs
walwalwal Docs

Building with Malachite

As a guiding point to understand how to use Malachite, please read ARCHITECTURE.md.

You can also check out the examples for a more in-depth experience.

Contributing

If you would like to contribute to the Malachite open-source codebase, please see CONTRIBUTING.md.
We invite all contributors.

Requirements

Acknowledgements

Malachite would not have been possible without the kind support of the Starknet ecosystem.
We are grateful to StarkWare Industries for prompting the initial discussions of building Tendermint in Rust, to Starknet Foundation for funding and fostering a collaborative environment, and to both of these organizations plus numerous others in the ecosystem for their constructive feedback on earlier designs of Malachite.

We are also thankful for the collaboration with Farcaster.
This led to further refinements and maturing of the Malachite codebase, and their approach to building complex systems and shipping valuable products is an inspiration for us.

We are grateful as well for our collaboration with the Shielded Labs team.
Their Crosslink system, a PoS + PoW hybrid design for upgrading Zcash, has helped deepen our understanding of BFT system design and push the limits of what Malachite is capable of supporting in terms of novel decentralized systems.

These collaborations reflect work completed prior to the Malachite team joining Circle.

License

Copyright © 2025 Circle Internet Group, Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from circlefin/malachite via the GitHub API.Last fetched: 6/23/2026