sim_receipt
Run a seeded scenario and get back the result PLUS a signed run receipt: an Ed25519 certificate over (model id, scenario, result hash, service revision). Anyone can check it two ways — verify the signature offline against the embedded public key (proves this service reported this result), and POST it to /api/receipts/verify (no auth) to replay the run and confirm the result hash reproduces (proves the run is reproducible, not invented). The current signing key is at GET /api/receipts/key. Reproducibility is the bottom rung of the trust ladder receipts build: play the model, check the anchors, re-run the seed, verify the certificate. The result is the engine's own form, the one POST /api/models/{id}/scenario returns: contended is the unsplit list with each entry's kind (only conserved and bounded are shortages; queue means the work had not arrived, and state that the model was in another phase of its cycle), not sim_scenario's split into contended, waitingForWork and neverFired, because the result hash covers the result exactly as returned. Costs 1 token from your account's compute bucket.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | model id to run | |
| scenario | No | scenario JSON (hours, samples, seed, marking, rates, schedule, summary — the same shape sim_scenario takes); sim_scenario's defaults (hours 8, realizations 16, seed 20260809) fill whatever is omitted, and the receipt's scenario records the filled-in values so its replay reproduces this run. The result hash covers the result as returned, so a summary: true scenario certifies the summarized form and replays to it |