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 9, 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 227 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.

22600 XAIUSDT Jun 22
bf2a9bc939236d9dfbe3e1c35367c376ee894af4d21060b43be43cfc6feb8d2d
22601 FLUXUSDT Jun 22
f2700b049c2bb4ed12038304ad7704298ce0101e827ffcbd5be82c2cfae864c5
22602 ARBUSDT Jun 22
94a9c9e4559ea919abcf3bb9dcf6a5c004e84fe52dc546aea46a0e2b4e6b4a09
22603 GALAUSDT Jun 22
8bb4220ce00f10eee9e5786074d6020255dd24f0b560ca3c03170c676f1ff76e
22604 DASHUSDT Jun 22
b29b7873e4cad9e319fd7492bf58647c9b04d6caeea86ea5e93165e5345c0a86
22605 IOTAUSDT Jun 21
0ff81e53deb346b2ccee83b9edff0419fdffa02d67e541dd398cc0e0eb3de982
22606 YFIUSDT Jun 21
1eb53a2e7b8e5466485b53539a3aafd568b2cf72e4ac4c63438d23d364573bb0
22607 ASTRUSDT Jun 21
5f8a27fe9d7bef2492467007562f9d31deb920db8b1f68d6cb4a36bc00cc7d42
22608 ZROUSDT Jun 21
697273a6716c62cc6dcaf28495bd6e284afba7c122b2bfa96aa43c65aebc7617
22609 XVGUSDT Jun 20
bd233b5a1efc7a5a38169bb94895d983fea39f8d876567f4c005bf9f5d7d5312
22610 ICPUSDT Jun 20
5a2cf3be2c02bf77a56eb7874b440cd903252563b3626018c04782ce4467c803
22611 JASMYUSDT Jun 20
fcbe1026b641a72b0428f3e242e5783c637aa4aa58141f640bd7710f899970d3
22612 IDUSDT Jun 20
a07921d4877646067a1c30f0e0853eefd971fc28c243a1f66c86210cd6077fce
22613 CGPTUSDT Jun 20
02ff8fb28a9f28898120b43f51fa593614e6687612fd22558b048c1bf954d87c
22614 DOGSUSDT Jun 20
f58cb3a9489b2cbf788213a9bc47f45f479066df0a547eaef3c5824e52729abd
22615 AVAXUSDT Jun 19
6b7b2e453f2c474a8fbd9a708ac2ed08b429bfb289f9e51c7ac35be19383dfd3
22616 XRPUSDT Jun 19
1411c259ab10cda47372838f33fba57cf8b3d43e53baad5c1187ea2b03af72bb
22617 GALAUSDT Jun 19
23a936855cbdea7a167a4761e9d30684e1477034f8ff587bec67e9b85815fc2c
22618 SUIUSDT Jun 19
5db3b85f4224ac07fbc344e4447f6c1e3457db329298d4a6b62972d72b040f98
22619 PORTALUSDT Jun 17
798f0f22c1672aefc32472916ec3af4d8f3d38dab7afefd9dd9f94c56d20988c
22620 TRXUSDT Jun 17
7c0979f38b80b404aba86269e2be66a531b21080e7f3dc346cee289f69d5310f
22621 ONTUSDT Jun 17
a053d10a3132a61473670f2bd43bcbf2df8ff05d5e141b3122857c3513491f71
22622 ILVUSDT Jun 17
9b2a1a8318e130c250f0209f4ae7d8dda1f780f825dadd9b55ec4dc6d202040e
22623 CGPTUSDT Jun 17
2180be06ad3f1dc0f4c73885aecf5ea8f9aebf347d31159a942644620923af5b
22624 DOGEUSDT Jun 17
7201d9dee051046b5c43859aba6154505facfd6b487add6d82e69911a7149e89
22625 ADAUSDT Jun 17
1131c415c1f4257aa7230ff2f6ef829efde3d3c23637d05d21c8d22527ea3f2c
22626 TONUSDT Jun 17
a41adb48ae93446d8e23d9795ae6972200670a7d5223c28bea30ee305532d686
22627 DASHUSDT Jun 17
fc5ede21963acd9d14170e18b04e0b4c4ba901c723d1bbec4f888d2f62ca151a
22628 DOGSUSDT Jun 17
106e7e4881e6783c4bd55961dc98144cbe668fe50a345196808b4b35ac3016df
22629 IDUSDT Jun 14
32cc85491e217f5277fcb8205a5ea8e858ea5203d8b8ffdbdd81bc59974391ed
22630 ZETAUSDT Jun 14
becc45885e15e90ce8f56737f49841fd7c25f8381edf5b47437a83e33e773aba
22631 CHRUSDT Jun 14
aeb89418feea639238c07ffa9930a28b289752d206612c0f347096533fbf04d9
22632 MYROUSDT Jun 14
e4d7005dbb40c13d791b34a0fe5f2a95ac1dfb6ddf4b0c694e741300f20b0466
22633 DOGSUSDT Jun 13
7e5a6643e561390083d14ed12c576568d749a68052db80c25fb9616ca330bbf8
22634 FETUSDT Jun 11
bc0597f40919223b8322e5ae3f0ec7de1118f182fed7a3f6c9e9598b1bafa4e2
22635 ONEUSDT Jun 11
92b6ba7de91d2e48eec1766816fb4de3f63bac62fbf2aa6fc76c5387e7679207
22636 ENAUSDT Jun 11
a602c12b1e6b74736ab221e0d206ea94574cafdc3f401cbd6970909c710898ad
22637 ALICEUSDT Jun 11
67a686d9dd5b334c65b7c98d65e543a0724db796b112f8f9c8cb9ec70f8a5b56
22638 LPTUSDT Jun 11
7577ad601eaa45dcf4d0d77a9240d3fba909e0d144b765818cdf8e7ee5e972dd
22639 CGPTUSDT Jun 11
cf94617bb53373b450dbf0711caff23624b3383da8505495ed540a656db5b3d1
22640 FILUSDT Jun 11
1e50dc1235f625be941aea6a5014f1344a7f333dc687ce5f13fb7e697b164a45
22641 MYROUSDT Jun 11
6ead09597b3f62e342f093be287db606310c42758d6806e079ef4624304a8258
22642 DASHUSDT Jun 11
22df98ffa5ba4d136cd0e575a8cef1048d925e4d79949d7ca50143a7c52e898f
22643 IOTAUSDT Jun 11
6a1041c1ddbc7c28c095054d128b10e12bc57c55ff8707eb4e0a017f4c162ad2
22644 DOTUSDT Jun 10
36d16e4307423fb7c7a9dccf1ceebe371546ee1d26542cbc9dabfc320f796fb7
22645 INJUSDT Jun 10
b42a772064cc2e868aad1bc99df224a51a858d3628d58c60f67d2c6b3ae6aa82
22646 AGLDUSDT Jun 10
9c7e51e77dea9ebfa231ee1ffca93de08d000ccb254e8acc9a470108eddf117f
22647 AUCTIONUSDT Jun 10
b68b0e5283c684b19e376835009a756b554e5ef0022702d33c79205b1490c8e1
22648 XAIUSDT Jun 10
564fab9cfb375da57ef0081b0a7ccab5135634dab11dc9c3aab55fdb1de42b8a
22649 PEOPLEUSDT Jun 10
88beaebfa8b376498a4dfbdd58c4063febe7ecf92395b17e38bd3eb47cb8cfad
22650 ETHUSDT Jun 10
685916276147fdad3da803466a7f383821507c5ec242aae656240f9215ed0865
22651 ARBUSDT Jun 10
9ad1457894ce680d5e1ea0a3bb4806fc68bc2a2893e1d68c70f5bea694ae403b
22652 BTCUSDT Jun 10
2e81ce71336b9cd1c72eadcb798efda1389454a08d7c8bc9a169aecdd1f5259c
22653 TONUSDT Jun 10
fccab26c06be321b5708dca8397dede9ebc51eaad50d4cc4d6b25dd656241c4a
22654 VETUSDT Jun 9
430242e06fe3a1794ab44a2025bf0f544b60a043baf344ca1e9b10262ba9451b
22655 CFXUSDT Jun 9
69484257fd26e469cbde8704f09df567ab08714c79a55243857cf4590c6ae3be
22656 CVXUSDT Jun 9
bb6884ff3a63fb1e1287710a18fc22de4effb06b7a83c90f07bf50a077132465
22657 APEUSDT Jun 9
b72f33f9c83ddf71482399755ccd25cd8bf35c596a7ae8f407df4b9509ad2685
22658 ILVUSDT Jun 9
3afc6074cf500d2fbe3b98dab75829a7368ca00e7e168a6b2cd50ea666b0da79
22659 WLDUSDT Jun 9
b991b67a43298190fc4bebf16b004f202b227de61099180519cd943a55809b8a
22660 CYBERUSDT Jun 8
df43fd7a34f3ab6d6d70f11929ee0b0d69f492504829c3be8eac7a3ceb4d4fd5
22661 XRPUSDT Jun 8
b8e23e387bf462529db1d8de1dd1e8d9dbc738432f84b15bf2e9ab5afde34bd9
22662 EDUUSDT Jun 8
17e2f8becaadcd5fa80a63411dd6cb4333be61f54bfeb227973d261ba777db55
22663 LDOUSDT Jun 8
db71da6935e7e121998414a27534c04bac9f9aa06001b1047c32883a7724a4da
22664 ICPUSDT Jun 8
d3333490147ed5fb923350438fa4e0e198fd2521b9ca8a0e33d2ed56dbe463f5
22665 FLUXUSDT Jun 8
5964d1fbe51a6ef4ed1c9d444148f63df69a5e661b42349aab2ada7bedded1de
22666 OPUSDT Jun 8
633a4b93e0131223757002beef68bc44edbe83e0bb1035f6a97f15ea4dbb9ead
22667 MYRIAUSDT Jun 8
9e4a3065cbc95ffc7e5230fe5dcf428aaaf201090c8b1ddf17a43c08e76a8532
22668 DOGEUSDT Jun 8
82c943af7798a2b706054ef53d546c18cd6a932a6ec3d67c009cd5fcbc8e007b
22669 GALAUSDT Jun 8
58716bfd4cf1e884cfc9e840f23c0574350e3334137eacd9de3c8a89a222a8d6
22670 AVAXUSDT Jun 7
d355b0930dc7dc5e5078b4ece5100c0acb68bf1b256360394fe7915df617c7e0
22671 MAGICUSDT Jun 7
cc5ca55bbbe73b1420f43ce1ccc2a3a14c5d92f72337177a07addf40b4624aeb
22672 CGPTUSDT Jun 7
1d8b96fc74b7fb93d31b4e151343b2bfb7259e2e2ed1c8be4f30ff99a1a0077f
22673 PYRUSDT Jun 7
1e04dc7b0badfca3f2bfea4486d3b6854edeb6c39299dbd5a13e334e837ebb9a
22674 ZROUSDT Jun 7
ce0c40b40f94e8269668b3050b1aca56e2acef95a0ff7b281e32fdd33eb3bc6e
22675 SEIUSDT Jun 6
72f07695c67cdced7fc457b3edf0c8e5c26065027976f26ab09ca1082711bff3
22676 SOLUSDT Jun 6
d0bc146fd2c3514f3289927678c699ee7ad6be2e2639d09097e3e53db2cb0d4c
22677 XRPUSDT Jun 6
63725b05bf7d7161f807ad92ab97d1c9f36d9605a92f8a7a6c01e02bea464916
22678 DYMUSDT Jun 6
9149409f8699b84a6f0651daa3b90058f99a8ff2fdd162410301d806cc3ccd4e
22679 BTCUSDT Jun 6
2de4629acea50548f8ef4c8a57ac666f54bd80ec5598893592d897ab9d6adb3f
22680 TONUSDT Jun 5
abe6d8435606b409f91fafaa78de661000bef70f501987c2a1c99fb945ff3baa
22681 ADAUSDT Jun 5
2086edeb641d9a5660c62fe1f22f3ada78a0170c41ca1469e8169e590e6be9c5
22682 APTUSDT Jun 5
e02d69d7ed43712c26a9353d942142c11ecc9c31115fc1d99f3eb90fedf573f0
22683 SUIUSDT Jun 5
34bb4607a7151cd68aefc2c310291899702d0f602b5f47fa8d685401b9557009
22684 DOGSUSDT Jun 5
03181ab76c4f48b0a4866da38f2a93b1c9dabac90697b8b3fa292c5582123b67
22685 MANTAUSDT Jun 4
4cd6f9a6a11eb07b1041386cbd45cf6d447e4587e8a33ad7b7ead5c89a192b92
22686 ENAUSDT Jun 4
293382b16c450f99d50d7808409af7fead03c1d022d5bc0380e35d7404fb876e
22687 MEMEUSDT Jun 4
8fa742b86925f6081d3aba4071a4330605b571593ea5e6c6edd218c660e3f92a
22688 ALGOUSDT Jun 4
a581ddfe72b8e897662a0015b0fb3b9b9bb9912e62510d2c926fb818031b103f
22689 MYRIAUSDT Jun 4
c4b6b2dd8b55f138490db38744c06912300eaefddb20f06839bf0096818ec145
22690 ZROUSDT Jun 4
be079aa0dfd7b5b2f7e7aff4bd144f848847708a8b39052a179bbbd41e39b5fe
22691 PORTALUSDT Jun 4
c90a02cd8aa3c6328d79ed39725057c18a9e6707801c38d679be549876a1e960
22692 WLDUSDT Jun 4
1f10ecf81c7499fc2de68d02d6164643990850d34c652f0dd2b9cfa1e4f5dcbe
22693 ETHUSDT Jun 3
121a965e7e53e10d6569477f5f9670d97c2ba274dfa396442db803737bafc4a0
22694 AVAXUSDT Jun 3
ada6bc0052af6db560ac432d59577cf08c9d0beb465a13ceb657cc0c24a52a7d
22695 ARBUSDT Jun 3
a0c2626fc9f0d5a8092dec55c1e023b3609e614da0937fee97bdb2173ef282a7
22696 DOGEUSDT Jun 3
5e758930ac91dcc6948fb26568d567f7b6ad40322cc1ebba9bdef05c0fa3178c
22697 ADAUSDT Jun 3
9bf4a3b944dbf5e141cda0654f05b24a766b3736896064b2fb90d76a3518686e
22698 SOLUSDT Jun 3
af76a9e2ecb900823fcd4ba417a8beb965f022f85e9cb2e9219172a06357b2eb
22699 APTUSDT Jun 3
6c187dbdb7e4130eaadc290da220f62599255069eec30fbbc88b35b0609b19b8

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