Skip to content

Quick Start

Get signing in under 5 minutes. This guide walks you through creating a minimal configuration, loading keys, and connecting to a validator client.

Create a config.yaml with the minimal settings needed to run:

server:
listen_address: "0.0.0.0"
listen_port: 9000
key_sources:
filesystem:
paths:
- ./keystores
antislashing:
backend: sqlite
path: ./slashing-protection.sqlite

Create the keystores directory and add your validator keys:

Terminal window
mkdir -p ./keystores

Place your key files in this directory. Containment Chamber supports multiple formats:

  • Raw hex — plain private key files
  • EIP-2335 keystores — PBKDF2 or Scrypt encrypted JSON keystores

See the Configuration reference for details on keystore directory structure and password files.

Launch Containment Chamber with your config file:

Terminal window
containment-chamber -c config.yaml

You should see startup logs indicating the server is listening on port 9000 and your keys have been loaded.

Check the health endpoint and list loaded keys:

Terminal window
# Health check
curl http://localhost:9000/upcheck
# Expected: 200 OK
# List loaded validator public keys
curl http://localhost:9000/api/v1/eth2/publicKeys
# Expected: JSON array of loaded keys

Point your validator client at the signer. Here’s an example with Lighthouse:

Terminal window
lighthouse vc \
--beacon-node http://localhost:5052 \
--validators-dir ./validators \
--web3-signer-url http://localhost:9000