-
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.
See Supported Cryptographic Schemes And Formats — Digital Asset’s platform documentation.
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.
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.