Overview
What is Stratos Wallet?
Stratos Wallet is a multi-chain, self-custodial wallet platform designed for the Canton Network ecosystem. It provides:
- WebAuthn/Passkey Authentication - Passwordless, phishing-resistant authentication
- Multi-Chain Support - Ethereum, Bitcoin, Solana, Tron, TON, and Canton
- Canton Network Integration - Native support for Daml smart contracts
- Embedded App Ecosystem - Run third-party apps within the wallet via iframes
- PRF-Based Encryption - Secure key derivation using WebAuthn PRF extension
Architecture Overview
┌─────────────────────────────────────────────────────────────┐
│ Stratos Wallet │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ React Frontend │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ Wallet │ │ Dock │ │ Admin │ │ │
│ │ │ View │ │ Apps │ │ Panel │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ │ │ │ │
│ │ ┌───────┴───────┐ │ │
│ │ │ Wallet Bridge │ │ │
│ │ └───────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Cloudflare Pages Functions │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │ │
│ │ │ Auth │ │ Wallet │ │ Admin │ │ Canton │ │ │
│ │ │ API │ │ API │ │ API │ │ Proxy │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Cloudflare D1 │ │
│ │ Users, Sessions, Passkeys, Assets, Configs │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Canton Network │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Splice │ │ JSON API │ │ Daml │ │
│ │ Ledger │ │ Gateway │ │ Contracts │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘Key Components
1. Wallet Instance (cloudflare-wallet)
The main wallet application deployed to Cloudflare Pages:
- Frontend: React SPA with wallet UI, dock apps, and admin panel
- Backend: Cloudflare Pages Functions for API endpoints
- Database: Cloudflare D1 for user data, sessions, and configuration
- Bridge: PostMessage-based communication with embedded apps
2. Stratos Wallet SDK (stratos-wallet-sdk)
NPM package for building apps that run inside the wallet:
typescript
import { getSDK } from '@stratos/wallet-sdk';
const sdk = getSDK();
const { user, addresses } = await sdk.connect();3. Dock Apps
Third-party applications embedded as iframes:
- Trade/Swap: DEX aggregators and trading interfaces
- DeFi: Lending, staking, and yield farming
- NFT/RWA: Digital asset marketplaces
- Custom Apps: Any app built with the SDK
Supported Chains
| Chain | Type | Features |
|---|---|---|
| Canton | canton | Daml contracts, CC transfers, party IDs |
| Ethereum | evm | ERC-20 tokens, smart contracts, EIP-712 |
| Base | evm | L2 with low fees |
| Bitcoin | btc | Native BTC, UTXO management |
| Solana | svm | SPL tokens, high throughput |
| Tron | tron | TRC-20 tokens, SunSwap |
| TON | ton | Jettons, STON.fi |
Security Model
Key Derivation
Keys are derived using the WebAuthn PRF (Pseudo-Random Function) extension:
- User authenticates with passkey
- PRF output is used as seed material
- Chain-specific keys are derived using BIP-32/39 paths
- Private keys never leave the browser
Authentication Flow
┌──────┐ ┌──────────┐ ┌────────┐
│ User │ │ Wallet │ │ Server │
└──┬───┘ └────┬─────┘ └───┬────┘
│ │ │
│ Touch Passkey │ │
│──────────────────>│ │
│ │ │
│ │ Verify Signature │
│ │───────────────────>│
│ │ │
│ │ Session Token │
│ │<───────────────────│
│ │ │
│ Access Granted │ │
│<──────────────────│ │Next Steps
- Quick Start - Get a wallet instance running
- Wallet Setup - Detailed installation guide
- Build an App - Create your first app