Skip to content

Release 2026 02 03 ocp v31 major upgrade

Cursor Agent edited this page Jun 22, 2026 · 3 revisions

Release: OCP v31 Major Upgrade

Historical — current source: OpenCapTable-v35; see Releases

Date: 2026-02-03 Author: NC Networks: devnet, mainnet

Summary

Major upgrade of the Open Cap Table Protocol from v30 to v31. This release adds issuer to batch operations:

  1. Issuer edits via batch - Issuer can now be edited via OcfEditIssuer in the UpdateCapTable choice, consistent with other OCF entity types
  2. Removed EditIssuer choice - The separate EditIssuer choice has been removed in favor of batch operations

What's Being Deployed

Package Version Description
OpenCapTable-v31 0.0.1 Issuer batch edit operations

Breaking Changes

EditIssuer Choice Removed

Before (v30):

choice EditIssuer : EditIssuerResult
  with
    actor : Party
    issuer_data : OcfIssuerData
  controller actor
  do
    -- Direct issuer edit

After (v31): Issuer edits are handled via the UpdateCapTable choice using OcfEditIssuer:

data OcfEditData =
    OcfEditIssuer OcfIssuerData  -- NEW in v31
  | OcfEditStakeholder OcfStakeholderData
  | OcfEditStockClass OcfStockClassData
  -- ... other entity types

Issuer Constraints (Unchanged)

  • Cannot be created via batch - Issuer is created with CapTable deployment
  • Cannot be deleted - Issuer must always exist
  • Can be edited via batch - Now consistent with other entities (NEW in v31)
  • At most one issuer edit per batch - Enforced by validation

Pre-Deployment Checklist

  • npm install - Dependencies installed
  • npm run build - All DAML packages built successfully
  • npm run test - All tests passing
  • Upload OCP v31 DAR to devnet
  • Upload OCP v31 DAR to mainnet
  • Create new OCP Factory (v31) on devnet
  • Create new OCP Factory (v31) on mainnet
  • Verify factory contract IDs saved
  • Update dependent services with new template IDs

Deployment Commands

npm run build
npm run test
npm run upload-dar -- --package ocp --network devnet
npm run upload-dar -- --package ocp --network mainnet
npx tsx scripts/create-ocp-factory.ts --network devnet
npx tsx scripts/create-ocp-factory.ts --network mainnet
npm run verify-dars

Migration Notes

For SDK Consumers

Update code that edits issuers to use batch operations:

// Before (v30) - Direct EditIssuer choice
await ocpClient.OpenCapTable.issuer.editIssuer({
  issuerContractId,
  issuerData: { ... }
});

// After (v31) - Via UpdateCapTable batch
await ocpClient.OpenCapTable.capTable.updateCapTable({
  capTableContractId,
  edits: [{ tag: 'OcfEditIssuer', value: issuerData }],
  creates: [],
  deletes: []
});

Related

  • PR #163: feat!: add issuer to batch UpdateCapTable operations (BREAKING - v31)

Generated: 2026-02-03

Clone this wiki locally