Answers to frequently asked questions from Canton Network validators and application developers. This FAQ is compiled from actual support interactions and addresses the most common points of confusion.Documentation Index
Fetch the complete documentation index at: https://docs.canton.network/llms.txt
Use this file to discover all available pages before exploring further.
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 da-support@digitalasset.com
-
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 | da-support@digitalasset.com | Best effort |
| SLA (Enterprise) | support@digitalasset.com | 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