FRAME TRANSACTION TESTING

Find the failures.
Follow the evidence.

Deploy and test your contracts, simulate signed Frame Transactions, and inspect evidence from real executions.

YOUR TRANSACTION OR DEPLOYED CONTRACT

Test your input.

Dry-run on the sponsor EIP-8141 devnet (chain 1337). Provide public transaction data only. Inputs are sent to the execution RPC for this check. Nothing is signed, broadcast or stored by Aftershock. Never paste private keys or credentials.

Use the official ethrex-eip8141-tracer codec. The sender and contracts must exist on this devnet. Up to 16 KiB, 16 frames and 3 million declared gas. A transaction hash is not transaction bytes.

YOUR COMPILED CONTRACT AND STATEFUL TEST PLAN

Deploy. Transact. Assert.

Provide constructor bytecode and ordered calls, mined transactions or EIP-8141 frames. Aftershock deploys your contract on a fresh private chain, generates test accounts and checks your expected outcomes. This is actual execution, including alternative-mempool admission and mining for Frame steps.

Plans, bytecode, calldata and resulting reports may be public through GitHub Actions. Never upload secrets, keys, proprietary code or private data. Compile Solidity locally and include linked libraries and constructor arguments in initCode; appendOwner can append the generated owner's ABI-encoded address.

Checking isolated runner availability…

FRESH ISOLATED EXECUTION

Run a new test.

Runs real signed transactions and state transitions on your owned WSL/Docker stack. Creates a new report; it never reuses an example as a new result. Mining cases take several minutes. Keep this process running until cleanup finishes.

CURRENT PUBLIC DEVNET OBSERVATIONS

Check the real network.

These buttons query the sponsor gateway now. They do not replay saved results, submit transactions or run isolated scenarios. The gateway receives the transaction hash you inspect.

No live check performed yet. Recorded scenario runs are listed separately below.

—Recorded runs
—Recorded passing runs
—Recorded findings
—Complete journals

THE TEST ENGINE

Scenario coverage.

This section lists test coverage. Start supported hosted scenarios above without local Docker, or use the local companion with prepared Docker images. Live checks inspect the public node; saved results describe earlier executions. Coverage cards do not start tests.

Loading scenarios...

THE RECORD

Run explorer.

SIDE BY SIDE

Compare outcomes.

Choose two distinct runs of the same scenario. Comparison checks verdicts and stable environment fields; it does not restore a snapshot.

RECORDED PUBLIC DEVNET BASELINE

Real submission. Successful frames.

Chain 1337, block 2020; 2 successful frames. Captured 2026-11-06T09:51:30.331Z. Workshop baseline; not an original scenario or live monitoring. Public source commit is unverified.

0x5609b38df43a2dc3eb354913434354a2cc656eac8cb5074b99ebb9d265f7b3d9

Open explorer · Download recorded receipt

READING THE RESULTS

Evidence, with limits.

Frame transactions separate validation, payment and execution. Admission is not proof that execution succeeded: inspect the recorded receipt and each frame status.

PASS covers the declared scenario in its recorded environment. FAIL identifies a failed check; it does not automatically establish an exploit. BLOCKED and INCONCLUSIVE require more evidence.

Aftershock tests the pinned sidecar implementation. Draft alternative-mempool rules and other client versions may differ. Read the source pins and preconditions with each report.

Fresh-state replay creates fresh accounts and genesis, then compares action verdicts and stable environment fields. Checkpoint-backed keyed-nonce reset is also available through the CLI. Neither mode reproduces historical timing. Commands are displayed for manual use only.

Project documentation ↗

UNDER THE SURFACE

Run detail.

Select a run to explore its timeline and evidence.