Skip to content

Reference

ledger.interactiveSubmissionExecute

POST /v2/interactive-submission/execute — submit signed interactive preparations.

Posts InteractiveSubmissionExecuteRequest payloads (userId, base64 preparedTransaction, hashingSchemeVersion, submissionId, partySignatures, optional deduplicationPeriod) produced after interactiveSubmissionPrepare.

Receiver: await canton.ledger.interactiveSubmissionExecute

Setup

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

const canton = new Canton({
  network: 'devnet',
  provider: '5n',
  partyId: 'OWN_PARTY_ID',
});

Minimal example

const receipt = await canton.ledger.interactiveSubmissionExecute({
  userId: 'alice',
  preparedTransaction: signedPreparedTx,
  hashingSchemeVersion: 'HASHING_SCHEME_VERSION_V2',
  submissionId: 'submission-123',
  partySignatures: {
    signatures: [
      {
        party: canton.getPartyId(),
        signatures: [
          {
            signature: 'base64-signature',
            signedBy: 'fp',
            format: 'SIGNATURE_FORMAT_RAW',
            signingAlgorithmSpec: 'SIGNING_KEY_SPEC_ED25519',
          },
        ],
      },
    ],
  },
});

Parameters — InteractiveSubmissionExecuteRequest

Validated via InteractiveSubmissionExecuteRequestSchema in schemas/api/interactive-submission.ts — supply cryptographic signatures referencing Canton hashing specs exactly.

Returns — InteractiveSubmissionExecuteResponse

Currently {} in SDK schema—Canton may augment JSON bodies beyond typings.

Errors and pitfalls

Signature mismatches reject outright—retry prepare if payloads drift.

Auth and party

Bearer authorization tied to userId performing submission.

See also

Source

operations/v2/interactive-submission/execute.ts