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 12, 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 68 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.

6700 HOTUSDT Jun 10
7df8213d5c0cb2b21add2b0aeb9ca61afe77ebe4972d306bdbefe79d77f5b648
6701 HOTUSDT Jun 10
9d514c1abc1dc13fb593517a5ace06332469773a99bc89572e884f984877919f
6702 GMXUSDT Jun 10
bd258250c44a8cac08f420f06304b35129c38a5ae2cafd7c740175e7e3d25746
6703 RAREUSDT Jun 9
12c619485d072ad27dfdcaca27d742b147ee21dde5c36b7d59d3c352478ecff9
6704 SEIUSDT Jun 9
34e81efce5753e4936a5fc1b99dc4f6b6c1df4c8961c27ac82ac1038d6e73b74
6705 AVAXUSDT Jun 8
8b458196a3a49eefff2fc0a8fbff3b1c7de95aade6f48a4f2d0294dd20b451a6
6706 BTCUSDT Jun 8
9c9c27e4459e98f6529dc0a4ec426abf65674fc73ff054958c7989b13437a630
6707 SPXUSDT Jun 7
261f79926c503efa140c11e23be5c28f1a6078677e5db883ffe19dba8662f1a9
6708 MOODENGUSDT Jun 7
ea2b960ccff90b9631f89c3c458903c50af622605b319af3b4ca825c263ec085
6709 LDOUSDT Jun 6
2982e7a37389a894d7cfc11f053fce7885575bab8c0d638dcb8352c9f445c737
6710 PENGUUSDT Jun 6
09a0dc96a6be3227c2e132d52101bcfd532735388543001a2600e903a7dc3411
6711 VELODROMEUSDT Jun 6
a42b2212ac8b052718f6e0a9853790d48b8cc714c6067fcccb2d4a856b5342e6
6712 BANANAUSDT Jun 6
3e39536e915e6bcd74e6602f467a3c8eee75d0521fad28d3bb04f7fd13a3f63f
6713 CRVUSDT Jun 6
7763cc4846b325cc8e2b53df1b610232a331460aaf8802c690b540df8f110ead
6714 GASUSDT Jun 6
9d8ecf54449328028931f388536b847fbbb091fff1d3f6e3528ea2762386764b
6715 PENGUUSDT Jun 6
00d6256f8b15b668badb6eba689779267904cf292b51b54e0ade8c67c5c939c6
6716 BRETTUSDT Jun 6
e8a399017abd679cd83a61799913ba2cadc57ec242aa30ee66907a1577ea5b78
6717 CRVUSDT Jun 5
056c71c563d181182a37ebdf0433bcd4a656094c218b6fa48667a77ffc2586f3
6718 CRVUSDT Jun 5
944067827e3d499e3c42ece8eef95d24f95f0df9b2b72c978b9ddba54eda31ba
6719 ETHUSDT Jun 5
9bee6547d92b8d8dbe30d222ac850c338054c5d7d527951bc85acfee5176dbb4
6720 BTCUSDT Jun 5
ea7033a98c61112f27dd2d9db0eafe4eeef133da6c314ce489f09fe76559296e
6721 DOGEUSDT Jun 5
c5cb9fecd9c6698191188462135adac5341da5583d6eb21b6f9cf16d060290ec
6722 MOODENGUSDT Jun 5
74beb6a677d6e88dd90afeb139312a46a355b547179ee32a1ec1681805b7d90d
6723 B3USDT Jun 5
29db60bf86569e61d5498038d912a00660dcfc44f9b34baddca38e7c02e01d7d
6724 MOODENGUSDT Jun 5
5b1ca8f6c39cbe26b18f9ec4be2e0ec45dbe6d95e454b75a24a5679c7f851b2b
6725 BCHUSDT Jun 4
771c52e58300195225879b804ecba5baa47b32f6a76e98dddd3d77b9b5f03aa0
6726 BCHUSDT Jun 4
74b2bd21351b2b9bdf637daf3111f4e130601d8d6fe16245a5146a93172cb546
6727 B3USDT Jun 4
ae4e3d4e4c6b9ade097896e4a4a1635e629e420c05adaa2f1b82b6bc7ada08f4
6728 FLUXUSDT Jun 4
5835b32fd5ba52a49b899a435dc9011f0cf8440da1f01ce6766423a1e244a211
6729 AVAAIUSDT Jun 4
5832a4ae2336ee24e60734ea47e97bb6a475d89c47d0c9039df88b93df0bd354
6730 PIXELUSDT Jun 4
7d7687fc242ff65760062f2e4916ce78f4d4056697ee372c0aa5a7250d5063ba
6731 VICUSDT Jun 4
9f5af7379fa2e01deae05ba690bb86207cb915ce4084acfe4f7303e24c30d6b4
6732 BRETTUSDT Jun 4
b85e41dec7447cd3eea38832048c4d5feee66d2a364ae7d388fcbec081278e63
6733 PENGUUSDT Jun 3
a881c31ab4b66da9e7fb5b75b2c96a530c5af7b094e96c9e44238a835c71ed07
6734 B3USDT Jun 3
943424011eeabedc3d8b59bfc4658b738cb2b9fa1da48be4a4d85f54fc8edb69
6735 MOCAUSDT Jun 3
522e0a64c6d61887eb800be21da4d8b832fbb17b1c4b2c2ed28ceed8c3616e74
6736 1000RATSUSDT Jun 3
c70d215f9f7155457bb834af7a745ce22c935610ce5eb00f8fb68415e8957c20
6737 MOCAUSDT Jun 3
e2d87c698f5bd80f41a01e4618dc9135991c0c0f00d1ec387cc38cc2284699c3
6738 1000RATSUSDT Jun 3
40e188b8e3f1534c008f265a04fd41b72dc819626f3d7ca157b84353dc38da15
6739 1000RATSUSDT Jun 3
6251413c88aba3bef83ad7eeb73d0a8cd0017209dbc7ae048b44d9d8b2042417
6740 1000RATSUSDT Jun 3
f3d3499b3252be25dccdc3eecbcc09cbd44418231a32193e69734a1a584fe7e8
6741 1000RATSUSDT Jun 3
069062f0de80ed2a8c807d7a4a61dba4eb22df5467c03059e85de9613e85c929
6742 OMUSDT Jun 2
8bd2959ba39d3c0e311196b2b6c0886fe2f8096b83e245fb3610e17afd72c011
6743 OMUSDT Jun 2
98ba61616e52295d915e64159e82e284e3d169f6cc64f1d67c7584aef3f24d68
6744 NEIROUSDT Jun 2
9d45d11dd80ad827bc42519e7c00c662d5e39fe87d6350e2e80e7ab8e25978b0
6745 NEIROUSDT Jun 2
72ad26641f6383acb899e9397487048c60865ad7cd2a2e7fb4132c48a9593b64
6746 OMUSDT Jun 2
2718ac266fb0134c77513287a3184f4ea186e9b123c3d46377b3690dc6d6f3a8
6747 AVAAIUSDT Jun 2
5692218dde76c695f39745c6173694c8c4cd1f81b2ddcbdf5a7baa8eff237ce6
6748 BRETTUSDT Jun 2
a40146bd9fcc3704f0d7c0779a52e4e6d564557a1a53d285268fb61f0a2b6a8d
6749 ALPHAUSDT Jun 2
3aa55953ac92284774d244cc0de166bd36af46ccd4c76087ae4dc63994611aae
6750 GMXUSDT Jun 2
692bc030d8b98ee03587d686b145a22f55eda72820f38a37f3f07c0cd47b83ce
6751 BRETTUSDT Jun 2
7b33800607d8d506c0a29c68cb01a43893567dbcee6d605fa89a007f04000189
6752 PENGUUSDT Jun 2
9db5e9a736ecbdbbbaa616cfb15a54fb33d1331a8addcb28b09bd3dd11040e99
6753 AVAAIUSDT Jun 2
617b7d5863c453769f30b6627e2158cfdf762bdbb8a235456ad8574a64ce6acf
6754 AVAAIUSDT Jun 2
58c341434b54db929ad375719922d0f18404eeee33ca94e397ef97b1f2a1302c
6755 BRETTUSDT Jun 2
810155ec39b26674bc4628614e433a9333e95b79e2e3f7d9f0b008ae7f318f98
6756 ETHUSDT Jun 2
b3523bdefd61e06b08e9692cc88c4d6c35d69905daac6ed955f83be7a1af3a07
6757 AVAAIUSDT Jun 1
a71ea17f206788557a4bf9eacd0b2417dfb40d86d3383000a504958630c8dfb1
6758 QNTUSDT Jun 1
e3690b0a995fe3473823a44241c956b8f82dc3832663d01cb572ed96efd3bcf7
6759 QNTUSDT Jun 1
299ed694f731f03b7d2510538230495a8a01ffd2309ed99861bb6e8a82b22b8e
6760 B3USDT Jun 1
ffaa008c25c763eea0200d22aeef6bfdf77e9575119cea16fb5241e95fcf200e
6761 ZEREBROUSDT Jun 1
fb27082773f8d0f7e41584d9e4fffc1fdf0a50a1ca14e1f63c7a554b1546d101
6762 ZEREBROUSDT May 31
4ebb645a7ef235ecd1ec9330acd58d404205caa8deaf7cbef510add665ba4c67
6763 ETHUSDT May 31
abc1f8e778c416f2647523df966e09ec3fe06a558e16bfbff0e5e39c0d0b2324
6764 B3USDT May 31
cb7140dce823b97a46a99e61eccd2984a4ccb24e0c2d6f0297944969594a4a21
6765 TAOUSDT May 31
709012ede50d1e3d5e9ecd3a5ee27cd7a1d2c09fa14990cb7a6fe2561a235caa
6766 FLUXUSDT May 31
14748d5b73c474554266ac797b94182a4e9def423693896da1b58d3e2c37d21a
6767 PENGUUSDT May 31
d0c76367ecf7795c22bbbc967e1a2f211b1802232318afeeae269f16203dfceb
6768 BRETTUSDT May 30
62aa0cd70c56edc22128a48b9f648937203fe42b39cb4f3fd6e53d02eadc21b4
6769 BRETTUSDT May 30
76fcb23c7958cde638230b2bf1c6761719a108c8f46d2e5fb4276e6e381a2bf1
6770 FXSUSDT May 30
5d2de98288161502f24cd91385007a40ff2187690f3b5d77b2ac3a9630cba334
6771 FXSUSDT May 30
495faa036313becfd2f45dc3c77d42e81986a0fb04efd87a61872ea4cb51de24
6772 1000CHEEMSUSDT May 30
f445bba3a1488f8a12b1adf75d14cd91ade14e6d1d640395a28edb919220e9b6
6773 BRETTUSDT May 30
bd6fae2b7b54f680486ee4063a89fe014820d852604f2bec5bd4a56b131e43c4
6774 PENGUUSDT May 30
3bf9b085d2683c74d6023695363ff345cf2a8d908e7b104e3d9e7f4904576511
6775 FLUXUSDT May 30
9478dac1c392e2c34b8c254a7509ebfb67bf78bfff45e2c6ed0a4ba4e640ddc8
6776 FLUXUSDT May 30
308a273ee635cbad5f643c71f98cb01a203b87b3a1a8e2ff4a8dc2defeb5eed4
6777 FLUXUSDT May 30
8955bfd8341c7709c4169f8246f95a5dafec58bdcc7488d572eee5d9f5a13da2
6778 B3USDT May 30
c80ec30fe15355bea2df27f57735f8b815571f0700a2877d75af4ba4e1e61e00
6779 TAOUSDT May 30
18b12874af5a43482f54a5f88ddd2f7511b52e8499bfca934f8a9fefc3358991
6780 SOLUSDT May 30
a5576d7d55e55f36e7e1ee3ae50e359abaabdc006d6df90d3eb176d496a8043d
6781 SUIUSDT May 30
6df6127697fa44c0cef731c9426689c09b5dd5f755f868599b69d2032b22fe69
6782 GRIFFAINUSDT May 30
3b192d7a9abba35cb779836dcd52554b65a20321b5a4f396ea0e07c352e91664
6783 AIUSDT May 29
033316a6b2e274735ba387caf5f0f21a84017e6f3c665c5210262c32e718c002
6784 XVSUSDT May 29
444707449b9c1d93f3b5da81b6fdf43aeef1e15ad9975a6c30fb3f5735d8f7c7
6785 GRIFFAINUSDT May 29
ef268b96fda97b22897c07c46ab16ee7a6aa358d2edcf234699be7d54208079b
6786 AEVOUSDT May 29
ede65a6ffbbcdba89ea371f26c46071ac3e4c80cdd6735da3589ed4a09179250
6787 KASUSDT May 29
8339ab93d5b95d86e6b41062b014475ff9bf726286900831d0257cdedd59c7c9
6788 AVAAIUSDT May 29
dd198f74b9120c6e14fb2cfc620a05da23fb7990ecac86da578102cffb94f7fb
6789 PEOPLEUSDT May 29
3eb1dd2127829d218adbc4a911ddc950629212919d5e98d29230b98f4b2b4cbc
6790 SUIUSDT May 29
90da4188099e31b0a1b234e30857e220655f300e9403b5ee2bc262b2279ae3ff
6791 INJUSDT May 29
91b6f0b6ee858aadce958f30fe7af8fe7f86754d2acbf50bf37fd3955d146a88
6792 POLUSDT May 28
0a2e9faee95857a2f1b44cdc84785135646451a021e1552926b427b7edd212b4
6793 KASUSDT May 28
ec85793631bca34277370460fafe71839282c792d3671f1bcddf59a847bd7461
6794 SUIUSDT May 28
c26c808e7b6d871f2a9c7a376ee26e077169217103ced518116b5a80eeaf7dad
6795 INJUSDT May 28
132f091d07dae4c948ae2bd029ef90ebcc5e2773735dc5c873e75a2aa0526492
6796 INJUSDT May 28
5df3b1c32aa92c97f9c411300aac6df636357b1b0047a58de59e620afd64a0c3
6797 1000CHEEMSUSDT May 27
f88438d87f82448d3801b20476c63fa0ceb5d983d0de8ddbe3a5c27f488d1fcb
6798 POWRUSDT May 26
9b03d09f7e0c280260284338ba52c0efae5b66615173f9c38e1eae3803d31245
6799 POWRUSDT May 26
29f37c1309bb2fde65b465419d373316fe7e83c38b18e027c0f92c2540cf00de

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