evm.execution_steps

Immutable selected per-step PROGRAM lineage.

Kind
Table
Layer
program_execution
Columns
30
Queries
2

Contract and lifecycle

Grain
One declared program step per (execution_id, step_index), including skipped suffix steps.
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 execution_id for candidate and run context.
  • Use attempt_id to deduplicate physical facts expanded across contextual owners.
  • For program owners use step_index; for observation-call owners use observation_index and observation_key.
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

Name Type
execution_id UUID

Contextual execution id

attempt_id UUID

Selected physical attempt for the contextual step

Contextual keys and reusable identities that establish row ownership.

Ordering and cardinality

Name Type
step_index UINTEGER

Program step index

Stable indexes and counts used to reconstruct deterministic order.

Payload and evidence

NameType
step_kindVARCHAR

Executable step kind

senderADDRESS

Requested caller

targetADDRESS

Requested target

valueUINT256

Requested native value

calldata_selectorBYTES4

Requested selector

Showing fewer

Operation-specific inputs, outputs, and authenticated evidence.

Status and disposition

Name Type
status VARCHAR

Step status

error_code VARCHAR

Stable error code

transaction_gas_status VARCHAR

Per-step gas completeness

execution_closure_status VARCHAR

Step closure status

Outcome vocabulary and NULL-controlling disposition fields.

Effects

Name Type
refund_counter BIGINT

Raw refund counter

Attempted and final effect facts or aggregates.

Commitments

NameType
step_hashBYTES32

Canonical step commitment

calldata_hashBYTES32

Requested calldata hash

call_context_hashBYTES32

Canonical call-context hash

access_list_rootBYTES32

Access-list root

blob_versioned_hashesBYTES32[]

Requested blob-versioned hashes

Showing fewer

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

Linked joins

Related public objects

Verified queries

Confirm fixture coverage

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

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

Example: table.evm.execution_steps.lookup

Check candidate ownership

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

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

Example: table.evm.execution_steps.diagnostic