Several questions regarding the integration of centralized exchanges with Canton?
-
What is the signature algorithm and curve for CC transfer transactions?
-
Is there a Go SDK available for build CC transfer transaction?
-
How do I generate an address by a private key?
Canton Coin (CC) transfers are just Canton/DAML transactions authorized by the party’s key, and the signature scheme/curve is whatever that party is configured to use (Canton supports ECDSA on NIST P-256/P-384 and Ed25519, not Bitcoin-style secp256k1 by default).
There isn’t an official Go “wallet SDK,” but you can build and submit CC transfers from Go by calling the Ledger/JSON APIs (or gRPC from the protobufs) just like any other DAML workflow.
Addresses aren’t derived from private keys; you allocate a party and receive a party ID (e.g., Alice::1220…), whose suffix is a fingerprint tied to topology, so you “generate an address” by allocating the party, not by key → address math.
What is the signature algorithm and curve for CC transfer transactions?
See Supported Cryptographic Schemes And Formats — Digital Asset’s platform documentation.
Is there a Go SDK available for build CC transfer transaction?
There is a Typescript-based Wallet SDK that directly supports building transfers. It is used by the docs Wallet Integration Guide — Digital Asset’s platform documentation. The code for the Wallet SDK is at splice-wallet-kernel/sdk/wallet-sdk/src at main · hyperledger-labs/splice-wallet-kernel · GitHub.
I don’t know if GitHub - noders-team/go-daml: This is Canton golang SDK supports transfers directly, but you may find it of interest too.
How do I generate an address by a private key?
Parties are analogous to addresses in other blockchains. There are two types of parties in Canton – internal and external.
-
An internal party uses the keys of the hosting node. An internal party can be allocated (as @eslaboncarl mentioned) by POSTing to the
v2/partiesendpoint of the JSON Ledger API. -
Alternatively, a external party can be created from a given key pair and onboarded onto a node. You can read about that in the docs here and here.
Parties are analogous but not exactly the same as addresses. Parties have cost to create (unlike Eth/BTC addresses).
- Parties create state.
- Avoid ephemeral parties like “deposit addresses”.
- For wallets: Aim for one Party per wallet/key.
- For custodians: Aim for one Party per account/wallet.
- For exchanges: Aim for one or few parties for the exchange vault.
The docs Wallet Integration Guide — Digital Asset’s platform documentation were written specifically for wallet providers and exchanges.