capTable.update allocates a CapTableBatch with the ledger client from OcpClient, stamping capTableContractId, actAs (typically issuer signatures), readAs (optional widening), and capTableContractDetails (optional template override pulled from Canton when your deployment hash diverges).
Import and receiver
import { OcpClient, toContractId, toPartyId } from '@open-captable-protocol/canton';
const batch = ocp.OpenCapTable.capTable.update({
capTableContractId: toContractId('CAP_TABLE_CID'),
capTableContractDetails: { templateId: 'optional-hash-specific-template' },
actAs: [toPartyId('issuer::party')],
readAs: ['observer::maybe'],
});
await batch.execute();
Parameters
| Field | Requirement | Notes |
|---|---|---|
| capTableContractId | Required | Canonical CapTable contract id (string Canton form). |
| capTableContractDetails.templateId | Optional override | Fallback uses OCP_TEMPLATES.capTable pinned in DAML-JS unless you mirrored an alternate package line. Supply when introspecting cross-version Canton templates. |
| actAs | Required (string[]) | Must include signer parties capable of UpdateCapTable (**issuer`). |
| readAs | Optional | Additional parties Canton should merge visibility for while resolving payloads. |
Returns
A CapTableBatch instance (no await).