The scenario
Under a 20-year power purchase agreement, Desert Sun Solar LLC generated 4,500 MWh in January 2026. A grid curtailment event trimmed the expected 157,500 USD settlement to 156,000 USD.
How FORAY models it
The Arrangement carries the PPA with its effective date (F11) and — the term being a period — its maturity as period end (F14) at Arrangement scope. Two Accruals recognize metered generation and the associated renewable energy credits, each with its own formula block. The settlement Action allocates 156,000 against the 157,500 expectation as a partial allocation with a stated remaining balance of 1,500; the curtailment explanation rides in residue.
What to observe in the record
- F14 on an Arrangement is the ruled catalog broadening: a term maturity is a period end.
- The allocation is partial and says so —
allocation_typeandremaining_balanceare defined allocation-entry structure. - Meter readings, units, and the CAISO settlement id are residue: recorded and hashed with the rest of the record.
The record
Wire 4.2 record
This record is a teaching example, emitted by the FORAY generator (template energy-ppa) — not hand-written. No blockchain anchoring has occurred or is implied; anchor-related fields are placeholders. Parties, amounts, and dates are illustrative. Wire keys are catalog codes (F-codes); the readable names used in the prose above are the implementer register, which never appears in hashed bytes.
{
"F1": "ENERGY_PPA_2026_Q1_SOLAR_001",
"F2": "ENERGY_PPA_2026_Q1_SOLAR_001",
"F3": "SunPower Utilities",
"F7": 156000,
"F8": "USD",
"F15": "active",
"F25": {
"compliance_flags": [
"FERC",
"NERC",
"REC_Tracking",
"ISO_NE"
]
},
"F26": "power_purchase_agreement",
"schema_version": "4.2",
"timestamp": "2026-01-25T06:00:00Z",
"arrangements": [
{
"F4": "power_purchase_agreement",
"F5": [
{
"jurisdiction": "US-AZ",
"name": "Desert Sun Solar LLC",
"role": "generator"
},
{
"jurisdiction": "US-CA",
"name": "SunPower Utilities",
"role": "offtaker"
},
{
"jurisdiction": "US-CA",
"name": "CAISO",
"role": "grid_operator"
}
],
"F7": 180000000,
"F11": "2025-01-01T00:00:00Z",
"F14": "2045-01-01T00:00:00Z",
"F25": {
"annual_escalation": 0.02,
"capacity_mw": 50,
"curtailment_provisions": "Buyer pays 80% for curtailed energy",
"description": "20-year solar PPA - 50MW facility in Arizona",
"price_per_mwh": 35,
"rec_transfer": "included"
},
"id": "ARR_PPA_SOLAR_FARM"
}
],
"accruals": [
{
"F4": "energy_generation",
"F17": "Calculated",
"F18": "hash_7e2a5c8f1b4d90362718a5c4e7f0b2d6",
"F19": {
"capacity_factor": 0.28,
"meter_reading_end_mwh": 1254500,
"meter_reading_start_mwh": 1250000
},
"F20": 4500,
"F22": [
"ARR_PPA_SOLAR_FARM"
],
"F25": {
"accounting_entry": {
"credit": {
"account": "2100-Energy Payable",
"amount": 157500
},
"debit": {
"account": "1400-Energy Inventory",
"amount": 157500
}
},
"description": "January 2026 solar generation - metered output",
"fiscal_period": {
"month": 1,
"quarter": 1,
"year": 2026
},
"unit": "MWh"
},
"id": "ACC_GENERATION_JAN_2026"
},
{
"F4": "renewable_energy_credit",
"F17": "Calculated",
"F18": "hash_9b4e7a1c5f8d20363718b5c4e7f0a2d6",
"F19": {
"mwh_generated": 4500,
"rec_per_mwh": 1,
"rec_value": 15
},
"F20": 4500,
"F22": [
"ARR_PPA_SOLAR_FARM"
],
"F25": {
"description": "January 2026 RECs generated",
"fiscal_period": {
"month": 1,
"quarter": 1,
"year": 2026
},
"unit": "RECs"
},
"id": "ACC_REC_JAN_2026"
}
],
"anticipations": [
{
"F4": "scheduled_delivery",
"F10": 157500,
"F22": [
"ARR_PPA_SOLAR_FARM"
],
"F23": [
"ACC_GENERATION_JAN_2026"
],
"F25": {
"assumptions": {
"curtailment_risk": 0.02,
"mwh_expected": 4500,
"price_per_mwh": 35
},
"description": "Expected energy delivery and payment for January"
},
"F27": "2026-02-15",
"F28": 0.98,
"id": "ANT_ENERGY_DELIVERY_JAN"
}
],
"actions": [
{
"F4": "energy_settlement",
"F6": "Desert Sun Solar LLC",
"F9": 156000,
"F12": "2026-02-15T14:00:00Z",
"F15": "completed",
"F16": "wire",
"F21": [
{
"allocation_type": "partial",
"amount": 156000,
"currency": "USD",
"ref": "ANT_ENERGY_DELIVERY_JAN",
"ref_type": "anticipation",
"remaining_balance": 1500
}
],
"F22": [
"ARR_PPA_SOLAR_FARM"
],
"F23": [
"ACC_GENERATION_JAN_2026",
"ACC_REC_JAN_2026"
],
"F24": [
"ANT_ENERGY_DELIVERY_JAN"
],
"F25": {
"delivery": {
"caiso_settlement_id": "CAISO-2026-01-4521",
"curtailment_credit": 1200,
"grid_interconnection_point": "Palo Verde Hub",
"mwh_curtailed": 42.86,
"mwh_delivered": 4457.14
},
"description": "January energy delivery settlement with curtailment adjustment",
"variance": {
"actual": 156000,
"difference": -1500,
"expected": 157500,
"explanation": "Grid curtailment event Jan 15-16 (42.86 MWh)"
}
},
"id": "ACT_ENERGY_SETTLEMENT_JAN"
}
],
"component_hashes": {
"accruals": "sha256:PLACEHOLDER",
"actions": "sha256:PLACEHOLDER",
"anticipations": "sha256:PLACEHOLDER",
"arrangements": "sha256:PLACEHOLDER"
},
"merkle_root": "sha256:PLACEHOLDER",
"blockchain_anchor": {
"anchored_at": null,
"block_height": null,
"confirmation_time_ms": null,
"kaspa_tx_id": null
}
}
Canonical form — the hashed bytes
The canonical byte form is a single line: F-coded members in ascending numeric order, envelope members in their ruled enumeration, one legal spelling per number. The hash below is computed over exactly the bytes shown — copy the line into any SHA-256 tool to reproduce it.
{"F1":"ENERGY_PPA_2026_Q1_SOLAR_001","F2":"ENERGY_PPA_2026_Q1_SOLAR_001","F3":"SunPower Utilities","F7":156000,"F8":"USD","F15":"active","F25":{"compliance_flags":["FERC","NERC","REC_Tracking","ISO_NE"]},"F26":"power_purchase_agreement","schema_version":"4.2","timestamp":"2026-01-25T06:00:00Z","arrangements":[{"F4":"power_purchase_agreement","F5":[{"jurisdiction":"US-AZ","name":"Desert Sun Solar LLC","role":"generator"},{"jurisdiction":"US-CA","name":"SunPower Utilities","role":"offtaker"},{"jurisdiction":"US-CA","name":"CAISO","role":"grid_operator"}],"F7":180000000,"F11":"2025-01-01T00:00:00Z","F14":"2045-01-01T00:00:00Z","F25":{"annual_escalation":0.02,"capacity_mw":50,"curtailment_provisions":"Buyer pays 80% for curtailed energy","description":"20-year solar PPA - 50MW facility in Arizona","price_per_mwh":35,"rec_transfer":"included"},"id":"ARR_PPA_SOLAR_FARM"}],"accruals":[{"F4":"energy_generation","F17":"Calculated","F18":"hash_7e2a5c8f1b4d90362718a5c4e7f0b2d6","F19":{"capacity_factor":0.28,"meter_reading_end_mwh":1254500,"meter_reading_start_mwh":1250000},"F20":4500,"F22":["ARR_PPA_SOLAR_FARM"],"F25":{"accounting_entry":{"credit":{"account":"2100-Energy Payable","amount":157500},"debit":{"account":"1400-Energy Inventory","amount":157500}},"description":"January 2026 solar generation - metered output","fiscal_period":{"month":1,"quarter":1,"year":2026},"unit":"MWh"},"id":"ACC_GENERATION_JAN_2026"},{"F4":"renewable_energy_credit","F17":"Calculated","F18":"hash_9b4e7a1c5f8d20363718b5c4e7f0a2d6","F19":{"mwh_generated":4500,"rec_per_mwh":1,"rec_value":15},"F20":4500,"F22":["ARR_PPA_SOLAR_FARM"],"F25":{"description":"January 2026 RECs generated","fiscal_period":{"month":1,"quarter":1,"year":2026},"unit":"RECs"},"id":"ACC_REC_JAN_2026"}],"anticipations":[{"F4":"scheduled_delivery","F10":157500,"F22":["ARR_PPA_SOLAR_FARM"],"F23":["ACC_GENERATION_JAN_2026"],"F25":{"assumptions":{"curtailment_risk":0.02,"mwh_expected":4500,"price_per_mwh":35},"description":"Expected energy delivery and payment for January"},"F27":"2026-02-15","F28":0.98,"id":"ANT_ENERGY_DELIVERY_JAN"}],"actions":[{"F4":"energy_settlement","F6":"Desert Sun Solar LLC","F9":156000,"F12":"2026-02-15T14:00:00Z","F15":"completed","F16":"wire","F21":[{"allocation_type":"partial","amount":156000,"currency":"USD","ref":"ANT_ENERGY_DELIVERY_JAN","ref_type":"anticipation","remaining_balance":1500}],"F22":["ARR_PPA_SOLAR_FARM"],"F23":["ACC_GENERATION_JAN_2026","ACC_REC_JAN_2026"],"F24":["ANT_ENERGY_DELIVERY_JAN"],"F25":{"delivery":{"caiso_settlement_id":"CAISO-2026-01-4521","curtailment_credit":1200,"grid_interconnection_point":"Palo Verde Hub","mwh_curtailed":42.86,"mwh_delivered":4457.14},"description":"January energy delivery settlement with curtailment adjustment","variance":{"actual":156000,"difference":-1500,"expected":157500,"explanation":"Grid curtailment event Jan 15-16 (42.86 MWh)"}},"id":"ACT_ENERGY_SETTLEMENT_JAN"}],"component_hashes":{"accruals":"sha256:PLACEHOLDER","actions":"sha256:PLACEHOLDER","anticipations":"sha256:PLACEHOLDER","arrangements":"sha256:PLACEHOLDER"},"merkle_root":"sha256:PLACEHOLDER","blockchain_anchor":{"anchored_at":null,"block_height":null,"confirmation_time_ms":null,"kaspa_tx_id":null}}
Canonical-bytes SHA-256: 2827df40ec141704d3c74ed9d40863fb5303a052801cdadc158014e744c06e77
Validated against the live validator (POST /api/validate-foray): 0 errors, 0 warnings.