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 204 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.

20300 BTRUSDT Aug 27
75dd7268ed716de5f5a80d408a08c90ef107ac522edc30e407df58e78cf7ea9e
20301 XRPUSDT Aug 25
b8d91d47289add13b1355e12a2c5a16c2242304c941b01d927b8abeb042b503b
20302 TACUSDT Aug 23
6722f7b90a857495daf97bad0c5decba753ce326675995ce8f814a7250f6de5f
20303 TUTUSDT Aug 23
08b4a775c633b72fbdd3cfccde01c6156479fc387522fbdcc014633e12736034
20304 SOLUSDT Aug 21
f38b704271ce8d2606a61d90423d0e7389ec75e5633db4c65e7fa7534f9a79de
20305 NEARUSDT Aug 20
2119c2889794a8a62ea1a460419c48ee5e94191845fc9624bfada189df32d785
20306 HYPEUSDT Aug 20
fec876945229b8df365cf9bff83cac9e65db26b768383fbc609e6744c2050976
20307 LTCUSDT Aug 18
d4a9c792bf6cbe10b73ef85f39a9e19da64ec6faa3c608ea4f89b41e1f2d7c54
20308 VELVETUSDT Aug 18
d17922e4162be5bf3cd801477353a5a34be9929bba0b6e4328bb55187c9dc8e5
20309 GPSUSDT Aug 18
ecfc97a3b2c86395e1188bb66c0b96862d5b2d264ba44282230800ccf3e872a7
20310 APRUSDT Aug 15
c25f8b786dd82a6714af0e67432c1a4be350743182458e96718d34b6ea7889eb
20311 COWUSDT Aug 15
294187dfd78e0111bd75c0bba03247b15e1b497f8491204b185bae54c773d535
20312 CROUSDT Aug 13
d803f942d5eed32aee4ed0e43ef4b7244b4402ca386486e8df4c00372e569c04
20313 HBARUSDT Aug 11
856abf49c4b80bfc6a32b43cf452f52aea7e28a73ca6605cfc59b38a85207804
20314 MAGMAUSDT Aug 9
bb01c7c4b42adb7730304f64f05de9bb3faf1bad6341ac06ac4631078f022ab1
20315 BMTUSDT Aug 9
6bfcda02fa7497bf2ec11fe3ca3af52cbe4ae2beeeba15c68858a02acaf6283b
20316 ARCUSDT Aug 8
b2b5f58ecbc31158a4dc5566ce3d36998b683afad1b8a3eb6a713f519b3912fb
20317 KAITOUSDT Aug 8
45f42c2d1659b7d9e67fb00be01f977040927403820ec2765f68f206fafa369a
20318 UNIUSDT Aug 6
9e86dfdd0729af7addd3abec3527e6761b97b2ab435e83311e36fe69b400ba1f
20319 BEATUSDT Aug 6
8aa202a5c5d45fd3f18ffaebb4ad3d85b5d19f268915a5b15f9a16d22275f825
20320 HEIUSDT Aug 6
e2e8860c5ce2e9e3f7e47d45d8ffcfc2bbc1b7a26a7a540977baa95ef4f0c663
20321 BNBUSDT Aug 4
98132650df5038fb07d6d8a21ba3a270faf62b6c6f554fd27873f6935a88d362
20322 AIOUSDT Aug 3
42ce539736177fb578b07d6a654ece494f16ba91c838a1385a5cd0ddeb877d31
20323 BLESSUSDT Aug 3
eb9b0f7d92c62c5ecc09600d501ea78f0bcb8fb643b621d3a69a9c477fe051a2
20324 CROUSDT Jul 30
33cb81b2834a497770c9a98275e5918cb53b4e07ee0e17fadfb1b1f746cc3e64
20325 BCHUSDT Jul 28
cf82c920447d6880e3d59d6e8e555789c88c9a406f2ee368cfbcdf1708fbf02f
20326 ESPORTSUSDT Jul 27
227ce6da968341469828e11c0fd695757da939371e1f43abbacf78fa6fb09814
20327 ESPUSDT Jul 27
700653245f6dde9a11460adcd7598546a58ad0638053b763fd6d3c3ab38fa2a2
20328 ONUSDT Jul 25
6375e5a5863de6c4fcb2f6351a2a1f1826fd79b6ac6ac5ff8b09551cb5e31d33
20329 EULUSDT Jul 25
5ebcb9de05e4decf00a499a3d145f326d8195baf5fcc3a6bb60f071c68ae1263
20330 CROUSDT Jul 21
bad1b813fede96db769750158dd39650995b6ac425555cd27d7eb9978b6bf897
20331 UNIUSDT Jul 21
851287a2f611f9e3d5a9c911de9c65fc72b9523ec2b0f285bd1356141c2f6f83
20332 ETHUSDT Jul 21
ba9f402e111bb6e8d61e859675e15a128d9423bb722f05c817a533b255179912
20333 ARBUSDT Jul 20
71813cdccd993f9f01f0bd641ff23e57ba70db6370adba62917bd83998cd6628
20334 LABUSDT Jul 19
0bb309ccbaeea9e12650118e5b7d363ed964d422306648e74516e6a2b5c37172
20335 BANKUSDT Jul 19
0b5f4366157a152eea5c7f7ac7b0fec6c165e072ae6e34b882bebc3104bfb604
20336 HOMEUSDT Jul 18
74131b49c28814a5821e02aaa490cc15f926672f4b3a33eb619774442fdb686d
20337 AKEUSDT Jul 18
f0428d149ff01c9fb8e53212f87b4099da7f062b244142ed8161e9081b5aedb3
20338 DOTUSDT Jul 17
35d01c5dafd9736982011a72035a498004c8783bb2fe02d83de8eda6d1763a60
20339 ETHUSDT Jul 16
f4c79fe7ae041ebeafdbaf6f2c652675288f77f95af74283aa54977c523e15db
20340 HBARUSDT Jul 15
2de0ccf5de2bf934401bb5b4ce73e74c8234b4ef2749ab996b181e3b4b525695
20341 XLMUSDT Jul 14
22b41872e2368e1619d1e086d405dfd39a10b7c0fa83ec1aeafdab45d2001dbe
20342 LTCUSDT Jul 14
7d22b08834f73df73089240e2f46d586e9d0e91864953505c8128c0c3ef7d5f3
20343 ADAUSDT Jul 13
a853df9148a7161183984b23a3bccb5e86a8dff54f5c0f830723c252cf1b93c1
20344 LINKUSDT Jul 10
2048bda3edaf5507fb04ddc11581b008ae4bc3a1f804fde2cf7f8d91006d6227
20345 AVAXUSDT Jul 9
8e93ef4d149115a092dce172854149a02f6637fc81490f981bf9242cbfd645fc
20346 LABUSDT Jul 8
57b3b0eb0b73ea933e98ec4ff9c94bc7826dbe14e0b8d38a8bfe25adf7e525f5
20347 POWERUSDT Jul 8
cfddce47451c6db3442e9f3e308ce56bfd4ada604fbbc6737c4ba3a2c233355e
20348 SOLUSDT Jul 8
9de50078e4d2c7072f28724d5faa869e0c771063b080940381ebf7ec4714b17d
20349 CROUSDT Jul 7
df25622f9a6659774d13107e4de2966cb25b130650f1af2681f1895905ff42e0
20350 TACUSDT Jul 7
d7fa77beb524d581b826397e1c664badcd374b95bf3545afc280cba1892aae18
20351 EVAAUSDT Jul 7
bce8e25dd48e5cb914c733993dc17c7292ce67cb2047d521bea9338e48fed6bb
20352 ETHUSDT Jul 7
92e7095649e431afd7bf673f0463abea02841b4e5804abcb4d02ae233b307e37
20353 4USDT Jul 6
d27eb742b58bae6ea10ce5ac861350595c2148b809bb1186788221c6f20e1103
20354 YFIUSDT Jul 6
550639a777365aa523c08e33e49359dfb731d1f4948cc89d9bd71a23b34b4fd5
20355 BTCUSDT Jul 6
f38239ea217a6c7434988db19c6bcb948a210106dac96f86579813a77e12bab8
20356 EPICUSDT Jul 5
3a873262fe4b7448f36f0125419981c0f31cb6b74488890d94a8d92cc7721087
20357 LABUSDT Jul 5
127b4db1472772f5604225bada40159eb82fccd2ec54bed0e07f3b847096f029
20358 BTCUSDT Jul 3
b4d67926285f943f08cf25035a82a30a2113a4956b7da88c7cc0d4c6186cb772
20359 BTCUSDT Jul 2
c67d97728a1146196202eddcf746acce3238dad61838d5e02aae7792b6838d7b
20360 ETHUSDT Jul 2
d05c37c9e88da69217dae1386a56e27b7b93d74edcebb15054c17e596b7c4026
20361 ETHUSDT Jul 1
818b0ea3e7620a6ec554176fa05389a17ae7695421d4b5f9a737d60f2c185cd8
20362 BTCUSDT Jun 30
b6bf777cc34c38c985cc18dadd7a37f58100674d92c58dc9b879ae3b8505e80d
20363 BTCUSDT Jun 29
8063023cb1b15631da9c7e44c32ffc24d1477e38c2cde256e0e49b60046476ab
20364 ETHUSDT Jun 26
781b38d544ff809b377f79c2b2a62d281124ab3dc5c66d8e7701438a40932d7f
20365 BTCUSDT Jun 25
d6b30ec22e6c35d3ceee8ece34d29b57eb0b2b0ab21c5ce4f62fbba103a437f7
20366 BTCUSDT Jun 24
24a314afe3562c25975a92fdb18487047c293a6c9888a596c4e6ad039b4b8baf
20367 BTCUSDT Jun 22
004c90de366da50060454f08d5e6b3e9c92938be91d4e6351c6f626b9397f4a9
20368 BTCUSDT Jun 19
0349276fd7b7222b11c1042131b3bb808babc1120a6374f07aca23c75207737b
20369 SOLUSDT Jun 17
1a898008d1980203ab11c1f5b6981b689920ede64f6c0790d3f47860b41271cf
20370 BTCUSDT Jun 17
1dc7e87c2d6292ae038f26fe8d0e6bba6b2ccc2dd6751c9b54def22b23f77cdd
20371 ETHUSDT Jun 16
50e1c09fc91e99d533c2c8578c3a320f62a332c0e95013263fa4484d55d7b2c4
20372 BTCUSDT Jun 15
a7f4f84206481f57769dfceeccc347682266c48253526894e78faa22bbd31985
20373 BTCUSDT Jun 12
ff383becc3937f5e5ac7d9cdc946ec5b728ea98ed98e71c75c2a09622e530cf2
20374 BTCUSDT Jun 12
f7c3c3782c2331034cc42078815f1ec4f2849f4d7f4ec9be4826630bf45b0df7
20375 BTCUSDT Jun 11
788439ec94d6cbc53f91cd92d5dd49b65cd55e2e5dc659ed12d9a7abef7c43ac
20376 BTCUSDT Jun 11
b5e95b9aea0d4656115629ee83d73e2fbd1e804401fa9acde64aefae821b357a
20377 BTCUSDT Jun 5
8400f97c9ded41e3265db9eea9d499d5d656ad6c7d8d340f49319da4a812b2dd
20378 BTCUSDT Jun 4
3c9e414e8fc4b677551f6422cf39a7ccd3379205c61a266f794c820c84b6e990
20379 BTCUSDT Jun 4
cf0f85e719d5e5cc3f96f75dbdded5cbf115e89199f03b96d365d000c622ac25
20380 BTCUSDT Jun 3
0878e2af77750860308b071eddad8765aa6b8fcb3f666184fc2a48097ff631e9
20381 XRPUSDT Jun 2
e9413f8072fe1f341dff129cac4207577efe9f7bfbff56c2222d2973496218fd
20382 ETHUSDT Jun 2
1354aab3697fb0e102a1261885a1fd0d7d734a07398b1e2bab01ab7ee4eb258a
20383 BTCUSDT Jun 1
cb0a70c8b75c4b76c4786d6a8dcb40e03eb7ed9fe84576e254c1e6c67ba4d016
20384 BTCUSDT May 25
fa4e07b01f98f1c2888d15bce3dd67816947fb0a3926bcbf552400bfaadd6448
20385 ETHUSDT May 22
0e8687925fb2a2d141ce7bf9b9f6878b79bfb09f998cf0ad7282458561501bec
20386 BTCUSDT May 21
9bb93281d717a03050def6365285dcd157e979dd341a4439af525471bcd8db15
20387 BTCUSDT May 21
15fbc799062ef766f211ff790d1bbe405547b747ad855750dc5903bcda5b76ab
20388 BTCUSDT May 15
07fff9d7fab7fb2e1e3520e54b88eaac5cfe30a5047bbaf121aed561aaef0ea0
20389 SOLUSDT May 14
64f6850c340ef2a0d5c7928def52f848fe7735cc09c752fed896bd52db82da3a
20390 XRPUSDT May 12
4277e57f2f3a20ed658d501887b4e39a06bdd77d0a75e73d437c90e316e270c5
20391 BTCUSDT May 11
448e04a3aa5f57c4388baf05afe0c445ab025c324ec05eed3a6ef671f07a4da4
20392 BTCUSDT May 11
18aca0a5636840602b43954f88f73ceeca30a29bd3ee26bda7ca1a846db6a7fa
20393 BTCUSDT May 8
6ba93c19d7090a5b76bb7be3b6ebca5481e105e4452b215968ed81702a241b63
20394 BTCUSDT May 7
ef9364d48c644883190af8a0aca7d4c4b36238383a5fdefcab804b0d0e2b6fec
20395 BTCUSDT May 6
2c6ecd13c50de77213a77e1388a92114e70ec880e545a55410a3c5c071a3c327
20396 BTCUSDT Apr 28
6e8a2ac80ed2f628379ed2f1e8d2ac3f86afd09e83d50f9d4803b97fd660444c
20397 BTCUSDT Apr 27
e978491c3faccb2e834f4f43a0a517be13b1f2cfd15302752089b922fa005712
20398 RAVEUSDT Apr 26
b22d76f24b975799973e3367fb34ffe088d94d0b5efa16fc5b18ac5d87c46fc2
20399 BNBUSDT Apr 24
42de83f20c62cf0e5384d650eb34d5864bbb0f26d5c89342a24ac8939e492f1a

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())