Skip to content
Dark MatterDark Matter
EnergyConcepts

CapacityPool

L2 aggregation primitive: persistent multi-owner pool with signed governance, exit terms, and operating posture.

CapacityPool is the commitment layer for aggregation. It converts a non-binding allocation into a signed object that can be contracted as one commercial surface or wrapped around per-component contracts.

Status lifecycle

  • draft -> binding -> executed -> dissolving -> dissolved

/sign transitions pool status to executed and issues pool-linked encumbrances on component positions. /dissolve requires status=executed and no non-terminal CapacityContract with matching pool_id.

Component-level semantics

Each component carries:

  • slot and position identity (slot_id, position_id)
  • owner identity (owner_participant_id)
  • MW contribution (contributing_mw)
  • entry and exit mechanics (entry_date, exit_terms)
  • optional pool encumbrance reference (pool_encumbrance_id)

API

  • POST /v1/energy/pools
  • GET /v1/energy/pools/{pool_id}
  • PATCH /v1/energy/pools/{pool_id}
  • POST /v1/energy/pools/{pool_id}/sign
  • POST /v1/energy/pools/{pool_id}/dissolve

Contracting

CapacityContract supports either slot_id or pool_id (exactly one). Use pool_id when the offtake agreement is executed at pool level.

Edit this page on GitHub

Last reviewed: May 6, 2026

Was this page helpful?