Open Capital Protocol v1.0

Nine objects.
One standard.

A shared, machine-readable language for capital. Structured, typed, versioned, composable. Open source under Apache 2.0.

Read the Spec

OCP defines nine machine-readable objects for venture capital data -- entities, companies, funds, theses, instruments, rounds, signals, relationships, and transactions. Typed, versioned, open source under Apache 2.0.

A protocol for capital data.

Open Capital Protocol defines nine machine-readable data structures that capture every meaningful object in venture capital: entities, companies, funds, theses, instruments, rounds, signals, relationships, and transactions. Each object is typed, versioned, and validated against a published JSON Schema.

Every interaction in venture -- a fundraise, a term sheet, a portfolio review, a capital call -- involves the same underlying data. OCP provides the vocabulary so that data can be structured once and understood anywhere.

OCP is infrastructure, not a product. It is a specification you implement, a schema you validate against, a protocol your systems speak. Anyone can build on it. Anyone can contribute.

The spec is public. The schemas are open. The TypeScript SDK is published. The reference server is runnable. Everything is Apache 2.0 licensed -- use it, fork it, build on it.

Nine Objects. One Standard.

Every participant in venture capital -- founders, funds, LPs, agents -- operating on a shared, machine-readable language.

01
ocp.entity
Identity
Founders, GPs, LPs, agents, advisors. Roles, reputation, and relationships -- portable and verifiable.
Used by: funds tracking team, founders building profiles, agents discovering participants
02
ocp.company
Metrics
MRR, burn, runway, growth rate, CAC, LTV. Financial state expressed in a common, instantly comparable format.
Used by: GPs monitoring portfolio, founders automating reports, LPs reviewing performance
03
ocp.fund
Vehicle
Encoded thesis, tracked portfolio, computed performance. A fund expressed as structured data, not a spreadsheet.
Used by: fund managers tracking deployment, LPs viewing fund health
04
ocp.thesis
Criteria
Machine-readable investment filters. Stage, check size, sector, geography. A thesis a system can actually evaluate.
Used by: deal flow scoring, investor matching, automated screening
05
ocp.instrument
Capital
SAFEs, convertible notes, equity, GenNote. Programmable capital structures with defined, machine-readable terms.
Used by: cap table management, instrument compliance, conversion tracking
06
ocp.round
Financing
Valuation, allocation, participants, comparables. A complete financing event in a single, structured object.
Used by: fundraise tracking, round comparison, investor coordination
07
ocp.signal
Triggers
Revenue milestones, runway alerts, growth patterns. Real-time events that carry context and provenance.
Used by: portfolio monitoring, automated alerts, proactive outreach
08
ocp.relationship
Network
Strength, context, interaction history. Trust and connection made computable and portable.
Used by: warm intro discovery, relationship scoring, network analysis
09
ocp.transaction
Movement
Every dollar tracked. Capital calls, distributions, transfers -- with a complete, audit-ready trail.
Used by: fund accounting, capital call tracking, distribution management

Object Relationships

How the nine objects reference each other.

ocp.entity references ocp.company (team), ocp.fund (GP/LP), ocp.relationship
ocp.fund references ocp.thesis (criteria), ocp.company (portfolio)
ocp.instrument references ocp.company (issuer), ocp.entity (holder), ocp.round
ocp.signal references ocp.entity, ocp.company (subject)
ocp.transaction references ocp.entity (from/to), ocp.fund, ocp.instrument
ocp.round references ocp.company (subject), ocp.entity (participants)

Build on the protocol.

TypeScript SDK. JSON schemas. Reference server. Everything you need to validate, serve, and consume OCP data. Apache 2.0.

TypeScript SDK

Nine typed interfaces. Nine AJV validators. Auto-detection of ocp_type for zero-config validation.

JSON Schemas (Draft-07)

All nine objects published as JSON Schema Draft-07. Use them with any AJV-compatible validator in any language.

Reference Server

A runnable Hono server with 10 OCP endpoints serving all nine objects. Deploy locally or to Cloudflare Workers.

Compliance Suite

59 unit tests covering all nine objects. Run against any OCP-compliant server to verify conformance.

TypeScript
// Initialize and validate
const ocp = new OCP({ version: '1.0.0' })

const company = {
  ocp_type: 'company',
  name: 'Quill Meetings',
  financials: {
    mrr_cents: 14200000,
    growth_rate_mom: 0.29,
    runway_months: 14.2
  }
}

const result = ocp.validate(company)
// => { valid: true, errors: [] }

// Any OCP object -- auto-detected
const entity = {
  ocp_type: 'entity',
  role: 'founder',
  name: 'Alex Chen'
}

ocp.validate(entity)
// => { valid: true, errors: [] }

The Generative Note.

GenNote is ocp.instrument where instrument_type = "gennote". A structured instrument schema with machine-readable adaptive terms.

ocp.instrument / gennote

adaptive_terms

An array of structured term objects. Each defines a trigger field, an operator, a threshold, and an action. Terms are schema-defined data -- not executable logic.

connector_requirements

Specifies which data sources are required for compliance monitoring. Defines the expected data streams that feed into the instrument's state.

compliance

A structured status field: compliant, partial, or non_compliant. Timestamped, with a violations array.

Legal Notice GenNote instrument terms are defined by qualified legal counsel for each deployment. The OCP schema provides the data structure for adaptive instruments; it does not constitute legal documents, investment advice, or securities offerings. Consult counsel before deploying any investment instrument.
adaptive_terms schema
"adaptive_terms": [{
  "trigger_field": "string",
  "operator": "exceeds | below | equals",
  "threshold": "number",
  "action": "string",
  "rationale": "string"
}]
compliance schema
"compliance": {
  "status": "compliant | partial | non_compliant",
  "checked_at": "ISO 8601 timestamp",
  "violations": ["string"]
}
connector_requirements schema
"connector_requirements": [{
  "source_type": "string",
  "fields_required": ["string"],
  "frequency": "realtime | daily | monthly"
}]
Developer Preview

Join the Developer Preview.

OCP is in developer preview. Get early access to the SDK, schemas, and reference server.