The Economic OS for the internet
Important
Arc is currently in testnet, and this is alpha software currently undergoing audits.
Arc is an open EVM-compatible layer 1 built on Malachite consensus, delivering the performance and reliability needed to meet the new demands of the global internet economy.
- USDC as Gas - Pay gas in USDC for low, predictable fees on any transaction
- Deterministic Sub-second Finality - Near-instant settlement finality powered by Malachite BFT consensus engine
- Circle Platform Integration - Integrates with Circle’s full-stack platform (e.g., USDC, Wallets, CCTP, Gateway) to help you go from prototype to production faster
- (Coming soon) Opt-in Configurable Privacy - Native privacy tooling enables selective shielding of sensitive financial data while preserving auditability
- 🚀 Execution - Execution binary and configuration
- 🗳️ Consensus - Consensus binary and configuration
- More: see Arc developer docs for guides, APIs, and specs
See Installation — Build from Source for how to build and install arc-node binaries, and Running an Arc Node for configuration and startup.
Clone the repository (or pull the latest changes). This repository uses Git submodules; initialize and update them with:
git submodule update --init --recursiveTip: To automatically fetch submodules on git pull, run in the repo root:
git config submodule.recurse true
git config fetch.recurseSubmodules on-demandInstall required tools on MacOS with Homebrew:
brew install protobuf node yarn bufbuild/buf/buf
curl -L https://foundry.paradigm.xyz | bash
foundryupNote: Hardhat only supports even Node.js versions (e.g., 20.x, 22.x). Odd versions like 25.x are not supported. See Hardhat's Node.js support policy for details.
Install JavaScript dependencies:
npm installBuild the project:
make buildFormat and lint your code:
make lintThe test suite includes unit tests, integration tests, contract tests, and smoke tests.
Run tests:
# Unit tests (Rust + linting)
make test-unit
# Integration tests
make test-it
# Contract tests (Solidity)
make test-unit-contract
# Smoke tests (end-to-end validation)
make smoke
# Run all tests
make test-allGenerate and view test coverage (requires cargo-llvm-cov):
# Install cargo-llvm-cov on MacOS with Homebrew (one-time setup)
brew install cargo-llvm-cov
# Generate coverage for unit tests
make cov-unit
# Generate HTML report and open in browser
make cov-showLaunch a full local testnet with 5 execution nodes, 5 consensus nodes, plus Prometheus, Grafana, and Blockscout:
make testnetNote: If your development environment requires installing custom CA certificates, you can add them to the deployments/certs directory. They must be PEM-encoded and have a .crt extension. They will be automatically installed into the Docker images at build time.
To export a certificate from your system's keychain (macOS):
security find-certificate -p -c '<cert name>' > deployments/certs/<cert name>.crtInteract with the testnet:
# Spam transactions
make testnet-spam
# Stop the testnet
make testnet-down
# Clean up all resources
make testnet-cleanFor an in-depth look at system design and individual components, check out the Architecture Guide. For architectural decisions and their rationale, refer to our Architecture Decision Records (ADRs).
We welcome contributions! Please follow these steps:
- Format and lint:
make lint - Build:
make build - Test:
make test-unit - Check coverage:
make cov-show
For more details, see our Contributing Guide.
- Arc Network - Official Arc Network website
- Arc Documentation - Official Arc developer documentation
- Reth - The underlying execution layer framework
- Malachite - BFT consensus engine
- Local Documentation - Implementation guides and references
arc-node is open-source software, licensed under Apache 2.0, built from a number of open source libraries, and inspired by others. We would like to highlight several of them in particular and credit the teams that develop and maintain them.
Malachite - Malachite, a flexible BFT consensus engine written in Rust, was originally developed at Informal Systems and is now maintained by Circle as part of Arc. We thank Informal Systems for originating and stewarding Malachite, and their continued contributions to the project.
Reth / Paradigm - Reth is an EVM execution client that is used in Arc's execution layer via Reth SDK. We thank the Paradigm team for continuing to push the envelope with Reth and their continued emphasis on performance, extensibility, and customization, as well as their commitment to open source. Additionally, we're big fans of the Foundry toolchain as well!
libp2p - libp2p is used extensively through the arc-node consensus layer, and we thank the team for their development of it.
Tokio - Tokio is used extensively throughout the consensus and execution layers, and we are grateful to the team for their continued development and maintenance of it.
Celo - USDC is the native token on Arc and supports interacting with it through an ERC-20 interface; this "linked interface" design was first (as far as we know) pioneered on Celo, and we'd like to credit the team for devising it.
Alloy-rs - Alloy is used throughout the consensus and execution layers, and we are very thankful to the team for this excellent library.
Revm - Revm is used via the Reth SDK in the execution layer as the core EVM implementation. We thank the team for their continued development and maintenance of it.
Hardhat / Nomic Foundation - we thank the team for their continued development of the Hardhat toolchain.
Viem - we thank the team for their continued development of Viem and other libraries.