Skip to content

Reference

prepareExternalTransaction

Thin wrapper around interactiveSubmissionPrepare that echoes commandId alongside the prepared blob for offline signing workflows.

prepareExternalTransaction assigns commandId (explicit random UUID fallback), forwards interactiveSubmissionPrepare with verboseHashing default false, and spreads the ledger response plus commandId into PrepareExternalTransactionResult.

Setup

import { prepareExternalTransaction } from '@fairmint/canton-node-sdk';

const canton = new Canton({
  network: 'NETWORK_NAME',
  partyId: 'PARTY_ID',
});

Minimal example

const prepared = await prepareExternalTransaction({
  ledgerClient: canton.ledger,
  commands: COMMAND_ARRAY_PLACEHOLDER,
  userId: 'USER_ID',
  actAs: ['PARTY_ID'],
  synchronizerId: 'SYNCHRONIZER_ID',
});

console.log(prepared.commandId, prepared.preparedTransaction);

Parameters

PrepareExternalTransactionOptions:

  • ledgerClient, commands, userId, actAs, synchronizerId (required) — Passed directly to interactiveSubmissionPrepare.
  • commandId, readAs, disclosedContracts, verboseHashing, packageIdSelectionPreference (optional) — Forwarded when provided.

Returns

Promise<PrepareExternalTransactionResult> — Extends InteractiveSubmissionPrepareResponse with commandId.

Errors

Propagates ledger ApiError / NetworkError from interactiveSubmissionPrepare.

Auth and party

Requires credentials sufficient for interactiveSubmissionPrepare on behalf of actAs parties.

See also

Source

src/utils/external-signing/prepare-external-transaction.ts