Skip to content
Dark MatterDark Matter
Introduction

Object Model

Position Object overview: canonical schema, field maturity levels, vehicle classes, and example structure.

What is a Position Object

The Position Object is the atomic, machine-readable representation of a private market position. It encodes rights, restrictions, obligations, economic terms, and compliance state in a canonical schema. Every position in DMTR—whether an SPV LLC interest, fund LP interest, or direct holding—is modeled as a Position Object.

Canonical schema overview

The Position Object schema is organized into logical blocks: entity_id, version, status, owner, asset (issuer, vehicle class, underlying, terms, governing document), economic_rights (preference, carry, waterfall), transfer (transferability, restrictions, consent chain), compliance (KYC, AML, accreditation, ITAR, CFIUS), valuation, encumbrances, tokenization, provenance, and metadata. Lifecycle events are stored as separate PositionEvent records with hash chain integrity.

Field maturity levels

Canonical

Canonical fields are stable, fully specified, and guaranteed across all Dark Matter environments. They form the core of the schema and are safe for production use.

Conditional

Conditional fields are available when certain conditions are met (e.g., vehicle class, document type). They are documented and supported but may not appear on every Position Object.

Planned

Planned fields are in design or early implementation. They are documented for roadmap visibility but should not be relied upon in production until promoted to conditional or canonical.

Vehicle classes

Vehicle classes categorize the legal structure of the position: lp_interest, gp_interest, doiv_gp_interest, doiv_lp_interest, doiv_membership_interest, spv_llc, fund_lp, direct, feeder, and other. Each vehicle class may have class-specific fields and semantics. The vehicle_class field drives conditional schema behavior.

Example object

{
  "entity_id": "meg-2026-047",
  "status": "active",
  "owner": "part-allocator-001",
  "asset": {
    "issuer": { "name": "Acme Corp DOIV LLC", "jurisdiction": "US-DE" },
    "vehicle_class": "doiv_membership_interest",
    "underlying": { "company": "Acme Corp", "sector": "defense" }
  },
  "economic_rights": { "preference": "pari_passu", "cost_basis": "4200000" },
  "transfer": { "transferable": true, "restrictions": [] },
  "compliance": { "kyc_status": "cleared", "aml_status": "cleared" },
  "valuation": { "current_mark": { "value": "5000000", "currency": "USD", "as_of": "2026-03-01", "provenance": "gp_mark" } },
  "tokenization": { "status": "not_tokenized" }
}

This example shows an active DOIV membership interest with pari-passu preference, no transfer restrictions, cleared KYC/AML, and a GP mark. Lifecycle events are stored as separate PositionEvent records — not embedded on the position. See Position Object for full schema details.

Edit this page on GitHub

Last reviewed: March 13, 2026

Was this page helpful?