Rehearsed every 6 hours

We build the challenge. We sign it. We are not allowed to send it.

Every other page here reports something the network can do. This one reports what it cannot, the same way: by building the real transaction, putting it to the real contract on Ethereum, and printing what came back.

1 of 4
stopped at step
and the first gate is identity
yes
refusal is about who we are
the same bytes get a different answer from a validator
3
rehearsals on record
a dated series, not one screenshot
1 WETH
bond the challenge needs
never examined — we never get that far
1Put up the bond
refused — not on the list
newStake(uint256 tokenAmount, address withdrawalAddress) · 0x68129b14 · 68 bytes

Deposit the stake that backs a rival claim. Losing a challenge forfeits it, which is what makes a challenge cost something to bring.

Gate: onlyValidator — the caller must be on the rollup’s validator list
asked aswhat the rollup said
0xb452c8cF5d36F5C7c5E5d58C72BaEB21830659db
the key that signed the transaction below
NOT_VALIDATOR
0xa0A1D8cd6f867a583a39232a477ff231aFD8eC4C
the control — an address that is on the validator list
ALREADY_STAKED
2Post the rival assertion
refused — not on the list
stakeOnNewAssertion(AssertionInputs assertion, bytes32 expectedAssertionHash) · 0x3b86de19 · 644 bytes

State a different end-state for the same range of blocks. This is the actual disagreement: same parent, same starting state, different claim about where the chain ended up.

Gate: onlyValidator, and the caller must already hold a stake
asked aswhat the rollup said
0xb452c8cF5d36F5C7c5E5d58C72BaEB21830659db
the key that signed the transaction below
NOT_VALIDATOR
0xa0A1D8cd6f867a583a39232a477ff231aFD8eC4C
the control — an address that is on the validator list
EXPECTED_ASSERTION_SEEN
3Open the challenge
refused — not on the list
createLayerZeroEdge(CreateEdgeArgs args) · 0x05fae141 · 292 bytes

Open the top-level edge of the bisection game between the two rival assertions. Everything after this is the two sides narrowing the disagreement.

Gate: the caller must be a validator; the rival assertion must exist
asked aswhat the rollup said
0xb452c8cF5d36F5C7c5E5d58C72BaEB21830659db
the key that signed the transaction below
NotValidator(address)
0xa0A1D8cd6f867a583a39232a477ff231aFD8eC4C
the control — an address that is on the validator list
EmptyEdgeSpecificProof()
4Bisect to a single step and prove it
not built
bisectEdge / confirmEdgeByOneStepProof

Halve the disputed range repeatedly until one machine instruction is in dispute, then execute that instruction on chain. Whoever is right wins; whoever is wrong loses the bond.

Gate: a live challenge, and a WAVM execution trace of the disputed range

We do not build this. It needs the Arbitrum prover over the disputed range, which is a substantial piece of machinery we have not stood up. It is also unreachable: there is no challenge to bisect.

The transaction, signed and not sent
disputes assertion
0x79af27a06f6419b9607c16038a836c51fc3c810bc2dd3b6b786849e516f3f3eb
signed by
0xb452c8cF5d36F5C7c5E5d58C72BaEB21830659db
transaction hash
0x078c9c77ebf9c03c38a68b94319879e7f84cd24bb47dded9d080fbab0437dc70
rehearsed
2026-08-06 20:50 UTC
0x02f9032d018080840696b824831e84809423a19d23e89166adedbdcb432518ab01e4272d9480b902c450f32f680000000000000000000000000000000000000000000000000de0b6b3a7640000f9828b7c1846e6808790831d0e268eb85ab56fa6d145a9f627e8141faea55a5aa6cd11f8a436aab50ee381ab04d4e8cfbfcbe2dd3e5ab02841e3edffaaeb5eb9c10cd7ec6acaf1c441a3f6bd0900ad20f15855ba775a96f1939118cbc629dc970000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000006f38fc91105fc9a43931dca33450ab3315e3d4fa000000000000000000000000000000000000000000000000000000000000b2fa000000000000000000000000000000000000000000000000000000000001461eaae7e72eb20a5a6408b20bec2cfd860e6526cbb22322583987b6b800585a888d8fea2cff296069978e19b7945b6f779e53999bda623da525d360846137b78c6d00000000000000000000000000000000000000000000000000000000000145b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a7be6017c8f37402236a93c0576fcbccccd0637c56056f4ee832364c580fa5999ba9486a1a7a6777ef99a9b73789cca2479a98032876226cd226edb6baa96815b5f7d38ba3aeaef16dece7537f3f407aed0f131bd5bf9077994c2dc3f2a6b80000000000000000000000000000000000000000000000000000000000001461e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c940e1b1c30b05543240d7fb9b65ae3ac2a66fa09f965e0f4ee2dec97139263179af27a06f6419b9607c16038a836c51fc3c810bc2dd3b6b786849e516f3f3eb000000000000000000000000b452c8cf5d36f5c7c5e5d58c72baeb21830659dbc080a0f6ad5b6a6a7c21669e5426562a3a2d6978fc8edba5826b64fe20d39272ef36e2a053101a02d1dce811b7233ed883fb7c95c414104fee683db0e3dbebff7ec16931

Recover the signer from those bytes and decode the calldata yourself. Nothing here has to be taken on our word.

Four things this page will not imply

There is no discrepancy. The rival claim states exactly what the operator stated, because the network checked and they were right.

It was not broadcast. Sending it would spend real ether to buy a revert reason eth_call returns free. The service has no code path that can send, and a test fails if one appears.

The proving step is not built. Bisecting to a single instruction needs the Arbitrum prover, which we have not stood up. It is also moot — a road refused at the first gate never reaches the fourth.

This is not an accusation. A permissioned validator set is a normal stage for a young rollup. What is not normal is that nobody outside can check the claim — that is the only thing this page changes. See the fund for what the network does about it.