- testnet installation guide
- one liner
- monitoring
- security hardening
- backup recovery
- tooling
- skill
- contributions
Canton Network TestNet Validator Installation Guide
About Canton Network
Canton Network is the first public permissionless blockchain platform designed for institutional finance, combining privacy, interoperability, and scalability.
Key Features:
- Privacy-preserving architecture
- Atomic cross-domain transactions
- BFT consensus
- Institutional-grade security
Network Details:
- Network: TestNet
- Version: 0.8.0 (verified 2026-09-18)
- Migration ID: 1
- Purpose: Pre-production testing
Never trust a version number written in a guide, including this one. Read it from the network before installing or upgrading:
curl -s https://docs.test.global.canton.network.sync.global/info | jq .TestNet is reset roughly every three months. A change in
migration_idis a network reset, not an upgrade — see the Backup & Recovery tab.
Requirements
Hardware
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8 cores |
| RAM | 8 GB | 16 GB |
| Storage | 100 GB SSD | 250 GB NVMe |
| Network | 100 Mbps | 1 Gbps |
Software
- Docker 20.10+
- Docker Compose 2.0+
- curl, jq
⚠️ Important: Unique IP required (cannot be shared with DevNet or MainNet)
Onboarding Process
1. Submit Validator Form
Fill out the validator request form with corporate email (not Gmail/free email): https://sync.global/validator-request/
2. IP Whitelist
- Contact SV sponsor in Slack
- Provide your dedicated IP address for TestNet
- Wait 2-7 days for approval (2/3 Super Validators must approve)
3. Verify IP Whitelist
All SVs should respond with version (not TIMEOUT) = IP is whitelisted ✅
4. Get Onboarding Secret
Request from your SV sponsor in Slack (valid for 48 hours).
Installation
Step-by-Step Installation
1. System Preparation
2. Check Network Status
Note sv.version and sv.migration_id — you need both below. This endpoint is
public and needs no API key and no IP whitelisting, so it works before your
node exists.
Do not use
https://lighthouse.testnet.cantonloop.com/api/statsfor this. It now returns401 API key required. Any guide or script still polling it for the network version is broken.
3. Download Canton Node
4. Start Validator
Parameters:
-s- Sponsor SV URL-o- Onboarding secret from SV sponsor (use""after first start)-p- Party hint (validator name)-m- Migration ID (1 for TestNet)-w- Enable wallet
⚠️ Important: Always use
.digitalasset.comdomain for TestNet sv-2 — the.sync.globaldomain has a broken SSL certificate.If sv-2 is unavailable, try sv-1:
5. Check Status
Unsafe Auth Mode (Optional)
If you need to disable authentication for local scripts or monitoring (NOT recommended for production exposed ports):
⚠️ Even with
compose-disable-auth.yaml, Wallet UI validatesAUTH_URLandNETWORK_FAVICON_URLas URLs. Empty/missing values cause a Zod validation error.
Management
Stop
Restart
View Logs
Backup & Recovery
Backup Database
Monitoring
Prometheus Metrics
Canton exports metrics on port 10013. The validator image ships wget,
not curl — a curl exec fails with executable file not found in $PATH and
returns an empty body, which reads exactly like a dead metrics port:
The Monitoring tab covers which of those metrics actually indicate health, and which obvious alert rule silently never fires.
Alerting
Set up monitoring alerts for:
- Container health status
- Database availability
- Disk space usage
- Network connectivity
- Sync status
Example Telegram alert:
Security
Firewall Configuration
A Canton validator has no external ingress requirements — Splice states it does not need to whitelist any SVs or validators inbound. It needs egress on 443 to the Super Validators, which is usually allowed already. So the correct policy admits nothing from the internet except your own SSH:
Do not open 443 inbound. Nothing on a validator listens on it.
See the Security Hardening tab for the full treatment, including why a published Docker port bypasses ufw entirely.
Restrict Web UI Access
By default, wallet UI is publicly accessible. Secure it:
Step 1: Bind to localhost only (in compose.yaml nginx ports):
Step 2: Nginx uses virtual hosts + basic auth. Access via:
/etc/hostson local machine:127.0.0.1 wallet.localhost ans.localhost- SSH tunnel:
ssh -L 8888:127.0.0.1:8888 user@validator_ip -N - Open
http://wallet.localhost:8888, enter basic auth credentials
Useful Links
- TestNet Explorer: https://lighthouse.testnet.cantonloop.com/
- Documentation: https://docs.sync.global/
- GitHub: https://github.com/digital-asset/decentralized-canton-sync
- Validator Form: https://sync.global/validator-request/
- Network Status: https://sync.global/sv-network/
Troubleshooting
IP Whitelist Issues
Onboarding Secret Expired
Contact your SV sponsor in Slack to get a new secret (48h validity).
Container Restarts
Created by POSTHUMAN validators
Website: https://posthuman.digital