Monorepo for the Commonware AVS reference implementation on EigenLayer. It contains:
core: Core protocol types, validators, wire formats, and utility codebindings: Standalone crate for on-chain contract bindingsrouter: Generic service library for running an aggregation/orchestrator servicenode: Generic service library for running a contributor/operator nodeusecases: Examples and reference AVS usecases demonstrating integration with the core, router, and node librariesusecases/counter: Implementation of the example "counter" AVS usecaseconfig: Configuration files for local network, contract deployments, and test keysscripts: Helper scripts for end-to-end validation and local integration testingdocker-compose.yml: One-command stack runner (Ethereum, EigenLayer, router, operator nodes, signer)
Counter demonstrates a simple end‑to‑end AVS flow:
- BLS quorum signing (n‑of‑m) by
nodeoperators - Aggregation and on‑chain execution by
router(increments a counter contract) - Message validation and payload hashing via
corewire + validator utilities
Note
Usecase implementations (like counter) will be moved to dedicated repositories (e.g., commonware-avs-counter). This repository will converge on providing the core AVS libraries (shared protocol types, bindings, wire/validators) and base services, and is intended to serve primarily as a reusable library layer for downstream usecases.
- Docker and Docker Compose
- Git
- Configure environment:
cp example.env .envFor LOCAL mode (default), the example.env is pre-configured. You'll need to set a private key:
# Use Anvil's default test key for local development
echo "PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" >> .env
echo "FUNDED_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" >> .env- Start all services:
docker compose up -dThis will automatically build or pull the latest pre-built images (from ghcr.io) and start:
- Ethereum node (Anvil fork)
- EigenLayer contract deployment
- Signer service
- 3 operator nodes
- Router/orchestrator
- Monitor services:
# View logs
docker compose logs -f router
# Check service status
docker compose ps# Stop all services
docker compose down
# Stop and remove volumes (clean state)
docker compose down -vThis repository is dual-licensed under both the Apache 2.0 and MIT licenses. You may choose either license when employing this code.