Create the issuer row and blank cap table skeleton through the IssuerAuthorization template’s CreateCapTable choice. The SDK validates OCF issuer data, converts to DAML, and emits a command pair you submit with ocp.createBatch({ actAs }).addBuiltCommand({ command, disclosedContracts }). Issuers cannot be queued through CapTableBatch.create(‘issuer’).
Import and receiver
- Import
OcpClient,toPartyIdas needed. - Receiver:
ocp.OpenCapTable.issuer.buildCreate(params).
Minimal example
const built = ocp.OpenCapTable.issuer.buildCreate({
issuerAuthorizationContractDetails: issuerAuthorizationContractDisclosedContract,
issuerParty: toPartyId('issuer::example'),
issuerData: {
id: 'issuer_example',
legal_name: 'Example Labs, Inc.',
country_of_formation: 'US',
formation_date: '2024-06-01',
tax_ids: [],
},
});
await ocp
.createBatch({ actAs: [toPartyId('issuer::example')] })
.addBuiltCommand(built)
.submitAndWaitForTransactionTree();
Parameters
- issuerAuthorizationContractDetails (required) — DisclosedContract describing the pinned IssuerAuthorization template + cid you received from authorization.
- issuerParty (required) — Party id that exercises CreateCapTable.
- issuerData (required) — Native OCF issuer fields (for example id, legal_name, ISO country_of_formation, formation_date, optional contact arrays). Arrays like tax_ids normalize to [].
Returns
CommandWithDisclosedContracts: command (ExerciseCommand) plus disclosedContracts needed for Canton submission.
Errors
OcpValidationError when schema parse / entity validators reject the payload.
Auth
The batch’s actAs must include issuerParty (and meet your token policy).