Skip to content
Dark MatterDark Matter
Reference

Event Schemas

Event and webhook payload schemas for Dark Matter.

Overview

Dark Matter emits events for position lifecycle changes, transfer updates, and other platform activities. Events are delivered via webhooks and follow defined schemas. This document describes the event structure and payload schemas for each event type.

Event structure

All events share a common envelope: id, type, created_at, data, and optional metadata. The type field identifies the event; data contains the event-specific payload. Events are immutable once emitted.

Event types

All event types are defined in the EventType enum in @dmtr/core. Events span position lifecycle, transfers, documents, identity, entity formation, regulatory filing, collateral, and payments.

Position events

Event typeDescription
position.registeredA new position is registered in the registry
position.updatedAny field on a position changes
position.mark_updatedA valuation mark is updated
position.transferredOwnership of a position changes hands
position.splitA position is split into sub-positions
position.encumberedAn encumbrance (lien, pledge, security interest, UCC filing) is placed
position.encumbrance_releasedAn encumbrance is released
position.exitedA position is exited (realized)
position.voidedA position is voided

Transfer events

Event typeDescription
transfer.evaluatedThe Rights Engine evaluates transfer feasibility
transfer.consent_requestedConsent is requested from a party in the consent chain
transfer.consent_grantedA consent party approves the transfer
transfer.consent_deniedA consent party denies the transfer
transfer.settledThe transfer settles and the registry is updated
transfer.rejectedThe transfer is rejected (compliance or consent failure)
transfer.payment_fundedPayment for DVP settlement is funded into escrow
transfer.payment_releasedPayment is released from escrow to the seller

IOI events

Event typeDescription
ioi.createdAn Indication of Interest is created
ioi.acceptedAn IOI is accepted
ioi.cancelledAn IOI is cancelled

Document lifecycle events

Event typeDescription
document.generatedA legal document is generated from a template
document.sent_for_signatureA document is routed to an e-signature provider
document.signedAll required parties have signed
document.voidedA document is voided

Identity events

Event typeDescription
identity.kyc_verifiedKYC verification completed by a provider
identity.aml_screenedAML/sanctions screening completed
identity.accreditation_verifiedAccreditation verified by a provider
identity.itar_determinedITAR determination (US person / foreign person) recorded

Entity events

Event typeDescription
entity.formedA legal entity (LLC, Series LLC) is formed
entity.ein_assignedAn EIN is assigned to an entity
entity.dissolvedAn entity is dissolved

Regulatory filing events

Event typeDescription
filing.form_d_submittedSEC Form D filed via EDGAR
filing.blue_sky_submittedState Blue Sky filing submitted

Collateral events

Event typeDescription
collateral.pool_createdA collateral pool is created for a lending facility
collateral.position_pledgedA position is pledged into a collateral pool
collateral.position_releasedA position is released from a collateral pool
collateral.margin_callA margin call is triggered on a collateral pool

Schema reference

Event payload schemas are defined in JSON Schema format. Schemas are versioned; check the schema version in the event metadata.

Event envelope

All events are stored as PositionEvent records with the following structure:

PositionEvent

The envelope for all platform events. Events form a hash chain for audit integrity.

FieldTypeDescription
event_idstringUnique event identifier
position_idstringPosition this event relates to (optional)
transfer_idstringTransfer this event relates to (optional)
typeEventTypeOne of the event types listed above
actorstringEntity or system that triggered the event
timestampdatetimeISO 8601 timestamp of event creation
payloadobjectEvent-specific data
previous_event_hashstringSHA-256 hash of the previous event in the chain
event_hashstringSHA-256 hash of this event (covers type + actor + timestamp + payload + previous_event_hash)
sequence_numberintegerMonotonically increasing sequence number within the chain

Hash chain integrity

Events form an immutable hash chain. Each event's event_hash is computed over its type, actor, timestamp, payload, and previous_event_hash. The first event in a chain has previous_event_hash set to a zero hash. This structure provides WORM-compliant (Write Once, Read Many) audit integrity analogous to SEC Rule 17a-4 requirements.

position.registered

Fired when a new position is first registered in the registry.

FieldTypeDescription
typestringposition.registered
event_idstringUnique event identifier
timestampdatetimeWhen the event occurred
payload.entity_idstringPosition entity_id
payload.ownerstringOwner participant ID
payload.assetobjectAsset reference (issuer, vehicle_class)
event_hashstringSHA-256 hash of this event

transfer.settled

Fired when a transfer settles and the registry is updated.

FieldTypeDescription
typestringtransfer.settled
event_idstringUnique event ID
timestampdatetimeWhen the event occurred
payload.transfer_idstringTransfer ID
payload.seller_position_idstringSeller's position entity_id
payload.buyer_position_idstringBuyer's new position entity_id
payload.escrow_idstringEscrow reference for DVP settlement
event_hashstringSHA-256 hash of this event
Edit this page on GitHub

Last reviewed: March 13, 2026

Was this page helpful?