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_idfor 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.jsonsample-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
- File the permit stack
- Sign the tolling contract (after PERMITS, FINANCE, BUILD, ENERGIZE)
Site & fuel-source class
Enums for site_class (hydro, gas, wind, solar, behind-meter, orbital, submerged, nuclear SMR, geothermal, battery) and fuel-supply class (associated gas, stranded dry gas, hydro variants, renewables, etc.).
File the permit stack
Required permits per site class, how to attach them to a ComputeSlot, and how the rights engine evaluates the stack.