Canton Network Integration
Stratos Vault provides native integration with Canton Network for enterprise-grade smart contract operations.
What is Canton Network?
Canton Network is a privacy-enabled distributed ledger designed for regulated industries. Unlike public blockchains:
| Public Blockchains | Canton Network |
|---|---|
| All data public | Privacy by default |
| Probabilistic finality | Instant finality |
| Smart contract limitations | Full Daml expressiveness |
| Regulatory challenges | Compliance-ready |
| Fragmented ecosystems | Interoperable by design |
Why Canton for Enterprise?
Privacy-Preserving Transactions
On Canton, transaction data is shared only with parties who need to see it:
Traditional Blockchain:
┌─────────────────────────────────────────────┐
│ Everyone sees: Alice sent 100 to Bob │
│ Everyone sees: Bob's balance is 500 │
│ Everyone sees: All historical transactions │
└─────────────────────────────────────────────┘
Canton Network:
┌─────────────────────────────────────────────┐
│ Alice sees: Her transaction with Bob │
│ Bob sees: His transaction with Alice │
│ Others see: Nothing │
│ Regulators see: What they're authorized │
└─────────────────────────────────────────────┘Compliant Smart Contracts
Daml (Digital Asset Modeling Language) provides:
- Deterministic execution - Same inputs always produce same outputs
- Authorization model - Explicit signatories and observers
- Upgradeability - Contracts can be upgraded with party consent
- Auditability - Complete execution trace for compliance
Enterprise Interoperability
Canton enables controlled interoperability between organizations:
- Connect to other Canton participants
- Atomic transactions across domains
- Selective data sharing with partners
- Regulatory access when required
Canton in Stratos Vault
User Party Identity
Each wallet user can be assigned a Canton party identity:
┌──────────────────────────────────────────────────────────────┐
│ Stratos Vault User │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ Username: │ │ EVM Address: │ │ Canton Party: │ │
│ │ alice │ │ 0x7a3b... │ │ alice::122... │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
└──────────────────────────────────────────────────────────────┘Party allocation is admin-controlled, enabling:
- Gradual rollout of Canton features
- Compliance screening before access
- Revocation if needed
Built-in Canton Assets
Stratos Vault includes support for Canton-native tokens:
- Canton Coin (CC) - Native ledger currency
- Transfer Offers - Two-step consent-based transfers
- Custom Tokens - Deploy your own via Daml packages
Smart Contract Operations
The wallet SDK provides generic Canton operations:
| Operation | Description |
|---|---|
| Query | Find contracts by template |
| Create | Create new contract instances |
| Exercise | Execute choices on contracts |
Transfer Workflow
Canton transfers use an offer/accept pattern for explicit consent:
Sender Canton Receiver
│ │ │
│ Create TransferOffer │ │
├───────────────────────────>│ │
│ │ │
│ │ Offer visible to receiver │
│ │───────────────────────────>│
│ │ │
│ │ Accept/Reject │
│ │<───────────────────────────┤
│ │ │
│ Transfer complete │ Funds received │
│<───────────────────────────┼───────────────────────────>│Benefits:
- Receiver explicitly consents to receive
- Audit trail of offer and acceptance
- Sender can cancel before acceptance
- Memo field for payment reference
Daml Package Distribution
Applications built on Stratos Vault can distribute their Daml packages:
How It Works
- App exposes
/api/package- Returns package metadata - Admin installs package - One-click from admin panel
- Users interact - App uses SDK to work with contracts
Package Endpoint Format
{
"name": "My DeFi Protocol",
"packageId": "3e0418bde138fe51...",
"darUrl": "https://myapp.com/api/package/download",
"templates": [
"Protocol:LiquidityPool",
"Protocol:Position"
],
"version": "1.0.0"
}This enables seamless deployment of Canton-based applications across wallet instances.
Use Cases
Regulated Token Issuance
Issue compliant security tokens:
- Privacy for holder positions
- Transfer restrictions enforced by contract
- Regulatory reporting capabilities
- Corporate actions (dividends, votes)
Institutional DeFi
Build compliant DeFi protocols:
- KYC/AML-gated liquidity pools
- Privacy-preserving trading
- Auditable execution for regulators
- Cross-institution settlement
Supply Chain Finance
Track and finance trade flows:
- Invoice tokenization
- Privacy between competitors
- Multi-party workflow automation
- Integration with trade finance platforms
Treasury Management
Manage corporate digital assets:
- Multi-signature controls
- Approval workflows
- Audit trail for compliance
- Integration with internal systems
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Stratos Vault Instance │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Canton Proxy │ │
│ │ (JSON API / Ledger API Gateway) │ │
│ └─────────────────────────────┬─────────────────────────────┘ │
└────────────────────────────────┼────────────────────────────────┘
│
┌────────────────────────────────▼────────────────────────────────┐
│ Canton Participant │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Daml Packages (.dar files) │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ Core Wallet │ │ Your Apps │ │ Partners │ │ │
│ │ │ Templates │ │ Templates │ │ Templates │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────────────▼───────────────────────────────┐ │
│ │ Canton Domain │ │
│ │ (Sequencer, Mediator, Consensus) │ │
│ └───────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘Getting Started with Canton
Prerequisites
- Canton Participant - Access to a Canton participant node
- Domain Connection - Participant connected to a Canton domain
- Party Allocation - Ability to allocate parties for users
Configuration
Wallet instances connect to Canton via configuration:
CANTON_URL = "https://canton.example.com"
CANTON_DOMAIN_ID = "domain::abc123..."
CANTON_LEDGER_ID = "participant1"Enabling for Users
- Admin allocates party ID to user
- User can now access Canton features
- Apps can interact with user's contracts
Next Steps
- Platform Overview - Full platform capabilities
- Security Architecture - Security deep-dive
- For Developers - Build Canton-integrated apps
