Skip to content
Discussions/App Development/Several questions regarding the integration of centralized exchanges with Canton?Forum ↗

Several questions regarding the integration of centralized exchanges with Canton?

App Development3 posts72 views1 likesLast activity Dec 2025
CH
chen_hkalexOP
Dec 2025
  1. What is the signature algorithm and curve for CC transfer transactions?

  2. Is there a Go SDK available for build CC transfer transaction?

  3. How do I generate an address by a private key?

ES
eslaboncarl
Dec 2025

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.

WA
WallaceKelly
Dec 2025
chen_hkalex:

What is the signature algorithm and curve for CC transfer transactions?

See Supported Cryptographic Schemes And Formats — Digital Asset’s platform documentation.

chen_hkalex:

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.

chen_hkalex:

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/parties endpoint 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.

← Back to Discussions