Use this page when you want the fastest end-to-end path. It intentionally skips deep explanation. If you need full detail, jump to Node Setup, Configuration Reference, or Operations. Time required: ~30 minutes for setup, plus registration wait time.Documentation Index
Fetch the complete documentation index at: https://docs.superform.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Confirm prerequisites that actually block progress
Make sure you have:
- a Linux or macOS host
- at least 2 vCPU, 2 GB RAM minimum / 4 GB recommended, and 20 GB disk
- PostgreSQL 15+
- Docker or Go 1.24+
- reliable HTTPS and WSS RPC endpoints for every assigned chain
- outbound TCP access to the Superform bootstrap peers on port
6690 - access to the validator runtime artifacts you plan to use
Verify network reachability
6690.Get the node runtime
- Published image (recommended)
- Build from source
Generate keys and back them up immediately
./keystore: ocr2_<id>.json for the OCR2/offchain + onchain bundle and p2p_<peerID>.json for the ragep2p identity. Keep both files at 0600 permissions and back up the keystore before continuing.Create config.toml and chains.yaml
config.template.toml and chains.template.yaml from the validator repo or your onboarding bundle before running those copy commands.Fill in:- your offchain and onchain keys if you are using direct hex
- the generated key file path if you are loading from
./keystore/ocr2_<id>.json - the
kms_key_idif you are using AWS KMS for the onchain signer - PostgreSQL connection string
- Superform bootstrap peers
- RPC endpoints for each assigned chain
- the chain-specific
ecdsa_oracle_addressandsuper_governor_addressvalues provided during onboarding
Start the node and check local health
- Published image
- Local binary
./keystore only when config.toml uses key_file_path = "./keystore/ocr2_<id>.json". Direct-hex configs do not need the extra volume, and KMS-backed setups still need the local offchain/P2P identity available to the container.Export and submit your public key bundle
keys export gives Superform exactly what they need to build the onchain config: validatorPublicKeys[] gets your onchain public key, validators[] gets the derived Ethereum address, and OracleIdentity[] gets your peer_id, offchain_public_key, and config_encryption_public_key. Never send private keys. For the full registration payload shape, validation invariants, and failure-mode debugging, use Operations.Verify onchain registration and first participation
After Superform calls Then, within the next round:If your node never reaches these logs, go straight to Operations.
SuperGovernor.setValidatorConfig(), look for:Exit criteria
- Bootstrap peers reachable on TCP
6690 -
config.tomlandchains.yamlfilled with real values -
/healthzreturns healthy -
ocr2_upis exposed in Prometheus metrics - Public key bundle submitted to Superform
-
Config loaded successfullyappears after registration - First OCR2 observation logs appear