Dry vs Sound Handlers

Dry run and sound run execute the same Cairo code, but their syscall handlers behave differently.

AspectDry RunSound Run
Network accessYes (RPC calls)No (offline)
DeterminismNo (live data)Yes
PurposeDiscover keysExecute with proofs
State sourceRPC + key collectionMemorizers
Handler cratedry_hint_processorsound_hint_processor

Example behavior (header fetch)

Dry run:

fetch header via RPC
insert DryRunKey::Header
return decoded header fields

Sound run:

read header bytes from memorizer
decode RLP
return header fields

The interface presented to Cairo remains the same in both modes.