Anchor batch 20261005

22879 signal snapshots, hashed into one root and written to Arbitrum One. The list below is the batch's exact composition, in the order the tree was built — that order is part of the root.

Merkle root
0x2fe724f9fe21578e344b60fe062939096dd10e68c3c46eef159574882b4633eb
Network
Arbitrum One
Anchored
Oct 5, 2026 04:30 UTC
Last re-checked against the chain
Oct 10, 2026 — the root on chain was read back and rebuilt from our rows that day

Read the root from a node rather than from us — roots(20261005):

curl -s https://arb1.arbitrum.io/rpc -X POST -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0xceacc40cf7b7c797d990dce7164fcccd87dad693","data":"0xc2b40ae4000000000000000000000000000000000000000000000000000000000135288d"},"latest"]}'

Every leaf in this batch

22879 total · page 31 of 229

Leaves are numbered from zero in tree order. Each one is computed here by hashing that signal's stored snapshot — not copied out of a column — so a row whose bytes changed after the anchor shows up as a mismatch. Open a signal to see those bytes and the branch that carries it to the root.

3000 BTCUSDT Jul 18
110b7d6f613d785fc99190c446999baf711bbd89846f1e80e89647bb2a99c4f0
3001 BTCUSDT Jul 18
6652faec34b351509ca2c7f1e7d410ce6c4638b482d9994628eb85c1fde382b9
3002 BTCUSDT Jul 17
f4db36fa0e2af28c7fb9b89126c775f5e43618788adb736177313d1f6e4abb44
3003 BTCUSDT Jul 17
449cd9f351913d13f1bf47372240a3a305fa17a6fad22b8b542104cad7024d2e
3004 BTCUSDT Jul 16
b73a810b340bc0ea330f05a9d2b3a757ff241fd71e0d6cb101d856b88db7178e
3005 BTCUSDT Jul 16
383f026dbe10d0b302f18ed8954a9c24d0a67ab36c9a3ca7e3ed71b47184f1c6
3006 BTCUSDT Jul 16
49b5e8c9941c0fd60b149fc356d15722a83bb71f6e21bda8b3629f684e46b8a8
3007 BTCUSDT Jul 16
cd82842876dc4a72a167f21752d9a12d22da751903c36e9cab1eb85ad5eca74b
3008 BTCUSDT Jul 15
bf6214463fb3349cdfc859e3c44ce09108adbf73c2b626161c6dd7b0c86c83bf
3009 BTCUSDT Jul 15
29f680da9d830c1a9897f0575ae0a307850fead9a9e114092ad8483019d81548
3010 BTCUSDT Jul 13
dbdc45df5c09f8560fa512e83c845850c3c48d0a2a22e459dc93fbad34767a68
3011 BTCUSDT Jul 13
7c8279b2abfb703fb32b6dc857785a531e638433bb0cf03854148787d2114e81
3012 BTCUSDT Jul 10
1442fc616dc47c52e234d8a649a9dc38d6106eeddac76e9451bc3aec25174788
3013 BTCUSDT Jul 10
6ebc0167631fd805bdbed6e6a8603721e1788527e6bb3fc2c50decc7d337f53c
3014 BTCUSDT Jul 9
9798f0cd226747a1e4f57262b7f3b4a0dd00d6530c5f5b660a3d257d90616d55
3015 BTCUSDT Jul 9
154a5d760af89ee752bee3a31766205feb0a52cb1ded1680a9c7f8b02b320c9d
3016 BTCUSDT Jul 8
637914d39ac0e345541395b5ec677ab3fb6ecd5ef5aa41cd4f6dad436b8d6eeb
3017 BTCUSDT Jul 8
3382fb5722048392d0aedb368d5aa85a3f6e11afc7ba788b7882e81bf37d9498
3018 BTCUSDT Jul 8
b60fe04bcd749633190579ff8c86437147c47ba57919dcbeb7bceff3646277d5
3019 BTCUSDT Jul 8
ecccc45580e7ad817bf3e433cb58691e568ddf1c3d9deda435c877e8682f62e5
3020 BTCUSDT Jul 7
e49520428decddf310962b670d7fbed620a2420634582f907c1662b060d62ffc
3021 BTCUSDT Jul 7
8600270f04a06f7d13ec724df2c245384a9a0404f592ba0d77d1077b4cb6eeb9
3022 BTCUSDT Jul 6
fd71ae44821c092342b26723ea930857720fb97adb2bbbff15e57e4330ab069a
3023 BTCUSDT Jul 6
048d5d281877aabfdc94197e3fcb29047f33430432547d4d427ae84428988c05
3024 BTCUSDT Jul 6
a0c4d779aae6397f8bcfb1e6b114d9a340d7eed824c65722e7bf7a35061293e2
3025 BTCUSDT Jul 6
875f4adf1dafda0f09221146ca26abc7da8cd3bbfe5bff54ad53b149c0fa7fae
3026 BTCUSDT Jul 6
625dadb1ec79cf5bf87cdda06ea65ee06b4f28a653327fb22219f40ed408b2d4
3027 BTCUSDT Jul 6
a354dda4afc61761a1b739c6d582b1740cac28c3f236d621aabb9d890681efd0
3028 BTCUSDT Jul 4
1ec24d8a3a06cc4434fd0b2f10b913682c9551e9df364c00b6f0da4b62e0c089
3029 BTCUSDT Jul 4
acdc2a90a09c2306584fbbb136fc90336e8c964093a725d53bce8ce05e464f0c
3030 BTCUSDT Jul 4
b52576140c9ee56395bb7eeb4116813687ca376a89f4b13974e42f0a3f3b1743
3031 BTCUSDT Jul 4
a9371e08150bb093e10fae59e4927d403952cd706d0d47b944479587b494a653
3032 BTCUSDT Jul 2
8297f4ea2b13acd32432ec0a509de39b3075037afdbb89cf95452f22010298ad
3033 BTCUSDT Jul 2
7dad34b8a08e93ec64b8eb20d50b1874818184e50f5bbe499c0457250090f7bc
3034 BTCUSDT Jun 30
68343541c212768824887e73537be1fc47b87a9f61f92785e39d70666313d96c
3035 BTCUSDT Jun 30
75ff96e0cad1242e294d0c105222c527d58601d02435b2aac54e14953d085e1f
3036 BTCUSDT Jun 30
b3ca1a5b578e7ce24f143d97878a58870239b37a18c191f36ada364b3fbc93fb
3037 BTCUSDT Jun 30
b5583bed4501c1e211979c4a624c1b61befedb169a9be8467a97d526c4e7efab
3038 BTCUSDT Jun 30
092234ee84d7c0cc8e4a212326438db01f1eeaad998b6f9866abb78fb6805383
3039 BTCUSDT Jun 30
889982350ea9597432102350499a89444e501633d5aa76a6ab72c72d6d1400bf
3040 BTCUSDT Jun 27
60ff832cc103d0047cbf50666dc5b42444da2a3bf489c7157a6e74644f823ff1
3041 BTCUSDT Jun 27
555e914fb62f1f196e8ac5b5618213b0e2f62b330bea62e082afd360f1a779d2
3042 BTCUSDT Jun 26
897f2de6ce16f4798bfddbc593f615857f1a35b2f62b4562990a8a0071614611
3043 BTCUSDT Jun 26
52056791d3b0e7081a67b75afc163fa0f4b548873f6fedf41a54c66f463d77cb
3044 BTCUSDT Jun 18
aa748916b200fcf4dc2e4fbf1dd1a9552ec06f3b29590e76fb2b50ae7b3b0365
3045 BTCUSDT Jun 18
81378b0c2cd6abde6260c9057092063bb37aa97dccbb5dcbbdef484b75b1a831
3046 BTCUSDT Jun 17
7ed4235c1747069af706ef3d03215bfe58dcc9051845c6277b1a4e3070711109
3047 BTCUSDT Jun 17
dae0fc3b4012e159272b2007b435c59b8c5b9a4c35698e379d345980269705db
3048 BTCUSDT Jun 16
d8881247ac892f1a71aa37f84e5200df55837ef5cbc06949ebdbae1c615325d6
3049 BTCUSDT Jun 16
873a072b2373bcd0716031f5cdad6058cd373be920fad216195e419a62c660dc
3050 BTCUSDT Jun 16
d551304db11a6e4a014f5f9d61fbb7691dd15c34ced3813b06f90a6340353f6f
3051 BTCUSDT Jun 16
e1c7e9555f7d28a70f04306a6c8a667d45be5217d85cdea2f15399310d8095d1
3052 BTCUSDT Jun 15
57ca2e91128e14c103767585f4438368dbb9c8ac621bb6fb652f85e54dda1c0b
3053 BTCUSDT Jun 15
1c282d581aba2d300e2556486692cf6889bdd49b2cb233f00ecd2f91554fc60d
3054 BTCUSDT Jun 15
9000fcbf9e66e6c0ea79b9f5612da0302e4ddfa46b995f153f02c0ecae33d1d9
3055 BTCUSDT Jun 15
c29ecd3bc78351f9cfa6bf6c9c37907a6effaf5fa99c59c694d57ba463f06b26
3056 BTCUSDT Jun 11
714b8f922e4bff9542eac8876e20c533e38f6ee2e76a1496b18f4eb321ee5ae3
3057 BTCUSDT Jun 9
54930cca1cbcc739298b9fac03120dc0ca621f7a69851187e5b997c0ae236fe7
3058 BTCUSDT Jun 9
4a34f626def10092f04e1179289777a36aabd7983d9a23706cb629df97674de2
3059 BTCUSDT Jun 6
840e09f1fa1696c2770c63e32202690eef6a80971099db662e2ee9323445c63a
3060 BTCUSDT Jun 6
211705fd0f9d86c4ae12edc62cd55a9ba09e720322140936bc7b670d7d64857c
3061 BTCUSDT Jun 5
6c3701c7d6da5d31474524d0d62c4795a98cb89d5b4c520d973e4de49dc3b1c1
3062 BTCUSDT Jun 5
1ecc0a6e47a598292577050fec8b995d55db54a0792577070cf98370e8f79684
3063 BTCUSDT Jun 4
6c3226fd261f06ac52c67fa9e8038f56a3cc836a17b0597818d1ca681ade5d6f
3064 BTCUSDT Jun 4
13382da8927777578d0b1bb04ad30f84241ab5c6c3eae4f37cafb20399ec214a
3065 BTCUSDT Jun 4
3168e54d973df1b65b580dc1acdd92b0daa7f4a610a1f44b315a23b9cd423f00
3066 BTCUSDT Jun 4
4b20f6229033d17a384c8f5d8c677cf59682a502af06ebc81b517f3cc13e1753
3067 BTCUSDT Jun 3
09f8ef1d498e8ea3b50337b312c05f149ce2cf3f6823e1c9190503e2c05b2838
3068 BTCUSDT Jun 3
6f6a7a41cedc84730bbee5127008737ba9b47f74595300a60d06f61c209ac90a
3069 BTCUSDT Jun 2
e3c09926b0a7ab77d6eefe1788fcf52cb4bde88d3bba8efa4efc62be34ef66f6
3070 BTCUSDT Jun 2
a46b3d3d074c1417cbc20e73a3c18da4f5b0965801d2016d2ff790d38824f392
3071 BTCUSDT Jun 1
1e7190aa53d0bba50d8c406aace824856b3363e6cb9d0cf90a7594df0b82e4b7
3072 BTCUSDT Jun 1
59f215b4b25760e54498c7fe7c03f01cdbf0d8d5fbe3d3d0c4d961317a3f0d8e
3073 BTCUSDT Jun 1
7755df174dd3e0cecf046656ab97a3820cafd32d23c1e198217df65a4c5b4761
3074 BTCUSDT Jun 1
c33ce943eebc8fe93fe4cf8b6a9dc855ed46fe29d5bdf422bbc29d673486a651
3075 BTCUSDT Jun 1
c4a599fce79be6e7665c3231141383a0610b434296230ba0a3ede50d9cbc19e3
3076 BTCUSDT Jun 1
a21728caadeb6ef36b46869ec3d13f70c96700bcdde0b7845fcb1f8620efc0f2
3077 BTCUSDT May 28
12892f589a3398e3f4cbfea87d6910484761fd91e70e8bc9d1fe3f02ed65efde
3078 BTCUSDT May 28
59ea511cd21afd0e93d065ef67515797cd8b7b24057d60266a90f59e9130368a
3079 BTCUSDT May 27
ef048d2ef0761aba82fdbca61446324cd174256a1104cdb18ab8b7a9c66d7f65
3080 BTCUSDT May 27
0178a703f630594144fa85961a09aa3aca1c163d58ea06501ad9ba0735384223
3081 BTCUSDT May 27
8cd8ca8b0e62eae986ae358642557f3869fc752712aa0326d01ad2ec2f30fba1
3082 BTCUSDT May 27
9c7d78bba31d001fb959b11a4910631ee2416171e431a28b529044f402baa026
3083 BTCUSDT May 26
76cef52cf4db4355c71ff0906b485666cf8677766496d7e6877cc4f44ccdbed7
3084 BTCUSDT May 26
a26e171efa644372b5434711a3fc224dbfe653c956c2154d34f891030948876f
3085 BTCUSDT May 25
37062a333edfdd00eb60cf76e026dfd67857fc0024710ba112b9745e6611c0cb
3086 BTCUSDT May 25
2cc59a6795064d66a0bde11fc3b17f1d571352dd46bc5ccf043e9e7f19547c7e
3087 BTCUSDT May 25
51a46a4cd5f3753f4b9c53dd9f4b1b716f635ffc7c352879b2a7ff6edd742513
3088 BTCUSDT May 25
583743b5e071a906818f140c36de69abda226e41c2904efcaf7c6e3a0b39b8cb
3089 BTCUSDT May 23
2de916ba9b82ffcbb449a9620bea9cf9fd7ef6a86e2a094c72055a92555421d6
3090 BTCUSDT May 23
8565dec27ce9e9d24a3ac5acf28e57a34ccaf501896a00a85716905ef641f970
3091 BTCUSDT May 23
31d9122eda5f6aca2b28489a3bd9c3ed9a5687b8d20cd1437778238b9aa3ff10
3092 BTCUSDT May 23
70212813513a92727774b1184e868c9fdada3ae6df2d6700cb270d5d469c0cae
3093 BTCUSDT May 20
cd2be27403c0b512b10dc56a52bd4cc00b9e9478af9f6d12db2a2c9610e7be4c
3094 BTCUSDT May 20
96675e49d8500c906bf7b4c8c8f73142d0229b0da87cbf161c57923a706ae6e1
3095 BTCUSDT May 20
cd42a30dfccad48681818ab9d41fab8eaf570b7cdd214286dcf7f020767bd557
3096 BTCUSDT May 20
90bb854a797a1f92de4c144c271dda478a498a837582471c6a8f6470c1fd47cd
3097 BTCUSDT May 20
a130464459743cd5058fd62fb292d292563c380fd9005b2ae37219ef3052a1d4
3098 BTCUSDT May 20
5461335917c8de30b805f4d12ac68044c856d89e4e850469136626923785e1cc
3099 BTCUSDT May 19
26c3661fab3d2b6cfe30c1a56362918bad7f23837ee3631eab62eac54b0e5b5b

Rebuild the root yourself

Take the leaves above in this order and fold them pairwise. The specification is published word for word on the verification page; the short version is below, and the rule that catches most reimplementations is the odd node — it is carried up unchanged, never paired with itself.

import hashlib

level = [bytes.fromhex(h) for h in leaves]      # in the order listed above
while len(level) > 1:
    nxt = [hashlib.sha256(level[i] + level[i + 1]).digest()
           for i in range(0, len(level) - 1, 2)]
    if len(level) % 2:
        nxt.append(level[-1])                   # promoted, never duplicated
    level = nxt

print('0x' + level[0].hex())