Dashboard
4 of 4 claims settledSepolia → Creditcoin CC3 testnet
DashboardSite

Proof Room

Every claim Morrow makes, next to the transaction, proof or live read that backs it. Nothing here is a screenshot: re-run the checks from this browser.

Independent live checks · no wallet required

Check the chains. Not a screenshot.

This browser queries public RPCs for pinned runtime hashes, contract surfaces, balances and proof refusals. No transaction is signed. A failed read stays UNVERIFIED; archived green results are never substituted.

Live results pending. Previous results cleared; no cached verdict is shown.

Sepolia has two independently probed RPC endpoints. CC3 currently has one verified public endpoint; a CC3 outage remains visible. The archived 26-check submission report below is a different, broader verification scope.

Verify it yourself, without this page

An independent, keyless command re-reads Sepolia and Creditcoin and prints PASS, FAIL or UNVERIFIED for the contracts, the claims and the refusals on this page. It shares no code with this dashboard and needs no wallet. Public RPC history can take several minutes.

$ git clone https://github.com/Enoch208/morrow.git && cd morrow
$ pnpm install --frozen-lockfile
$ forge build --root contracts
$ pnpm verify:submission
  • Deployed runtime against compiled artifacts, immutables masked
  • Dispatcher selectors against the ABI, no upgrade or destroy opcodes
  • Amounts, identities and native proofs recomputed from chain data
  • Withdrawals, beneficiary, refusals and market liabilities
exit 0
VERIFIED · every check passed
exit 1
FAILED · at least one check contradicts the chain
exit 2
UNVERIFIED · evidence missing or unavailable, none failed

Canonical sale · Claim A · #2

One sale round, one source outcome, one destination outcome. The order below is load-bearing: funding exists on Creditcoin before the seller gives up the claim on Sepolia. The assignment proof was held back past maturity on purpose, and settlement still went through.

Open claim
  1. Reserve on Sepolia
  2. →Prove the reservation
  3. →Buyer funds into BOUND
  4. →Seller preflight confirms BOUND
  5. →Assign on Sepolia
  6. →Prove the outcome
  7. →Settle on Creditcoin
  1. 01
    Payout funded in vault12 Sep · 22:46:30 UTC0xea4a38…aeb9 · EtherscanChecking attestation… · block 11,691,914
  2. 02
    Source reserved12 Sep · 22:49:26 UTC0xb6a57d…fc12 · EtherscanChecking attestation… · block 11,691,929
  3. 03
    Reservation attested12 Sep · 22:57:00 UTClive-read-verified
  4. 04
    Reservation proof verified12 Sep · 22:57:15 UTClive-read-verified
  5. 05
    Destination funded12 Sep · 22:57:35 UTC0x85dbf7…719f · Blockscout
  6. 06
    Assigned on source12 Sep · 22:58:39 UTC0xf76189…5028 · EtherscanChecking attestation… · block 11,691,974
  7. 07
    Assignment attested12 Sep · 23:06:55 UTClive-read-verified
  8. 08
    Assignment proof verified12 Sep · 23:09:39 UTClive-read-verified
  9. 09
    Assignment proof held back12 Sep · 23:09:39 UTClive-read-verified
  10. 10
    Late cancel refused on source13 Sep · 05:52:43 UTClive-read-verified
  11. 11
    Redeemed at maturity13 Sep · 05:55:04 UTC0x84d435…744b · EtherscanChecking attestation… · block 11,693,999
  12. 12
    Seller funds claimable13 Sep · 05:56:06 UTC0x2d08bb…ddbe · Blockscout
  13. 13
    Seller paid13 Sep · 05:57:05 UTC0xf40820…889f · Blockscout
  14. 14
    Protocol fee withdrawn13 Sep · 05:57:51 UTC0x724d48…125c · Blockscout

Who signed

Every campaign claim uses three distinct testnet wallets, all operated by the Morrow team. The contracts enforce the roles, not the operator: only the current beneficiary can reserve, only the seller can assign, and a withdrawal pays only the calling wallet.

  • Payer / TreasuryFunds claims, receives the protocol fee
    0x9DDB9007…D6E2365D
  • Seller / RecipientReserves and assigns, receives seller net
    0xB9e1914C…A633D12c
  • Liquidity buyerFunds escrow, receives refunds and redemptions
    0x8c48477b…745FDfbE

What Morrow refuses

Attacks attempted against the live contracts. Replay each one at its recorded block, or against the latest block, straight from this browser.

Claim B proof against Claim A

Authentic proof, wrong sale

Native verifier accepts the same bytes; the market must still refuse them

Rejected · SaleIdMismatch
Run it yourself on Creditcoin CC3 Testnet
historical-replay · read-only eth_call, no wallet
live-read-verified · read-only eth_call, no wallet
CC3 block 5,477,528 · eth_call, not mined12 Sep · 23:01:02 UTC · live-read-verified
Claim A

Cancel an assigned round

Source vault must refuse cancellation once a round is assigned

Rejected · RoundMismatch
Run it yourself on Sepolia
historical-replay · read-only eth_call, no wallet
live-read-verified · read-only eth_call, no wallet
Sepolia block 11,691,986 · eth_call, not mined12 Sep · 23:01:04 UTC · live-read-verified
Claim A

Cancel after deadline with proof held back

Delay changes when evidence arrives, never the source outcome

Rejected · RoundMismatch
Run it yourself on Sepolia
historical-replay · read-only eth_call, no wallet
live-read-verified · read-only eth_call, no wallet
Sepolia block 11,693,988 · eth_call, not mined13 Sep · 05:52:43 UTC · live-read-verified
Claim C round 1 cancellation against round 2

Old-round proof, new round

A cancelled round's authentic proof must never settle the next round

Rejected · SaleIdMismatch
Run it yourself on Creditcoin CC3 Testnet
historical-replay · read-only eth_call, no wallet
live-read-verified · read-only eth_call, no wallet
CC3 block 5,480,530 · eth_call, not mined13 Sep · 11:33:58 UTC · live-read-verified

Same bytes, two verdicts

An authentic Attestcoin proof from Claim B, submitted to fund Claim A. Creditcoin's native verifier confirms the proof is real. Morrow still refuses it, because the proven event belongs to a different sale.

Proof fields are byte-identical in both callskeccak256(proof fields) · native 0xc5c1c713…1c91343b · market 0xc5c1c713…1c91343bchain key 1 · Sepolia block 11,691,931 · 2,752 bytes of encoded transaction
Creditcoin native verifierBlockProver 0x…0FD2 · verifyNot run yet
Morrow market0x7c33…4474 · fundReservationNot run yet
historical-replay · read-only eth_call at the block the refusal was recorded, no wallet · proof from b-reserve-proof

No admin path · live

Reads the deployed bytecode of both contracts and checks that each dispatches exactly the functions in its published ABI, with no opcode that could upgrade or destroy it.

Reading deployed bytecode…

Attestation frontier · live

How far Creditcoin has attested Sepolia, read from the ChainInfo precompile at 0x…0FD3. A source event can only be proven once its block is at or below this height.

Reading ChainInfo…

Deployments