Skip to content

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 BlockchainsCanton Network
All data publicPrivacy by default
Probabilistic finalityInstant finality
Smart contract limitationsFull Daml expressiveness
Regulatory challengesCompliance-ready
Fragmented ecosystemsInteroperable 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:

OperationDescription
QueryFind contracts by template
CreateCreate new contract instances
ExerciseExecute 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

  1. App exposes /api/package - Returns package metadata
  2. Admin installs package - One-click from admin panel
  3. Users interact - App uses SDK to work with contracts

Package Endpoint Format

json
{
  "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

  1. Canton Participant - Access to a Canton participant node
  2. Domain Connection - Participant connected to a Canton domain
  3. 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

  1. Admin allocates party ID to user
  2. User can now access Canton features
  3. Apps can interact with user's contracts

Next Steps

Enterprise-grade multi-chain wallet infrastructure.