The Wallet Gateway supports multiple signing providers that handle cryptographic key management and transaction signing. Each provider has different use cases and security characteristics.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.
Available Providers
Wallet Gateway (Internal)
The Wallet Gateway provider stores private keys directly in the signing store database. This is suitable for development and testing but not recommended for production use cases where security is critical. Configuration: This provider is automatically available when asigningStore is configured in the Gateway configuration. No additional setup is required.
Use Cases:
- Local development
- Testing environments
- Proof-of-concept applications
[!IMPORTANT] Private keys are stored in the database. If the database is compromised, all keys are at risk. Use only in non-production environments.
Participant-Based Signing
The Participant signing provider uses Canton’s participant node for signing transactions. The participant maintains the key material and handles all cryptographic operations. Configuration: This provider is always available and requires no additional configuration. You simply select it when creating a party. Use Cases:- Enterprise deployments where the participant node manages keys
- Scenarios where key management is handled by the infrastructure
- Production environments with dedicated participant nodes
Fireblocks
Fireblocks is a third-party crypto custody service provider that offers enterprise-grade key management and signing services. Setup:- Complete steps 1-3 from the Fireblocks signing documentation
-
Supply an environment variable named
FIREBLOCKS_API_KEYcontaining your Fireblocks API key (from theAPI User (ID)column in the Fireblocks API users table).
- Enterprise deployments requiring HSM-backed key storage
- Compliance-sensitive applications
- High-security production environments
Blockdaemon
Blockdaemon provides signing services as part of their infrastructure offerings. Configuration: Set the following environment variables:BLOCKDAEMON_API_URL- The base URL for the Blockdaemon APIBLOCKDAEMON_API_KEY- Your Blockdaemon API key
- Managed infrastructure deployments
- Cloud-native applications
- Environments leveraging Blockdaemon’s services
Dfns
Dfns is a crypto custody platform that provides programmable key management and signing infrastructure. Configuration: Set the following environment variables:DFNS_ORG_ID- Your Dfns organization IDDFNS_BASE_URL- The Dfns API URL (defaults tohttps://api.dfns.io)DFNS_CRED_ID- Your service account credential IDDFNS_PRIVATE_KEY- Your service account private key (PEM format)DFNS_AUTH_TOKEN- Your service account authentication token
- Set up a service account with appropriate permissions in Dfns
- Generate and download the service account credentials
- Enterprise deployments requiring MPC-based key management
- Programmable custody with policy controls
- Multi-party approval workflows
- High-security production environments
Canton and CantonTestnet network wallets are supported.
Selecting a Provider
When creating a new party through the User API or web UI, you can select which signing provider to use. The choice depends on your security requirements, infrastructure setup, and compliance needs. Recommendations:- Development/Testing: Use Wallet Gateway (internal) or Participant-based signing
- Production (Enterprise): Use Fireblocks, Dfns, or Participant-based signing
- Production (Managed): Use Blockdaemon, Dfns, or Participant-based signing
Key Management
Each provider handles key management differently:- Wallet Gateway: Keys are stored in the signing store database
- Participant: Keys are managed by the Canton participant node
- Fireblocks: Keys are stored in Fireblocks’ secure infrastructure (HSM-backed)
- Blockdaemon: Keys are managed by Blockdaemon’s infrastructure
- Dfns: Keys are managed by Dfns’ secure infrastructure
- Create a new party with the new provider
- Transfer any assets/contracts to the new party
- Update your dApp to use the new party