# evm.runs

Completed atomic PROGRAM invocations.

Canonical HTML: <https://determica.com/docs/tables/evm-runs>

- Kind: Table
- Layer: program_execution
- Category: Simulation
- Tags: Program, Run, Public

## Contract and lifecycle

**Grain:** One atomically completed invocation per run_id. Identifying tuple: (run_id).

**Lifecycle:** run publishes this immutable row set atomically with its owning run. Statement failure or caller rollback publishes no durable prefix; direct DML is unsupported because it can corrupt the documented invariants.

**Status and NULLs:** Interpret nullable payloads only through their owning status fields. Defensive poisoned and engine_error outcomes mean the engine refused to claim a trustworthy normal result; broad view nullability also covers owner alternatives and left-joined evidence.

### Join guidance

- Join evm.executions on run_id; one run owns its ordered candidate executions.

### Effect semantics

- Access flags describe attempted EVM access, not committed state change.
- Effect facts retain attempted evidence and final committed, reverted, discarded, or poisoned disposition.
- execution_state_deltas contains committed checkpoint transitions only; observation-call effects are excluded from execution_effect_summary.

## Columns

### Identity and ownership

Contextual keys and reusable identities that establish row ownership.

- `run_id` (UUID; required; primary key) — Contextual invocation id

### Ordering and cardinality

Stable indexes and counts used to reconstruct deterministic order.

- `candidate_count` (UBIGINT; required) — Published candidate count

### Payload and evidence

Operation-specific inputs, outputs, and authenticated evidence.

- `engine_semantics` (VARCHAR; required) — Execution semantics identifier
- `evidence_semantics` (VARCHAR; required) — Evidence semantics identifier
- `runtime_kind` (VARCHAR; required) — native or wasm runtime

### Commitments

Hashes and roots authenticating specifications, facts, state, or results.

- `invocation_root` (BYTES32; required) — Canonical invocation commitment

### Timestamps

Contextual publication times that are excluded from reusable semantic identity.

- `created_at` (TIMESTAMP; required) — Invocation creation time
- `completed_at` (TIMESTAMP; required) — Atomic publication completion time

## Related public objects

- [evm.executions](/docs/tables/evm-executions.md) — downstream

## Verified queries

### Confirm fixture coverage

Confirm that this object has rows owned by the stable seven-candidate public fixture.

```sql
SELECT 'evm.runs'::VARCHAR AS object_name, CASE WHEN count(*) > 0 THEN 'PASS' ELSE 'FAIL' END::VARCHAR AS status FROM evm."runs" o JOIN evm.executions e USING (run_id) WHERE e.candidate_key IN ('complete-effects', 'later-revert', 'ordered-logs', 'create', 'selfdestruct', 'blockhash', 'transient-access');
```

### Check candidate ownership

Diagnose whether this object remains linked to at least one stable fixture candidate through public keys.

```sql
SELECT 'evm.runs'::VARCHAR AS object_name, CASE WHEN count(DISTINCT e.candidate_key) > 0 THEN 'PASS' ELSE 'FAIL' END::VARCHAR AS status FROM evm."runs" o JOIN evm.executions e USING (run_id) WHERE e.candidate_key IN ('complete-effects', 'later-revert', 'ordered-logs', 'create', 'selfdestruct', 'blockhash', 'transient-access');
```
