Skip to content

External signing

HardlyDifficult edited this page Jul 17, 2026 · 3 revisions

External signing

External parties keep their Ed25519 private key outside the Canton participant.

  1. Generate or load the key in the wallet, HSM, or other trusted signer.
  2. Resolve the target synchronizer and prepare external-party topology.
  3. Approve and sign the exact topology hash, then allocate the party.
  4. Prepare later transactions with the intended commands and acting party.
  5. Display or verify the action, sign the exact prepared hash, and submit that signature.

The backend must never receive private keys or reusable signing delegation. Bind prepared work to the expected party, commands, receiver, amount, expiry, nonce, and authenticated session; reject substitutions before submission.

The convenience flow begins with createExternalParty, then prepareExternalTransaction / executeExternalTransaction. Inspect the external-signing source and the walkthrough for exact types.

A timeout does not prove that a command was not sequenced. Query completions or updates before retrying, and never reuse a signature for different prepared bytes.

Clone this wiki locally