In this track: Execution traces and low-level calls
advanced · 4 MIN READ

Trace proxy fallback execution

A fallback can forward input and return the delegated outcome.

LET’S PICTURE IT

A front desk forwards an unfamiliar request to the designated service manual.

SEE IT FOR YOURSELF
A valid counter call, step by stepStep 1 / 4
A valid counter call, step by stepFunction requestincrement()No argumentsBefore executionstored count0A local teaching example with a defined starting stateIncoming callCheck function dispatchCheck coded conditionsRules passConditions passContinue executionA failed check can revert insteadCalculation0 + 1Result: 1Storage writecount = 1Persists if call succeedsCalculating a local value and storing it are separate stepsPersistent statecount1Later readGetter reports 1No new incrementState, logs and browser display have different roles

This example begins with count zero and a request to call increment(). No real contract is deployed.

Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.

Start with selector dispatch

A proxy may handle its own administrative selectors and forward other calls through fallback logic. Exact dispatch behavior depends on the proxy implementation.

Copy the intended input

Forwarding code supplies calldata bytes to the delegated call. A trace should verify the complete range and preserve the argument framing expected by the implementation.

Propagate outcome deliberately

A typical forwarding path copies returned bytes and returns or reverts according to delegated success. Error handling is part of the proxy’s observable behavior.

Inspect authority and layout

Correct byte forwarding does not establish a safe upgrade path. The implementation target, initialization and shared storage layout all remain important.

Follow the execution

Proxy fallback
→ copy calldata
→ delegate to configured implementation
→ inspect success
→ return or revert with selected result bytes

A local conceptual trace with explicit assumptions; this is not a trace of a live transaction.

QUICK CHECK · NO PRESSURE

Can fallback forwarding preserve a delegated revert payload?

Your progress stays in this browser.
Keep exploring the original referenceethereum.org ↗

Original explanations by EtherTools. Examples are educational and source-linked; this site is independent of the Ethereum Foundation. Our approach.