Skip to content

Verify Task 22 settlement

Task 22 is a Northset-operated live protocol rehearsal that completed the full OCH-1.1 path on Arbitrum One with real USDC: creation, bid selection, activation, proof submission, and settlement. You can reproduce its input and output commitments locally with cast, read those commitments from the hub, then inspect every lifecycle transaction on Arbiscan.

Install Foundry for cast and jq for the focused task readback below.

STATS_V1 commits to the values as keccak256(abi.encode(values)), where values is a uint64[].

Terminal window
cast abi-encode "f(uint64[])" \
"[1,1,0,1,0,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0]" \
| cast keccak

Expected result:

0x846b6d89d9195fd24b982b22cd6d5f31e7f8038ad326c23f88fd2c1fdb343c1a

For these 30 values, STATS_V1 calculates:

Field Value
n 30
sum 14
min 0
max 1

The output commitment is keccak256(abi.encode(n, sum, min, max)) using the exact types uint32, uint256, uint64, and uint64:

Terminal window
cast abi-encode "f(uint32,uint256,uint64,uint64)" 30 14 0 1 \
| cast keccak

Expected result:

0x017fa6dd03dcaaff55434c29cea86b2d02b3ebb7e499d8a9c30a3ab778268edb

Read Task 22 from the hub and select its inputHash, numeric state, and outputHash:

Terminal window
cast call 0x219f6a4206a38f05897257e40cea3b211ea5e592 \
'tasks(uint256)((address,bytes32,bytes32,address,bytes32,uint256,uint256,uint256,uint64,uint64,uint8,address,uint256,uint256,uint16,uint64,uint64,uint64,uint64,uint64,bytes32,uint64,bytes32))' \
22 \
--rpc-url https://arb1.arbitrum.io/rpc \
--json \
| jq '.[0] | {inputHash: .[4], state: .[10], outputHash: .[20]}'

Expected result:

{
"inputHash": "0x846b6d89d9195fd24b982b22cd6d5f31e7f8038ad326c23f88fd2c1fdb343c1a",
"state": 3,
"outputHash": "0x017fa6dd03dcaaff55434c29cea86b2d02b3ebb7e499d8a9c30a3ab778268edb"
}

State 3 is COMPLETED. Both on-chain commitments match the hashes computed above.

Step Block Transaction
Created 488273526 0x983c50c7…52ba12a
Selected 488276551 0x15b6650e…53ee19b
Activated 488276682 0xacac3fb8…508d97
Completed 488276933 0xf20dad92…49224

The completion transaction settled at 2026-07-27T13:59:34Z through the OCH-1.1 hub and STATS_V1 verifier.

All contract amounts use six-decimal USDC microunits.

Movement Microunits USDC
Creation escrow 5,000,000 5.000
Selection refund 3,500,000 3.500
Selected reward 1,500,000 1.500
Activation bond 10,000,000 10.000
Fee at the 100 bps snapshot 15,000 0.015
Net reward 1,485,000 1.485
Bond returned 10,000,000 10.000
Completion payout 11,485,000 11.485

The completion payout is the 10 USDC bond return plus the 1.485 USDC net reward. The hub retains the 0.015 USDC fee for treasury claiming.

You have now reproduced the proof’s committed statistics and followed the settlement that paid them. Continue with the OCH-1.1 protocol overview.