Getting Started
What are the prerequisites for running the Canton Quickstart?
What are the prerequisites for running the Canton Quickstart?
- 8GB RAM minimum (16GB recommended)
- 4 CPU cores minimum
- 50GB free disk space
- Docker Desktop with Docker Compose 2.26.0+
- Java 17 or 21 (Java 22+ is not supported)
- Node.js 18.x or higher
- Git
How do I get access to JFrog Artifactory for Canton Network artifacts?
How do I get access to JFrog Artifactory for Canton Network artifacts?
- Submit a request via support.digitalasset.com or email [email protected]
-
Include:
- Organization name
- Email addresses for users requiring access
- Specific artifacts needed (Canton Quickstart, Canton Enterprise, Canton Utility)
- Wait for onboarding email with login instructions (typically 1-3 business days)
- Log in at digitalasset.jfrog.io
What's the difference between LocalNet, DevNet, TestNet, and MainNet?
What's the difference between LocalNet, DevNet, TestNet, and MainNet?
| Environment | Purpose | Access | Real Value |
|---|---|---|---|
| LocalNet | Development on your machine | No access needed | No |
| DevNet | Integration testing | VPN + SV sponsorship | No |
| TestNet | Staging/pre-production | IP whitelist required | No |
| MainNet | Production | IP whitelist + onboarding | Yes (Canton Coin) |
How do I get DevNet access?
How do I get DevNet access?
- Contact a Super Validator sponsor listed at canton.foundation
- They will:
- Provide VPN credentials
- Whitelist your validator IP
- Submit sponsorship information
Validator Operations
My validator shows the wrong version on public explorers - how do I fix this?
My validator shows the wrong version on public explorers - how do I fix this?
--reuse-values flag.Solution:
Upgrade without --reuse-values:--reuse-values flag can cause the old version configuration to persist even when upgrading to a new chart version.What's the difference between the SV URL and Scan URL?
What's the difference between the SV URL and Scan URL?
- Used for: Validator onboarding and sponsorship
- Format:
https://sv.sv-2.global.canton.network.digitalasset.com - Goes in:
svSponsorAddressconfiguration
- Used for: Viewing network data, exploring transactions
- Format:
https://scan.sv-2.global.canton.network.digitalasset.com - Used by: Block explorers and public-facing tools
How do I enable pruning on my validator?
How do I enable pruning on my validator?
validator-values.yaml:maxDuration or start with a larger retention:/v2/state/latest-pruned-offsets endpoint to verify pruning is running.How do I check if my validator is healthy?
How do I check if my validator is healthy?
- All pods in Running state
- Health endpoints return 200
- Connected to synchronizer
- No persistent error logs
- Receiving liveness rewards (MainNet)
What happens during a network upgrade and what do I need to do?
What happens during a network upgrade and what do I need to do?
- Check the target version at canton.foundation/sv-network-status
- Review release notes for breaking changes and migration requirements
-
For major upgrades (e.g., 0.4.x → 0.5.x):
- Take backups/snapshots before upgrading
- Update migration configuration:
- Update database name if required:
- Upgrade your helm charts or Docker images to match network version
- Verify your validator rejoins the network and resumes operation
Authentication & Security
How do I configure OIDC authentication (Auth0/Keycloak)?
How do I configure OIDC authentication (Auth0/Keycloak)?
- Set up your OIDC provider (Auth0, Keycloak, etc.)
-
Configure environment variables in your
.envfile: -
Start the validator with authentication:
- Stop validator:
./stop.sh - Restart with
-aflag:./start.sh -a - The validator operator user will be automatically migrated
daml_ledger_api scope when requested.I'm getting ACCESS_TOKEN_EXPIRED errors constantly - how do I fix this?
I'm getting ACCESS_TOKEN_EXPIRED errors constantly - how do I fix this?
- Applications → Your App → Settings
- Advanced Settings → Access Token Lifetime
- Set to 900 seconds (15 minutes) or higher
- Realm Settings → Tokens
- Access Token Lifespan → 900 (15 minutes)
What's the recommended token lifetime for validator authentication?
What's the recommended token lifetime for validator authentication?
- Access Token: 15-30 minutes
- Refresh Token: 24 hours
Transactions & Errors
What does MEDIATOR_SAYS_TX_TIMED_OUT mean?
What does MEDIATOR_SAYS_TX_TIMED_OUT mean?
- Insufficient Canton Coin - A party doesn’t have enough CC for traffic top-ups
- Validator offline - One of the involved validators is down or unreachable
- Network latency - Temporary network issues
- Check Canton Coin balances for all involved parties
- Verify all validators are healthy
- Top up CC if needed:
unresponsiveParties which tells you which party(ies) didn’t respond.Why am I getting 503 timeout errors when submitting commands?
Why am I getting 503 timeout errors when submitting commands?
- Enable pruning to reduce database size
- Increase database resources (IOPS, memory)
- Consider PQS for read-heavy workloads
- Implement retry logic with exponential backoff
What does ContentionOnSharedResources mean?
What does ContentionOnSharedResources mean?
My transaction was rejected - how do I debug it?
My transaction was rejected - how do I debug it?
- Get the trace ID from the error response
-
Search logs for the trace ID:
-
Check common causes:
- Authorization failures (party not authorized)
- Package not vetted
- Insufficient traffic (Canton Coin)
- Contract already archived
- Timeout issues
-
Use Canton Console for deeper investigation:
Quickstart Issues
The splice container keeps crashing - what should I do?
The splice container keeps crashing - what should I do?
-
Check logs:
-
Verify resources:
- Docker memory ≥ 8GB
- Docker CPU ≥ 4 cores
-
Check for configuration errors in your
.envfile
- Settings → Resources → Memory → 8GB+
- Apply & Restart
make build fails with env_file type errors - what's wrong?
make build fails with env_file type errors - what's wrong?
How long should the quickstart take to start up?
How long should the quickstart take to start up?
- First run: 10-15 minutes (downloading images, building)
- Subsequent runs: 2-5 minutes
- Available system resources
- Docker logs for errors
- Network connectivity for image downloads
Backup & Recovery
How do I back up my validator's identity?
How do I back up my validator's identity?
- Participant ID
- Cryptographic key pairs (namespace, signing, encryption)
- Authorized store snapshot
- Version
I have a node ID backup from an older version - can I still restore?
I have a node ID backup from an older version - can I still restore?
What should I back up before upgrading?
What should I back up before upgrading?
-
Database snapshots (PostgreSQL dump)
-
Persistent Volume snapshots (Kubernetes)
- Validator PV
- Participant PV
-
Node ID dump
-
Configuration files
validator-values.yaml.envfiles- Custom configuration
-
Document current state
- Current version
- Migration ID
- Database names
Performance & Scaling
How do I improve Ledger API performance?
How do I improve Ledger API performance?
-
Enable pruning to reduce ACS size:
- Use PQS (Participant Query Store) for read-heavy workloads - moves queries off the main participant
-
Increase database resources:
- Upgrade storage (gp2 → gp3 on AWS)
- Increase IOPS
- Add more memory/CPU
-
Tune connection pools:
- Implement client-side batching and rate limiting
My database is very large (350GB+) - is this normal?
My database is very large (350GB+) - is this normal?
- Enable pruning (see pruning FAQ above)
-
Start with conservative retention to reduce initial pruning volume:
- Monitor database growth and adjust retention as needed
-
Consider database maintenance:
- VACUUM ANALYZE on PostgreSQL
- Index optimization
Wallet & Canton Coin
How do I top up Canton Coin for traffic?
How do I top up Canton Coin for traffic?
How do I tap CC on DevNet/TestNet?
How do I tap CC on DevNet/TestNet?
- Access your wallet UI
- Use the “Tap” or faucet functionality
- Test CC will be credited to your wallet
My wallet balance shows 0 after upgrade - is my CC lost?
My wallet balance shows 0 after upgrade - is my CC lost?
- Wait for validator to fully resync (can take hours after major upgrade)
- Check for errors in logs:
- Verify all components are healthy
- If issue persists after 24 hours, contact support with logs
Training & Certification
Are the Daml certification courses still valid?
Are the Daml certification courses still valid?
- Focus on current documentation on this site
- Use the Canton Quickstart for hands-on learning
Where can I learn Canton Network development?
Where can I learn Canton Network development?
- Official Documentation:
-
Hands-on:
- Canton Quickstart
- Work through the quickstart end-to-end
-
Community:
- Join the Slack channels (#gsf-global-synchronizer-appdev)
- Ask questions in validator-operations for operational topics
- Videos:
Support & Escalation
How do I contact support?
How do I contact support?
| Type | Contact | Response |
|---|---|---|
| Discretionary | [email protected] | Best effort |
| SLA (Enterprise) | [email protected] | SLA-based |
| Community | Slack channels | Community |
| Forum | discuss.daml.com | Community |
- Validator ID
- Network (DevNet/TestNet/MainNet)
- Splice version
- Infrastructure details (Docker/K8s, cloud provider)
- Relevant logs
- Steps to reproduce
- Timeline of when issue started
What information should I include in a support ticket?
What information should I include in a support ticket?
-
Environment:
- Splice/Canton version
- Deployment method (Docker Compose / Kubernetes)
- Cloud provider and infrastructure details
- Database setup
-
Issue details:
- Clear description of the problem
- Expected vs actual behavior
- When the issue started
- Any recent changes made
-
Logs:
- Participant logs
- Validator logs
- Relevant stack traces
- Timestamps of errors
-
Identifiers:
- Validator ID
- Party IDs involved
- Transaction IDs (if applicable)
- Trace IDs from error messages
Network-Specific Questions
How do I move from DevNet to TestNet to MainNet?
How do I move from DevNet to TestNet to MainNet?
- Request TestNet IP whitelisting
- Update configuration:
- Change synchronizer URLs
- Update SV sponsor address
- Deploy fresh or migrate (depending on use case)
- Complete MainNet validator onboarding
- Request MainNet IP whitelisting
- Follow MainNet onboarding documentation
- Deploy with production configuration
How do I check current network versions?
How do I check current network versions?
Still Have Questions?
If your question isn’t answered here:- Search the documentation on this site
- Check the Troubleshooting Cheat Sheet for specific error solutions
- Ask in community Slack channels for guidance from other developers
- Contact support with detailed information about your issue