---
title: "POST /v2/parties/external/generate-topology"
method: POST
path: "/v2/parties/external/generate-topology"
---

# POST /v2/parties/external/generate-topology

`POST /v2/parties/external/generate-topology`

You may use this endpoint to generate the common external topology transactions
which can be signed externally and uploaded as part of the allocate party process

Note that this request will create a normal namespace using the same key for the
identity as for signing. More elaborate schemes such as multi-signature
or decentralized parties require you to construct the topology transactions yourself.

## Request body

- GenerateExternalPartyTopologyRequest
  - `synchronizer` string, required — Synchronizer-id for which we are building this request. Required
  - `partyHint` string, required — The actual party id will be constructed from this hint and a fingerprint of the public key Required
  - `publicKey` SigningPublicKey, required
    - `format` string, required — The serialization format of the public key Required
    - `keyData` string, required — Serialized public key in the format specified above Required: must be non-empty
    - `keySpec` string, required — The key specification Required
  - `localParticipantObservationOnly` boolean — If true, then the local participant will only be observing, not confirming. Default false. Optional
  - `otherConfirmingParticipantUids` string[] — Other participant ids which should be confirming for this party Optional: can be empty
  - `confirmationThreshold` integer — Confirmation threshold >= 1 for the party. Defaults to all available confirmers (or if set to 0). Optional
  - `observingParticipantUids` string[] — Other observing participant ids for this party Optional: can be empty

## Response `200`

- GenerateExternalPartyTopologyResponse — Response message with topology transactions and the multi-hash to be signed.
  - `partyId` string, required — The generated party id Required
  - `publicKeyFingerprint` string, required — The fingerprint of the supplied public key Required
  - `topologyTransactions` string[], required — The serialized topology transactions which need to be signed and submitted as part of the allocate party process Note that the serialization includes the versioning information. Therefore, the transaction here is serialized as an `UntypedVersionedMessage` which in turn contains the serialized `TopologyTransaction` in the version supported by the synchronizer. Required: must be non-empty
  - `multiHash` string, required — the multi-hash which may be signed instead of each individual transaction Required: must be non-empty

## Other responses

- `400` — Invalid value, Invalid value for: body
- `default`

---

[API](https://skmtc.dev/canton/apis/json-ledger-api-http-endpoints.md) · [All operations](https://skmtc.dev/canton/apis/json-ledger-api-http-endpoints/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/canton/json-ledger-api-http-endpoints/revisions/296292e8b8f1/schema)
