Skip to content
Dark MatterDark Matter
EnergyGuides

Register a stranded energy asset as a ComputeSlot

Step-by-step: secure land + fuel rights, register the slot, attach the Compute SPV LLC Position, advance through the LAND gate.

Prerequisites

  • Surface rights or option held by the registering entity
  • A Compute SPV LLC (or equivalent wrapper) formed and registered as a Position
  • A participant_id for the originator in the Identity Graph

Step 1 — Form the Compute SPV LLC and register the Position

The Position holds the legal/economic wrapper. Use POST /v1/positions to register:

curl -X POST https://sandbox-api.dmtr.ai/v1/positions \
  -H "Authorization: Bearer $DMTR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entity_id": "pos-pampa-jv-phase1",
    "asset": {
      "issuer": { "name": "Joule SPV — Pampa JV Phase 1", "jurisdiction": "AR" },
      "vehicle_class": "spv_llc",
      "underlying": { "company": "Pampa JV — Vaca Muerta", "sector": "energy_compute" }
    },
    "owner": "joule-frontier-fund-i",
    "transfer": {
      "transferable": true,
      "restrictions": [{ "type": "section_4a7_resale" }]
    },
    "vertical_decoration": {
      "vertical": "energy_compute",
      "ref_id": "slot-pampa-jv-phase1"
    }
  }'

The vertical_decoration.ref_id is a forward-reference to the slot_id you'll register in step 2.

Step 2 — Register the ComputeSlot

curl -X POST https://sandbox-api.dmtr.ai/v1/energy/slots \
  -H "Authorization: Bearer $DMTR_KEY" \
  -H "Content-Type: application/json" \
  -d @sample-compute-slot.json

sample-compute-slot.json is the Pampa JV fixture — copy/adapt for your asset.

The response includes the persisted slot with created_at set. The status defaults to draft if you didn't set one explicitly.

Step 3 — Confirm the LAND gate

The fixture above already has stage_gate.gate_history[0] recording the LAND completion. If you're starting cleaner, advance the gate explicitly:

curl -X POST https://sandbox-api.dmtr.ai/v1/energy/slots/slot-pampa-jv-phase1/advance \
  -H "Authorization: Bearer $DMTR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "gate": "land", "status": "complete" }'

The state machine validates that land has no prerequisites (always true) and records entered_at + completed_at.

Step 4 — Attach fuel commitment + advance ENERGY

Update the slot with a fuel_source block once the gas/hydro/wind contract is signed:

curl -X PATCH https://sandbox-api.dmtr.ai/v1/energy/slots/slot-pampa-jv-phase1 \
  -H "Authorization: Bearer $DMTR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fuel_source": {
      "primary_class": "associated_gas",
      "carbon_class": "fossil",
      "field_or_basin": "Vaca Muerta",
      "supply_contracts": [{
        "contract_id": "fsc-pampa-jv-2027",
        "supplier": "Pampa Energía",
        "fuel_class": "associated_gas",
        "delivery_mode": "wellhead_direct",
        "term_start": "2027-04-01"
      }]
    }
  }'

Then advance:

curl -X POST https://sandbox-api.dmtr.ai/v1/energy/slots/slot-pampa-jv-phase1/advance \
  -d '{ "gate": "energy", "status": "complete" }'

The state machine confirms land is complete before allowing energy.

Next steps

Edit this page on GitHub

Last reviewed: May 5, 2026

Was this page helpful?