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.
Runs eth_call against deployed code at one captured block. State changes are discarded. Use a signed Frame Transaction above to test account validation in a frame context. This call does not certify EIP-8141 compatibility or test an undeployed contract.
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.
Live network checks work on this website. To run a fresh isolated test, start the local runner on your machine, then open it below:
npm run --silent aftershock -- serve --port 4323Open local test runner
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.
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
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