Skip to main content

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.

This is the canonical setup guide. Use it when you need the full install flow, not just the short checklist.

Before you install

Make sure you already have:
  • approval to join the permissioned validator program
  • the bootstrap peer entries supplied by Superform
  • the chain-specific contract addresses and current config version for your deployment
  • reliable HTTPS and WSS RPC endpoints for each assigned chain
  • PostgreSQL 15+
If you do not have those yet, stop and get them first. The software is the easy part.

System requirements

RequirementBaseline
OSLinux or macOS
CPU2 vCPU minimum
RAM2 GB minimum, 4 GB recommended
Disk20 GB minimum
DatabasePostgreSQL 15+
NetworkStable outbound connectivity, direct TCP 6690, and reliable uptime

Choose a deployment method

Published Image

Recommended for most operators. No Go toolchain required.

Build from Source

Use this if you need direct source control over the runtime.

Docker (build locally)

Useful when validating local code changes before deployment.

Key management rules that matter during setup

  • Generate keys once per validator identity.
  • Back up the keystore before first production use.
  • Never commit keystore/, .env, or config.toml.
  • Use AWS KMS for the onchain signing key in production if supported by your environment.
  • KMS only covers the onchain signer; the OCR2/offchain key and P2P identity remain independently managed.
  • If you use key files, keep ocr2_<id>.json and p2p_<peerID>.json at 0600 permissions.

Bootstrap peers

Both Superform bootstrap peers must be configured in [p2p].bootstrap_peers. Your node uses them to join the mesh and discover the rest of the validator set. Those peer endpoints must resolve directly to the validator hosts. Cloudflare proxying or any other HTTP proxy on the P2P port will break ragep2p connectivity. The peer IDs are expected to remain stable across normal infrastructure replacements. If Superform ever rotates one, treat that as a real config update and replace the entry before your next restart. Networking rule that matters in production:
  • outbound TCP 6690 is mandatory so your node can reach the Superform bootstrap peers and the wider mesh
  • inbound TCP 6690 is required when other validators must dial the endpoint you advertise directly
  • outbound-only can work in some NATed topologies if your announced endpoint is still reachable through another path, but do not treat that as the default production assumption
If you are behind NAT or a load balancer, set announce_addresses so other validators can dial you back correctly. Verify connectivity before startup:
nc -zv bootstrap-1.supervaults.superform.xyz 6690
nc -zv bootstrap-2.supervaults.superform.xyz 6690

Healthy startup sequence

On a clean boot you should see a progression close to:
INFO  Starting Supervaults PPS Oracle Node
INFO  Connecting to database...
INFO  Database connected
INFO  Loading keystore...
INFO  Keystore loaded
INFO  Creating OCR2 oracle...
INFO  OCR2 oracle instance created successfully
INFO  Starting OCR2 oracle...
INFO  OCR2 oracle started successfully
INFO  Oracle node started successfully

What success looks like before registration

Before Superform registers your node, you should already have:
  • a healthy process
  • successful database connectivity
  • working /healthz and /metrics endpoints
  • no local config parse errors
  • clean outbound connectivity to the bootstrap peers and your RPC providers
Once that is true, move to Operations for registration and production runbook tasks.