Skip to content

Reference

ledger.generateExternalPartyTopology

POST /v2/parties/external/generate-topology — produce topology transactions and multi-hash material before allocateExternalParty.

Produces onboarding payloads (topologyTransactions, multiHash, partyId) from GenerateExternalPartyTopologyParams: synchronizer, partyHint, publicKey (SigningPublicKey triple), optional quorum knobs (localParticipantObservationOnly, otherConfirmingParticipantUids, confirmationThreshold, observingParticipantUids).

Receiver: await canton.ledger.generateExternalPartyTopology

Setup

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

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

Minimal example

const topo = await canton.ledger.generateExternalPartyTopology({
  synchronizer: 'global-synchronizer',
  partyHint: 'alice-external',
  publicKey: {
    format: 'CRYPTO_KEY_FORMAT_DER_X509_SUBJECT_PUBLIC_KEY_INFO',
    keyData: 'BASE64…',
    keySpec: 'SIGNING_KEY_SPEC_EC_CURVE25519',
  },
});

Parameters — GenerateExternalPartyTopologyParams

See GenerateExternalPartyTopologyParamsSchema in source—covers quorum thresholds plus observers versus confirming participant UID hints.

Returns — GenerateExternalPartyTopologyResponse

Includes partyId, topologyTransactions, multiHash outputs Canton expects downstream signatures against prior to allocateExternalParty.

Errors and pitfalls

Hints reused across concurrent onboarding flows collide—ensure partyHint uniqueness relative to Canton allocator conventions.

Auth and party

Participant onboarding scopes gated identical to allocate endpoints using bearer credential parity.

See also

Source

operations/v2/parties/external/generate-topology.ts