Generated reports

Generated report detail

Nockchain<->multi-EVM Bridge (Arbitrum/Optimism)

Fixture xchain-multi-evm-bridge-v0 generated pass at 2026-06-10T22:58:55.223Z.

JSON
Status
pass
Steps
1/1
Invariants
6/6
Snapshots
2

Environment

Mode

mock-fakenet

gRPC Endpoint

n/a

Fakenet Command

model

Generalized cross-chain tester over the EVM chain registry (src/data/evm-chains.json): a correct Nockchain<->Arbitrum withdrawal with an Optimism endpoint.

Exercises chain-id-bound attestations, per-chain finality adequacy (Arbitrum L1-batch floor 64), per-(destChainId,id) replay namespacing, distinct EIP-712 domain separators, optimistic challenge-window respect, and registry-driven HTLC hashlock (Nockchain tip5 + Arbitrum keccak256).

Honest limit: a single-process MODEL of multiple chains (model-attested). See docs/xchain-security-model.md.

Next Actions

  1. Replace mock poke and peek execution with local fakenet adapter calls.
  2. Replace command-backed fakenet metadata probes with stable gRPC-native probes once node surfaces are available.
  3. Persist generated reports under a project workspace.
  4. Add app-specific invariant packs as the NockApp interface stabilizes.

Invariant Packs

No invariant packs referenced.

Run Steps

Observe terminal joint multi-EVM state

bridge

pass

true

Invariant Results

Attestations bind their target chain id (no cross-EVM replay)

critical

pass

Observed all 1 message(s) bind their target chain id; expected every cross-chain message's signed payload binds its targetChainId (raw txs use EIP-155), under xchain.crosschain.

Each settle meets its chain's finality floor + basis

critical

pass

Observed all 1 settle(s) meet their chain's finality floor + basis; expected each settle has confirmations >= max(app, registry floor[chain]) on the chain's required basis, under xchain.finality.

Replay keyed per (destChainId, id)

critical

pass

Observed all 1 message(s) unique per (destChainId,id), source-scoped, correctly routed; expected each message unique per (destChainId,id), carries a sourceChainId, routed to its expected chain, under xchain.routing.

Distinct EIP-712 domain per endpoint; authorizations bound

critical

pass

Observed 2 endpoint(s) have distinct, chain-bound, re-derived domains; authorizations match; expected each endpoint has a distinct (chainId,verifyingContract) domain re-derived at verify; authorizations valid only at their bound endpoint, under xchain.domain.

No optimistic withdrawal credited before finalization

critical

pass

Observed optimistic-rollup withdrawal(s) credited only after L1-finalization / challenge window / LP-bond; expected no optimistic-rollup withdrawal credited before L1-finalization or its challenge window closes, under xchain.exits.

Each HTLC leg uses a hash its chain can compute (registry-driven)

critical

pass

Observed all 2 leg(s) lock the shared preimage under a chain-computable hash; commitments distinct; expected each HTLC leg locks the shared preimage under a hash its own chain can compute, with distinct per-chain commitments, under xchain.htlc.

Alerts

No alert policies configured.

Adapter Observations

No adapter observations captured.

State Diffs

PathBeforeAfter
xchain.observedundefinedtrue

Snapshot Timeline

Initial state

initial

e5abf48bfe46f5bc

After observe

observe

e5abac4ada5d2ced

Artifacts

Report ID

lab_xchain-multi-evm-bridge-v0_20260610225855223

Report Hash

sha256:c9c35cc927527b81661b41954c974ea0a5d21b5c5f8a7a7608784a33dbe73ce1

Snapshot Root

e5abac4ada5d2ced

JSON Path

/bundle/server-functions/default/.nocklab/xchain-multi-evm-bridge.report.json

Markdown Path

/bundle/server-functions/default/.nocklab/xchain-multi-evm-bridge.report.md

Markdown Bytes

2239

Changed Paths

xchain.observed

Markdown Preview

# ✅ Nockchain<->multi-EVM Bridge (Arbitrum/Optimism) Lab Report

Alert Summary

0 triggered, 0 clear

Verification Candidate

Candidate

Nockchain<->multi-EVM Bridge (Arbitrum/Optimism) Verification Candidate

Status

ready

Signature

unsigned

Invariant Packs

none

Report Hash

sha256:c9c35cc927527b81661b41954c974ea0a5d21b5c5f8a7a7608784a33dbe73ce1

Snapshot Root

e5abac4ada5d2ced