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

15600 BTCUSDT Jun 12
7fc45a201e464d4321ba89ac258ee4ea472f146e68cea3d6db374f498d511a9a
15601 RLCUSDT Jun 12
4869181bfc8ed08b6917f231f39c7f57333a07587f57713fca02231a1dc9a044
15602 VELVETUSDT Jun 12
966df4e61677c9a64aec9c379c21f1847926f32f0d2fafe57bc33cb234c6c77e
15603 KAVAUSDT Jun 11
659c38a90eaf94fff0f53ca4f3de3e53b4245fb7b6877da4ff7f295787983919
15604 CATIUSDT Jun 11
955799bb2a7bcd7c112266f66c6ccbe86ced8e8725f45c652ea50f452c1915b1
15605 LTCUSDT Jun 11
880c29acd77a79ac82207c2c7c520e3eb085a50a2f1de7f65d03128b23433722
15606 NEOUSDT Jun 11
9a25cdbefc91221bc6506a80cb7fe5e8f0cec2242e4cf08312f2b96539743281
15607 THETAUSDT Jun 11
122dd9ef31a2f49826e72f2bcb2e99e7478ab5e24b4cee054a79b527dba60228
15608 BEATUSDT Jun 11
9b9a88fa9cf3d6846b477b814126aaab0d8348724d8664070910922033ae5dbf
15609 OPNUSDT Jun 10
835b7cdb643e09a2c2de8642654ba48235bb185404f93753898e669f4b14e93e
15610 ONTUSDT Jun 10
a97f4ca37573246cbde975a81a83795f9d33d6dd9ff8709beb603c9f08a20610
15611 BNBUSDT Jun 10
3c8b7196205ec441e366844aa62705180b621c659d385365c256ce8d8586fd5c
15612 JCTUSDT Jun 10
5c92c8a5dd4e0baa16ed6180b54e8784cb1c2d060e0a49021b2ff837ab2cd6e1
15613 XLMUSDT Jun 10
e7111ccf1915b2fe2202fc5f4faa5e510f05b7f964bbd955d2240ff54fed8494
15614 SIRENUSDT Jun 9
2cfc5012b39b3be88fcd4d01772af67de0fcdf461f39e2044988fc51c886a827
15615 ZRXUSDT Jun 9
81e9ecd495c425c717d0958d59e85f9fef67e3c9db793f53af0909a881bbb01c
15616 SNXUSDT Jun 9
b3a6bfb35ec87b072396e1737cc817afc7d0922a59022c612118d68e4d344caf
15617 ESPORTSUSDT Jun 9
361b50da6bcfd6860de9ea3ad8403deb8749788c7cdada1d95949c0c5d8d93bf
15618 KNCUSDT Jun 9
a5fb74e3cb9aab43f49cd5b356841ef11302acc4d292321974dff6d291055a3e
15619 YFIUSDT Jun 8
433ae70375ae74c2671c2aa639141ae42af0f0492804dc1861ccf6c649f0af24
15620 ESPORTSUSDT Jun 8
0126a9ee5a3221398d9eec2fc15b67061ad3cef8d0dc764d28f55078f4f24668
15621 IOTAUSDT Jun 8
ff7a9e7b8d058ab80d16d3f4a6141dcd98fed8da1a36e2cf698ad85c997965a7
15622 XLMUSDT Jun 8
1fe957976b3633fc264289df416640f94cf2533901e5189cff08d93520dd74a5
15623 EPICUSDT Jun 8
34329ea6c11852e3d193ff890b344462e19627b6d76e25c932d2c53b4b549408
15624 LTCUSDT Jun 7
d3aa08fcff58c4c0c6530db6ae7bc8dc65a51d7b246cf398c863f02b0a32891d
15625 BTWUSDT Jun 7
0f0d9f7f8e1ff30f5ef66321e57d3ac7f9832a02537e1c4d08d160c18b918485
15626 SKYAIUSDT Jun 7
0ca9467c0f2171a00e3313e3431fb8c771e74304dccf85137fb6dc4da39fbe5e
15627 DASHUSDT Jun 7
a567a2e84edfc954b2cbfb6ea59c051b79d82c7b289d63958f580ca9a1560f37
15628 XLMUSDT Jun 6
5cb1e854f88e78dc18bca14ccd3d0270611fffbd89180757cf7cbc149af46996
15629 BATUSDT Jun 6
d222aaa05605306d0fb3469b7fdc05767635f9739fc04a6721748afb6ef08743
15630 BLUAIUSDT Jun 6
a87282077dd7a55949437b1f090bcbf2c295a6f98f3f8fceff32c75b70a3c77a
15631 ZECUSDT Jun 6
65415897aa673ccdbd119cf840d27f6058c0c79d94bb63a9861300d2c7a180da
15632 WLDUSDT Jun 6
e480e6c70d38368461c4118a837326419e44c80c9d8a8b01b1d0fe881d4b5de3
15633 KNCUSDT Jun 5
6ef5f81dff1f7b054cda4d2e9291374647fc0735be908ccf603060c471b63f2e
15634 BABYUSDT Jun 5
5f8df736ca75aeab212cd2a33e9d4d95a53d5a4444a4b226e859f504de3cb5f6
15635 ALGOUSDT Jun 5
96758e6d9c3d762b09a0eaa8077e1f482774174105c26fae68ed1bba5119297e
15636 ONTUSDT Jun 5
c5ee2ab2b7b0d73a526c30316d3b3256512ff614d70d66198682679e41762b09
15637 QTUMUSDT Jun 5
2c23170bb1e994f09e3c1e4d0b29c0b50d3a4716c8f2d32e066475fe6c868121
15638 WLDUSDT Jun 5
d011bac065b757d38c3729e7b3f4e93d5f2737bf2c3748b4cc1bf16f42163528
15639 XMRUSDT Jun 4
b753cc521e6550f959f5584e5b7f69c5098ba4b87a98297100689b7d7f660065
15640 ADAUSDT Jun 4
1f1d7597a4918f8ef1515b18ccc2fe78221832a759955502ebe0b79d02e5d453
15641 HOMEUSDT Jun 4
712e3abb32b1913f57bb61a7c5b590a7cf24329b08be56befea8f352c3b02b2c
15642 BATUSDT Jun 4
2f0c559be25e61e5c3fa629f1c886f78f1ac7037b34890a464a288a11e47439c
15643 XMRUSDT Jun 4
82a04da0260606f2f1fc946ae10a2ca6761a8d9246566bbc2929e6f2a949a2c0
15644 EPICUSDT Jun 4
41b17d1e446a05a288d456a5bc80a12b8532e1a01869bf66d22ec60a99b5d08f
15645 USELESSUSDT Jun 3
e7a62aa8cf7d11169e1975ab88a361428f27767e0ae4fb1dc68c6f209a1c7650
15646 BNBUSDT Jun 3
75fc8e3775466deead074280ccb8b176034779af5c98d480d6cb1abfc2824722
15647 BCHUSDT Jun 3
43789ffe8efb7f5f6d5be7803c8fa3a5ef204e3865ecbfb29f8541ea113be13e
15648 LABUSDT Jun 3
76c679cebdf8445140540e87cb2d89cb82afa3d345f040d593a55cc141fcf192
15649 HOMEUSDT Jun 2
571f6960921d77194983aa27270e0ebb74d84b148befb3d91fd0e46c641b99e3
15650 ETHUSDT Jun 2
3fcfc367e38adc8189a0e22e6ba30274f9f1c1b7e14a3db7e41bb5b527d1b013
15651 TRXUSDT Jun 2
a23f5449d03f677ca04f338f0318f8d60d59149ebe864280a27e6f98ab4a761e
15652 ZECUSDT Jun 2
e41759d0a7c09ffb49168f99e8b0f4fe7df06648b4eeb21ceeb1a80edf6c7c46
15653 PORTALUSDT Jun 2
9f80707842d1c8d7505e934deb92502f473aff3825336a134212c5b7849a7459
15654 PORTALUSDT Jun 1
6174567d881c6c8408aa31dd55d61ee7718e111695e2137ff49ffccf0e9022f4
15655 XRPUSDT Jun 1
56e2e6b7a0830b76b8492093fea0b44980bdf48b56f09e72eaf0b37cf40401eb
15656 KNCUSDT Jun 1
26b93008032f2c142f7f7e1f62bded9d2678206b9a1b3aeebdfe9d125181cd6c
15657 THETAUSDT Jun 1
21fe23f37bdf4623c347683d8073083649b1b1cab1c2a966bbf204a71ae36d17
15658 XLMUSDT Jun 1
98d6b4cf881168448eaf197c788378f7af6593ea1c783f4c34d9403f6231bdba
15659 THETAUSDT May 31
f400b85a70e096f29adab161bd49dbcc62f25bf3507925a6fad9a732bbf4d730
15660 BTCUSDT May 31
b56a12b1c82130952279b1845871680498a02fc750191b3480d04bc4f6e5a5a3
15661 XLMUSDT May 31
4e0256e2aee3ab4205641605a05ef002a938162283698aa03520b16269a59469
15662 XRPUSDT May 31
237a3ab9d0fe6be56565a03ca74395677e4e5312340ddfd9d5c1719eb6bef4b7
15663 BNBUSDT May 31
45f41dc528927251bb39038e1527c5ab6ef6e8c8dfed80bdcd78591acb013e3b
15664 BANDUSDT May 30
7f4275eb5235f54618805239d663378a517f179611a5a74aeaaab0652d4ee5bb
15665 RLCUSDT May 30
731ea19f16951d397c8864ec8b31e981697a6dac6f3e035cfac7b81a59e6960c
15666 TAKEUSDT May 30
c9d770eaf8a61e7c0365e6e59c8d6cfcadf88616346b8cb0cba669334d603a53
15667 SNXUSDT May 30
94e1780f0826b433be0176b57545417f817c5e6fe496aa14c557153ae2cb2334
15668 XMRUSDT May 30
5fd5bec4341e02f9d26e00c06e592ee937fdb49f5b130799065c6ea42e94ffb8
15669 DYDXUSDT May 29
807bc3d9d50961e40e284cc24a76b2fdd97f373ab89802acd04037abd626a4ed
15670 BATUSDT May 29
ef0ddc36df6db872f13cc5cafba9620237afc44f619ff42a183d91655d725b65
15671 STORJUSDT May 29
99f71cb6dd67576d9c6fdb09e6df2001ba22b36987c6c252b1b0c91e952a13a5
15672 IDUSDT May 29
b4f17a0ee730f39a08bc3493fe158edc93cc0c1152a03f7281ad81781c5b114a
15673 QTUMUSDT May 29
791c083bba03532cb4380cca874c9b38b1ec349cb63a7335eaf2320980f8c2f7
15674 RLCUSDT May 28
81e07c1a0d8d03550ae23f943958e8720f6452d3b2dde2e69f70f139fd223c02
15675 SAHARAUSDT May 28
bab5b9e784c9b44d3ce2e996f5b02355bb45f8eadb5c549f08602124593c1e77
15676 XLMUSDT May 28
a12813baa726c3ee09a1c424f2d701c3b38c3567108462067f7f9d49fdd4b526
15677 PHAUSDT May 28
8ea0ecc1b7be694cc982f098a12b0f185ed9c4d3603455228767c8f50fe7093a
15678 ETHUSDT May 28
9654d8a93536bc83c9c6ed276c9df48faf84318dd0b2fcc2edc28f317ca47d54
15679 NEOUSDT May 27
88c5509b5bc9eb82407523df88468b9e3f6733fc82cdaba2b9a8d1c60336e528
15680 PHAUSDT May 27
559d0f6adc910982a42b2583d94596a42a83f228acffaeae8031d5c94ab99624
15681 XLMUSDT May 27
eddc47f8204395b3e5f9c372f996a3e3199bd8884cc675d8aec3a57805edf011
15682 ONTUSDT May 27
bf45452bf8245b5e096785a2bb917bc118c9a456dcbcb30771588a6088cd58aa
15683 PLAYUSDT May 27
7b138abbe3616c6de3ff78a1100762e776e15ce5ec977bc7751fc489f97b4275
15684 DASHUSDT May 27
aa4d2bee0c403f890b45bd80b2028fcd077e188c7023dad2afa1045e20ee7db0
15685 IOSTUSDT May 26
909cd8474699d4cf4107402f2f543e247c2992d09dc759d353164c76ccc2ce9f
15686 RAVEUSDT May 26
d441d320e76f687aa4a56f3d92144db0be8696adf27ee024a61e03d64849d31c
15687 DOTUSDT May 26
fce7b986defe4aa88a5e2fd494814753b7bf925a1333786ca0f6999e8e57eda2
15688 RLCUSDT May 26
2fbb794da02c09bfcc25e2e705c7d67d018223d9945e2b651c2d197b05e662df
15689 NILUSDT May 26
b500e60685328fb021dadac3f6ce7ab3c0684d41c44710cd10f05d46a49f3579
15690 XLMUSDT May 25
1c9f17c362f0c63d616eae49474d7f9d93d5661b2a35f884ce8d019c7593f92a
15691 XMRUSDT May 25
9e7c75faef66b361e6ec7d96f68a2aae06b506d3d8ac7c94e2b7a6a4e0f2a5f1
15692 MITOUSDT May 25
376b85cd161a84d042c5fb7390a9f340ddb85a2df62f329818b228eb685870e1
15693 ALGOUSDT May 25
827cb53c08694f11166966a04c19af1655278c5662ad167f21c83ca9d181d11a
15694 TAGUSDT May 25
b2649eee6b8cb172c58ba59bfd7ebb001bf874881a24676ab77badda082c3f63
15695 XMRUSDT May 24
82b51b2d9be93f4bb7a23c4b8f85025cf2db39080414f9d341314df27da594d8
15696 BILLUSDT May 24
835ef91e425bec1d709f07ad81e86186ff1f71fa598c0e425bbeb0594fa5c9a7
15697 COMPUSDT May 24
5e64bf7fe82ef0f17fae6199902d199449d29849908b53db5ce83eb1f822433d
15698 EDENUSDT May 24
f5947fbaf9e5316e3946eea296abd1e65d4dc71ec9e82cc791bcf1a7a5a329ce
15699 KNCUSDT May 24
d785c87d4c88b0c367cb117d887e7d16bd6c604c328d2fea329fb6424a27b768

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