TypeScript dApp SDK
For browser dApps. The user’s Walley wallet holds the key; your dApp requests a connection and submits transactions through a popup the user approves.
Python SDK
For servers and automation. Your process holds the Ed25519 key and prepares, signs, and submits transactions directly, without a popup.
HTTP API
The REST API both SDKs are built on. Call it from any language: auth, ledger reads, and transaction submission over plain HTTPS.
gRPC API
For existing Canton clients. Build and sign interactive submissions yourself and point them at Walley’s fee-charging Ledger API endpoint.
Which one?
Network fees
Every path shares one fee model. Canton network traffic is charged in CC (Canton Coin) against a prepaid traffic balance: users buy traffic ahead of time and each transaction draws it down. A single transaction can be fronted when the balance can’t cover its fee (the balance goes negative by that one transaction), after which transactions are refused until the balance is topped up. Where the fee surfaces differs by path:- dApp SDK: invisible to your integration; the user’s wallet balance covers it.
- Python SDK: quoted on
prepare, drawn from the balance you top up withclient.traffic.purchase(...). - HTTP API: quoted in the prepare response, drawn from the same balance.
- gRPC API: quoted at prepare, reserved at execute, and settled from the transaction’s completion.