-
Notifications
You must be signed in to change notification settings - Fork 0
Release 2026 01 15 ocp v29 major upgrade
Cursor Agent edited this page Jun 22, 2026
·
4 revisions
Historical — current source: OpenCapTable-v35; see Releases
Date: 2026-01-15 Author: NC Networks: devnet, mainnet
Major upgrade of the Open Cap Table Protocol from v28 to v29. This release adds OCF schema compliance fixes:
-
StockClass.initial_shares_authorized - Changed from
DecimaltoOcfInitialSharesAuthorizedunion type (supports numeric values AND "NOT APPLICABLE"/"UNLIMITED" enum values) - EquityCompensationIssuance.option_grant_type - New optional field added (enum: NSO, ISO, INTL)
| Package | Version | Description |
|---|---|---|
| OpenCapTable-v29 | 0.0.1 | OCF schema field completeness fixes |
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 optional field added:
option_grant_type: Optional OcfOptionGrantType
Where OcfOptionGrantType is:
data OcfOptionGrantType = OcfOptionNSO | OcfOptionISO | OcfOptionINTL
deriving (Eq, Show)
-
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
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-darsUpdate 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
Develop
Decisions
Releases
- Releases (index)
- Package tag release process
- 2026-06-22 — OCP v35 conversion mechanism validation
- 2026-06-22 — OCP v35 SDK scaffold
- 2026-05-04 — OCP v34 major upgrade
- 2026-05-04 — DAML extraction / fairmint-daml
- 2026-03-05 — OCP v32 PPS-based conversion rename
- 2026-02-17 — OCP v31 ArchiveCapTable
- 2026-02-12 — OCP v31 vesting zero portion
Other Fairmint DAML
Documentation for CantonPayments, NFT, Reports, CouponMinter, equity certificate, proof-of-ownership, and related deployment playbooks lives with fairmint/daml and @fairmint/daml-js — not in this wiki.