https://github.com/obolnetwork/charon
Charon (pronounced 'kharon') is a Proof of Stake Ethereum Distributed Validator Middleware Client
https://github.com/obolnetwork/charon
blockchain consensus-layer distributed-systems distributed-validator ethereum go golang proof-of-stake
Last synced: 2 months ago
JSON representation
Charon (pronounced 'kharon') is a Proof of Stake Ethereum Distributed Validator Middleware Client
- Host: GitHub
- URL: https://github.com/obolnetwork/charon
- Owner: ObolNetwork
- License: other
- Created: 2021-09-23T15:42:01.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-04-02T22:42:52.000Z (3 months ago)
- Last Synced: 2026-04-03T07:13:13.988Z (3 months ago)
- Topics: blockchain, consensus-layer, distributed-systems, distributed-validator, ethereum, go, golang, proof-of-stake
- Language: Go
- Homepage: https://docs.obol.tech/
- Size: 37.9 MB
- Stars: 219
- Watchers: 4
- Forks: 137
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.md
- License: LICENSE
Awesome Lists containing this project
README
Charon
The Distributed Validator middleware client
This repo contains the source code for the distributed validator client _Charon_ (pronounced 'kharon'); a HTTP middleware client for Ethereum Staking that enables you to safely run a single validator across a group of independent nodes.
Charon is accompanied by a webapp called the [Distributed Validator Launchpad](https://holesky.launchpad.obol.tech/) for distributed validator key creation.
Charon is used by stakers to distribute the responsibility of running Ethereum Validators across a number of different instances and client implementations.

###### A Distributed Validator Cluster that uses the Charon client to hedge client and hardware failure risks
## Quickstart
The easiest way to test out charon is with the [charon-distributed-validator-cluster](https://github.com/ObolNetwork/charon-distributed-validator-cluster) repo
which contains a docker compose setup for running a full charon cluster on your local machine.
## Documentation
The [Obol Docs](https://docs.obol.tech/) website is the best place to get started.
The important sections are [intro](https://docs.obol.org/learn/charon),
[key concepts](https://docs.obol.tech/docs/int/key-concepts) and [charon](https://docs.obol.tech/docs/charon/intro).
For detailed documentation on this repo, see the [docs](docs) folder:
- [Configuration](docs/configuration.md): Configuring a charon node
- [Architecture](docs/architecture.md): Overview of charon cluster and node architecture
- [Project Structure](docs/structure.md): Project folder structure
- [Branching and Release Model](docs/branching.md): Git branching and release model
- [Go Guidelines](docs/goguidelines.md): Guidelines and principals relating to go development
- [Contributing](docs/contributing.md): How to contribute to charon; githooks, PR templates, etc.
There is always the [charon godocs](https://pkg.go.dev/github.com/obolnetwork/charon) for the source code documentation.
## Project Status
A table detailing Charon compatibility with upstream consensus clients and downstream validators can be found [in the changelog](https://github.com/ObolNetwork/charon/releases) of each release, in the **Compatibility Matrix** section.
## Version compatibility
Considering [semver](https://semver.org) as the project's versioning scheme, two given versions of Charon are:
- **compatible** if their `MAJOR` number is the same, `MINOR` and `PATCH` numbers differ
- **incompatible** if their `MAJOR` number differs
There are several reasons to justify a new `MAJOR` release, for example:
- a new Ethereum hardfork
- an old Ethereum hardfork is removed due to network inactivity
- modifications to the internal P2P network or consensus mechanism requiring deep changes to the codebase
The `charon dkg` subcommand **is more restrictive** than this general compatibility promise; all peers should use matching`MAJOR` and`MINOR` versions of Charon for the DKG process, patch versions may differ though it is recommended to use the latest patch of any version.