Skip to content

Release 2026 01 15 ocp v29 major upgrade

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

Release: OCP v29 Major Upgrade

Historical — current source: OpenCapTable-v35; see Releases

Date: 2026-01-15 Author: NC Networks: devnet, mainnet

Summary

Major upgrade of the Open Cap Table Protocol from v28 to v29. This release adds OCF schema compliance fixes:

  1. StockClass.initial_shares_authorized - Changed from Decimal to OcfInitialSharesAuthorized union type (supports numeric values AND "NOT APPLICABLE"/"UNLIMITED" enum values)
  2. EquityCompensationIssuance.option_grant_type - New optional field added (enum: NSO, ISO, INTL)

What's Being Deployed

Package Version Description
OpenCapTable-v29 0.0.1 OCF schema field completeness fixes

Breaking Changes

StockClass.initial_shares_authorized Type Change

Before (v28):

initial_shares_authorized: Decimal

After (v29):

initial_shares_authorized: OcfInitialSharesAuthorized

Where OcfInitialSharesAuthorized is:

data OcfInitialSharesAuthorized =
    OcfInitialSharesNumeric Decimal
  | OcfInitialSharesEnum OcfAuthorizedShares
  deriving (Eq, Show)

data OcfAuthorizedShares =
    OcfAuthorizedSharesNotApplicable
  | OcfAuthorizedSharesUnlimited
  deriving (Eq, Show)

New EquityCompensationIssuance Field

New optional field added:

option_grant_type: Optional OcfOptionGrantType

Where OcfOptionGrantType is:

data OcfOptionGrantType = OcfOptionNSO | OcfOptionISO | OcfOptionINTL
  deriving (Eq, Show)

Pre-Deployment Checklist

  • npm install - Dependencies installed
  • npm run build - All DAML packages built successfully
  • npm run test - All tests passing
  • Upload OCP v29 DAR to devnet
  • Upload OCP v29 DAR to mainnet
  • Create new OCP Factory (v29) on devnet
  • Create new OCP Factory (v29) 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 creates StockClass to use the new type:

// Before (v28)
const stockClass = {
  initial_shares_authorized: 1000000.0
}

// After (v29)
const stockClass = {
  initial_shares_authorized: { tag: 'OcfInitialSharesNumeric', value: '1000000.0' }
}

// Or for enum values (v29)
const stockClass = {
  initial_shares_authorized: { tag: 'OcfInitialSharesEnum', value: 'OcfAuthorizedSharesUnlimited' }
}

Update code that creates EquityCompensationIssuance to include the new optional field:

// After (v29) - optional field, can be omitted or set
const issuance = {
  // ... other fields
  option_grant_type: null  // or { tag: 'OcfOptionISO' }
}

Generated: 2026-01-15

Clone this wiki locally