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

2000 NEARUSDT Nov 24
33243b5f79141fd8d7d81075d3a91f052e91b0ceb7d8b459d7040d9771648b28
2001 SOLUSDT Nov 24
4d0f8c45820897aa9991dce32d2b1ae77fd86d040c905fd09e0f34bfc02367c1
2002 NEARUSDT Nov 24
035b055a2332592b00b1a00531296e10eef3201794aea83e691af29a6ad80cc2
2003 XPLUSDT Nov 6
a633128022402db11057839bfbf784bcec1a9749d7c55595ff8aacf3a2b5ed70
2004 SOLUSDT Nov 5
8a8aff6bdc0e4cc653a15521e5d4fd14b7283d3988ad185afe63f64b4c24b033
2005 NEARUSDT Nov 5
78279c5bd5c3864c3ece724dd8c2f84e51c6914dbec6830e7b8762c60fa79a00
2006 SUIUSDT Nov 5
5c384b9219ea1e704e8a911caa6e8b10b7f25b68b523707ab19eac296f4de895
2007 HYPEUSDT Nov 5
81db55d600fc6c478fd142cda344ae08db12c2d41fa93eb808e9f6a04c1f97aa
2008 HYPEUSDT Nov 3
4d560cae2449af618484174c1e9b5f8dd5e3608af3e38b82f22f635da1d02ef9
2009 SUIUSDT Nov 3
a7b80c7e805e28aef22b710592195dd1f7e32e06f2b9e3a090a4bc79d3622ac8
2010 SUIUSDT Oct 31
1cec40c99485c674fbd93b557713dd43ad39e12b38a22ba9badaafaff2faf49d
2011 SUIUSDT Oct 24
2dc6358a423695cbca99a764161598a96d2d20a25b6d3d6f48a3429adf202a3e
2012 NEARUSDT Oct 24
a6d425d320e58eb38ba4e99a31f8a501e710d095690b81ae15f8825ff0a680a5
2013 NEARUSDT Oct 24
2568316ceda235f391576d137bcafbd6e221360b190eecb8a335682124c28995
2014 NEARUSDT Oct 24
d872cb1a62692a363c0cc03b31dd7471f0f2b256d10d6cdce39282b048ecff74
2015 SOLUSDT Oct 23
7b00869c6913e5f4d8671ee9eb584ffa6daae4150dccc2ca27250e56e5304078
2016 NEARUSDT Oct 23
01958527c605329f8fbffe36c5cb995defffc136ce59b5bf420fd6200e15b872
2017 SOLUSDT Oct 23
1bf75d55eb8cf7fbc7e54728fd9d46b119ef816c9a798904d46edaa74d66e3f8
2018 SOLUSDT Oct 23
9b92f866ba7b6b8bdfc3479375dadbe021273a0aa426a79131187ede2edc1784
2019 HYPEUSDT Oct 23
51abfc4f6454bb47706fd7df8caedc23b836a03ef3c21f4f10911b6b21abf979
2020 HYPEUSDT Oct 22
fbb174ef1e6b6dc13cfc1fba8c5448c2e54ae8bd7f1de2e47c34383996cdf47a
2021 HYPEUSDT Oct 21
b99f5816bea5177b53cd54e4dcc28dfc7634874ead5cacb30ccee66ca638efcf
2022 SUIUSDT Oct 21
fc8eec308281a9be0a30b60bd417ef5a9043968de3978b75ff9db31a1b1f42a4
2023 HYPEUSDT Oct 21
b0f10641b59afc50632dfec2e6de3e74238e09d97ac5f48d65d1b75ce9220df2
2024 ZECUSDT Oct 21
1e91cb415ba28ba0d34f71f6c53bd65319d46e2d4bfe6b63f57e4bc9ca84a3b3
2025 SOLUSDT Oct 15
e2277271a2417d0a23ae03f54ea1ad9f59b1fffadd51dc2c3535524f69963e42
2026 HYPEUSDT Oct 15
577807bd0eecec60431a8dae2261afc76eeb1dcdb571c25c7e65c7a34e046b14
2027 SOLUSDT Oct 15
d32cb777b94397a56411caedaf3e0eea2852eed5c045bd166404170424a9b12f
2028 HYPEUSDT Oct 15
aa64aeb1095d7dedd97918bc11adcbcc0755296cba63ba4a6d1ca1741541ffcd
2029 SOLUSDT Oct 14
26b0551cfd18daebf604d78d1064a73e503b73c7203f6ab52c3ced59584de5c7
2030 SUIUSDT Oct 14
eba7a22d5951802625387154a61549e0197975a78c9f03389ed925b8ecc19f60
2031 XRPUSDT Oct 14
a1886b52d6969225f569d6d70264ef53c1c05fe5f094d74767480b9fda7b1f4d
2032 XRPUSDT Oct 14
cd43e33641a8e8ef5db3a71fb0be9d4870c7dd3a1021f0c24445b9d588863667
2033 XRPUSDT Oct 14
e861caa9b2883f4637ea574dd4ea43add3fa65e5fce61a3a7d1c48ac9b0bfa3c
2034 SOLUSDT Oct 13
d40a2b98b64dc95a61f758e134540c59279c812db24e6ff70fd62b1344f0a12b
2035 SOLUSDT Oct 13
a62d5aa9a072b4e9947d008a491a3e41b4a29464a0c19f4cc9012c621eb076fb
2036 SUIUSDT Oct 10
19c5c01fb94da49e83acb74aad9d6a2317752a42482327ba98f72419563f120b
2037 XRPUSDT Oct 10
007232ea2662799a1e23562c7e2b0ffd621348128e79fd70eb8b5d61762a880f
2038 SOLUSDT Sep 26
37aa05fd21b9cadebef47dc2bafcc8238f818049fa5e1e379c43601f7ed4e203
2039 SUIUSDT Sep 26
fa47932559a6144f930a6aafb55b9f0bcc29bb0a58ae70da681ec845906f25b4
2040 XRPUSDT Sep 25
693d73c33873fd39175f86c44176ac1a8bcd3736e8b7f7538a3680f1714e6e88
2041 SOLUSDT Sep 19
ab3ce206e30d8b7433e6385da8205d7fdfbb5082bfd7451a47e097b1fafa12f4
2042 SUIUSDT Sep 19
78850fe2f84313479ef1b6944513970f054de0a80a6c51fa694c37000a57c489
2043 SUIUSDT Sep 19
ce0596ea68b349e5fa783fb921e8d273019e813484f16c7ebe8196127e283917
2044 ADAUSDT Sep 19
4637202d0e18f5c7d5246522fadfbed215452924d8135ca53c3a2c4b48787ad8
2045 SOLUSDT Sep 19
d005ee871e8a7fd968b2995a04ce9168e9fea4d378133ec91877fb36369ad79e
2046 XRPUSDT Sep 19
ca6ebf172b032eff74a1b2deb91fb9facc129be48f990811f22d7f7b2d92a4ad
2047 XRPUSDT Sep 17
a5a26b33a294fefbb4c3ed2a82b92f056fe13a3949040363a463bf22c3087d9f
2048 XRPUSDT Sep 17
69a6e1b808bcff08ec537a34a408c2418aca18ec282677ee06ac46dd51e8f365
2049 BTCUSDT Aug 7
d5d1511c60a9df5e6c5837fb234001204e0ef135c82b123cb8d6eeb5e832d642
2050 ETHUSDT Aug 7
1d09a69c991bc5b2d2145865dcee136823e5eb9e420cf53c6c7b08b374137740
2051 SUIUSDT Aug 7
5efc2b679eb29050a61af7d32a7d36de8830d292c1ebf63a62709ff385c0d878
2052 ADAUSDT Aug 7
fd0099df8054f8758a0332597359752b929815cbe4310cf2906fe650485c92ba
2053 BTCUSDT Aug 1
aec8ff1b0ead1bc3aaf797ecf2e052739c610a880118f0b48497661f792b2409
2054 XRPUSDT Jul 31
4172c069d82d00f484c9edc55bb7a0588b85bf774ba64cd7de6fe3d3b97515ca
2055 ADAUSDT Jul 31
8bb128e7cfea80609d33062d73180464a03b9b3811ff100201fd5a5a3d949c43
2056 BBUSDT Jul 31
9fe7033cc875f9c2b231c55b487e8b69e38d9ed738bf18fbcae40c74621a2cef
2057 ADAUSDT Jul 31
41878a92ba4083dbd44702c0f7b85785d8d4fb2cce0b3cdb71c15b038389100c
2058 SOLUSDT Jul 31
1611f43f31fefa1a2da761bbf9250c33ec58e8afccaaebe5bb9f2d5b1624fea1
2059 SOLUSDT Jul 28
878cc8bb916e7cf0fe7ed5bdf11b2d6d3eb07bbbdef917d74f618d4f87f54d34
2060 XRPUSDT Jul 28
01bac2fc7bf448b422be23c8dd8ce9fc8226cb1802601af109dc50f5398fe3c6
2061 SUIUSDT Jul 28
745d2b80d119bfea8a22ef817909c5c0cb2807d9d54e537c0d6fd5a9b33b866a
2062 SUIUSDT Jul 28
5522a5b64915478fd54837c9ee8441f8060f5cc9356d9db9f1ff222135dfa0bc
2063 ADAUSDT Jul 28
3fd7a6564aaef1d34f521cdf0e7e113e5d960ae378c30ea50380a039af8b92aa
2064 ARPAUSDT Jul 26
86fab06637826486faa47a49c568868974f5a6877e96faeebb429c62e0e5addf
2065 ETHUSDT Jul 26
70efff38490e094123105b15407e7df2257a714da32916aafba8cb562c8b813c
2066 XRPUSDT Jul 25
d4dc0a68dfd3a2349cc5cd94fd47af2c351378e2d654982a8a9ac4a5c16547ba
2067 SUIUSDT Jul 25
2017d36184f17001de481e7880037e631b895546819f2c0f91bd10765fae194b
2068 ADAUSDT Jul 25
d46fbf480b559652089cab268654891c3982bea4f7c637c8d350df2ddd42179f
2069 SUIUSDT Jul 25
3f124348d89593fa0a9dfd630955df90cf8daf911c46ebcdf78f044ba47dd39e
2070 XRPUSDT Jul 25
bfbc30b72cafa62f97f2a6bbd136193259e975f6f94d653d96d4738c7cb7b278
2071 ADAUSDT Jul 25
c5708b615cb439112637035eb16a65a1add6bbdefe8fae6c62b5a6ddc12248a9
2072 SUIUSDT Jul 25
0a2a67baa1a49aa21b33e69a4c122d556c05eb76f0324743dae006f99ed67134
2073 SOLUSDT Jul 25
87176e13fff8cd1c8dfa59a6c0defee8e05e3986b8bacb1df09e26701eb96bf3
2074 SUIUSDT Jul 24
1853d0f2de9ee2f25fc9723f8df8944de985672fc1c259ca04f967de9f6c6aa4
2075 BTCUSDT Jul 24
a4c1736302b75047a47533466322b5ebee02421ab8fbd326fef3b93d9957bd90
2076 MOODENGUSDT Jul 23
8f134eb8d82e00ecf13b7c903ed0cfeb8154a982139a9e0bfa2fd5fe04482efd
2077 SUIUSDT Jul 23
d4aff20592fa260fd4f53062d1e14c6e9ada4aec9aabd074958d43a99497777e
2078 SOLUSDT Jul 23
2b6378a5822c0baff25f475d850b60d2a448020cac9697eb394f054d891b1ad1
2079 ADAUSDT Jul 23
b10432808907c58726b6c30f57817c63efbbf09610af23c8532e0d7c237df878
2080 XRPUSDT Jul 23
116cdba0fed9abb65ecf093a2d28e7e821d8011da60ccf44d66d788d9351df6b
2081 SOLUSDT Jul 23
6bb725e19405743b71d42d2b2f295940f2c53b4ba5e94a88301e0e00f47b95dc
2082 SUIUSDT Jul 23
4207f03d2bf0fcbb283f48868ca6c3f05880608ebd628cba32adad861cae41d1
2083 SUIUSDT Jul 16
69a6e550d7c3c3c37c20c4462bda671545abf06fa7322eed9e69bb79ce3a567e
2084 XRPUSDT Jul 8
621e36575c818f7c6d67ca4206df89b13cfd32915942b286d344ae2e6b408878
2085 ADAUSDT Jul 8
603d9bc280ed5da69dc8b10021ffc7defb6866831e1595a677c8b507ef2d6298
2086 XRPUSDT Jul 8
5ea9cd1408c9da94f9b2f15f9ad84381d8cc05c44dc626b8f255e74d71d3e84b
2087 SOLUSDT Jul 8
eede5eb6e205ec930c9e9e8335805cef3911091dbbf2603f266810b6f5c1d4e0
2088 SUIUSDT Jul 7
6e8382fb7237a5500cd238ae0548fc32ce2b2f02f429095372643e1ff61c4009
2089 ADAUSDT Jul 7
d78b4e7a1af716d1f2a3a05375dfba3ecc5476201978c62bcbaa02ea0204acc4
2090 SUIUSDT Jul 4
9895862942d25fa45c18ec1b53bd89dfaa6cfa454beb6eb7bdbad46076abf3e0
2091 SUIUSDT Jul 4
9aafa475c9ea597d8acf84cde1871e2b5853e794c77f43fdf422491fcd54bf17
2092 ADAUSDT Jul 4
634670db8ce720e0a0720e8d17e89fdc989b66c3c2d94c13cf01d7e9f416b5dd
2093 XRPUSDT Jul 4
341513d23212f6bda6de2962a5e688eff6fca1dd93b86befcc66942b7f2e6f85
2094 SOLUSDT Jul 4
92b041836f6a8dc35b73a93996160f4d9b1cfc97eb705834f4f7265b6dad3d08
2095 SUIUSDT Jul 4
acc262e1599003471a421155ff6095e3782edd90fc892c01797aa313e8d91822
2096 ADAUSDT Jul 4
e84e694321b7d7c16468671b7c4e47e1b0169aae31f0b7397ee4fda790fa2138
2097 BTCUSDT Jul 3
26f786fb3154e911210dbc3d0531bc237f1a92e7681c7b0e8c991ea9dca42856
2098 BTCUSDT Jul 1
f2e7a5098d1f40e533626c80cc125f734ad568a00e506d15e8a87b345d8a9ffe
2099 BTCUSDT Jul 1
ccd5c67832f7c82b772d8d4b47615ce294df17db07fdd4d42759c929d73cd52b

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