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

7200 ZECUSDT Aug 17
3210dbae23aa6e65151d9aaa2b7fbd269d73635276dc05d6dd10f3d1a7560f90
7201 XRPUSDT Aug 17
98757a880385c37d32382ee619987dfc7fbdbce8231a209883244215bc8f27a7
7202 BTCUSDT Aug 17
eb0e2fc3bb004f8f2e055a12f06b24e9a6f54cd5731c0d312430efde272fd258
7203 ETHUSDT Aug 17
9c9f027aa1f78d77383de55db4a918f1beedf28f77c37452d608935e1f502a3f
7204 XRPUSDT Aug 16
e6a569e09477a22781bc62655fe7e4d42ef18a074508fefb3cfcd3d27682b219
7205 ETHUSDT Aug 16
a24439c8ddf5c5eab3bebf816c1384e2d7d3d70d0700d27be6cd9a1f5d1f25d6
7206 TUTUSDT Aug 16
67472222c79e6f53b58db0df8ec99677360b67003e6b451b6ac8cb54b7f14550
7207 BTCUSDT Aug 16
8e5773d4703fee71bcbf47f34eb2fb62108866777b7d75821b73019b5e006cd6
7208 COWUSDT Aug 16
3deb1c83f368df6fef36b5e159e177f726eb2564dbbaf368ce3f12f6ca67ce95
7209 ETHUSDT Aug 16
e7b59d8b0634317862c3541a97f476d27239e3566f81fbe9dcd81abc9e0d239d
7210 ZECUSDT Aug 16
546e108774a6b8e29aeca4f6db8dd7a2f3d08846e068b07dff2d5e9558cb0eef
7211 VELVETUSDT Aug 16
87866fb492fced8316404b8923b5340d92841604cac05ef5c0d3bb5cdc63717d
7212 VELVETUSDT Aug 16
1fbf4d329e2d85d1973effa204215520d5d8b4abd7e9c691e40dd037464ea131
7213 VELVETUSDT Aug 16
0c20ee210b4803473ff1f198253a473964527177036a8c3313da5a76580f1c69
7214 SOLUSDT Aug 15
a8fd22289186f5dc90608bce355685a6400ca0ffc38ca085efbcf21c539c3afe
7215 HYPEUSDT Aug 15
28dac7ac45d94875eee1f559f17c5290761c0a81033f8023bdaf7aa6e4be21e3
7216 SOLUSDT Aug 15
54012748df9f8a6e484cd4c57f0789744490bc8b4ff3f027dcc6d7f859c24d34
7217 HYPEUSDT Aug 15
2b579855d81f0fd0523d2059e70b75ef1cc5cb718cd0578bc7d46e35753ccae0
7218 INTCUSDT Aug 15
7250853131bb9c7e486d14ebc037338ac3adf58ffb1c00f65d79286fabd5d05f
7219 TUTUSDT Aug 15
4a5760e30f8216ddf8dea9e62a202278f4966c955d9a2f77fc537ad0fbe677b5
7220 APRUSDT Aug 15
4aa0485cb0e71ad772a6e89a73e16c3683ebac340c60d94510d4361ad7c0b731
7221 VELVETUSDT Aug 15
4b7399357ebf7851f8cb21e56515d2ef52b6ff32f98b3f46b6546d9553852aaa
7222 APRUSDT Aug 15
1cbd8bba8e7ce13bfabae56c06844f092e0f3bd8bf4819cde3676cb21d1f6463
7223 TUTUSDT Aug 15
654421a04380a438717cd6772ccc6eb13c3f73de15cb0ae8683bca45927aa0d1
7224 SOLUSDT Aug 14
28d9bf310651994f86c50977d35c4ab3f8b9d49cb05ea3541a1875db297e0c02
7225 BANKUSDT Aug 14
e1528362dd193f52fe9889a61ef59065feebb5bd375610db9b65ce453af8d16e
7226 APRUSDT Aug 14
60f09d6a68716f64416dd449c8a6c3c6aafd3e10de61a42700341ecb315e17c3
7227 HYPEUSDT Aug 14
20c8fbc39a84f10521a357595ee852f4c55b1c12c4d4c73780923391c67a5dad
7228 ADAUSDT Aug 14
9736862a3bfdfb275f7666bfcbc016cfe2df8e0a5ed62d573fee7b752975134c
7229 TUTUSDT Aug 14
946110ab4a5c5ee189dda2e037eb7b8068ca23e5569826c6a2f7a81c5e1faab2
7230 BANKUSDT Aug 14
6f0eab5ce76f75226797cb5dcb62b095e0d20255f7e8258b0995e57ba6727b3d
7231 TUTUSDT Aug 14
ecf4f25d82736552b33e4306e86cf6e4054d24320fc02a2973833dbbea0b165e
7232 APRUSDT Aug 14
6048aec709daefa0684a6f49c94cdfb3c9f31c135f9592ec3eb97c497c6c4449
7233 ADAUSDT Aug 14
a736e5aadd11541360b05d426d3b5ba7294379bb3336d7c552ccb096cb3bc45d
7234 ETHUSDT Aug 13
4c12d42f7e01967a0a892f0fc4e4beb9c4c6a8889fabeb404e027ad240185287
7235 ETHUSDT Aug 13
3005f9e7e180e7154644c6b9b3d5ac0bc4c5643862372da5fae76d31d87e668b
7236 ZECUSDT Aug 13
0e00105c3882dec71a0c8454ffb909ae10f6f1176c8b4bec404393782c1a30df
7237 XRPUSDT Aug 13
a6681af2d8db8eed6ef596085844a595b1804e8795976768f091b8f5cbdaf8a2
7238 ZECUSDT Aug 13
e63f7ff55d4af8e7a8cd242975b582ca660d526bfd42eb48ee3b7c6701d7fcd4
7239 TUTUSDT Aug 13
15959b7df19cea93d1a94d13e83a0dc0748d065e84144a363ccb8f5031f12ab9
7240 TUTUSDT Aug 13
f60d33c7c2dd3be28f9b902703c7bf7c44665ed0f4d2d0bae9323b5dd8b9a778
7241 TUTUSDT Aug 13
ff32ecf829d9f776df8bc956ce54baf3b43e30e9907300ee186429d658effbd5
7242 HOLOUSDT Aug 13
9387923400ded4bda3b536307089a54998bf26ed9bce7d254fe31e21627bcbf8
7243 BTCUSDT Aug 13
dfb30d0f6bc8699b62738ebd6f801a0dd63dcd103e85e05068547b825dd23146
7244 ADAUSDT Aug 12
c9a2f6103b0f2b9cc321ba37a9a3a21c69b2b2d65a671b3686fb3f21420c16eb
7245 VELVETUSDT Aug 12
b3e815cc215e66e658117c9a2d007b497ab61234deb464fcbad12026330403d3
7246 VELVETUSDT Aug 12
267b265eab9474a151ccca1c594551698eb0d2105c26977b22f56927bbdb3c3b
7247 VELVETUSDT Aug 12
a2301bffd1ee816b2832bb1fd30df601cfdc4c5b35252113e8282191296f0166
7248 ZECUSDT Aug 12
a1b3588193760b753a786b347eb11d24a68107ee0992132a550ead8d9c6040c4
7249 ZECUSDT Aug 12
bedbe8a7e121a031a3e96741639796e305aaca02b7ec6462b63a7139b3ca211d
7250 ZECUSDT Aug 12
5cd3009e5a082858ee6141397dce9c2ec58b2ccbabdb0919075307154b14cb40
7251 HOLOUSDT Aug 12
13fbe768f6e2b2386ae6cbf60a0e34715c08eb331a901e89a860d190e7a7cab7
7252 TUTUSDT Aug 12
e47b5d889c81f4300aa1516503d1bf9271ce713640b2c6627344ec97061a5420
7253 VELVETUSDT Aug 12
ec86bd14696470d81b7e950d8ce162b6949f299ed1573ad6aa37b16d731f6236
7254 XRPUSDT Aug 11
0b67fa26abd91779fcf24ae53fc4be7ed96503e7cdd04593f8964439ee78ea05
7255 BTCUSDT Aug 11
06e2daeebbf46f3650966044bcb60be2655a36224e195b9517004375383c1468
7256 ETHUSDT Aug 11
a86ecb370741526270959c4e6b695173d8b1859dd9a95e6c25b630cee8e05162
7257 NEARUSDT Aug 11
db7718b2e54855d7b66e6ebbb030d06d090cb327d5b608aad6e71d65bdb7b531
7258 XRPUSDT Aug 11
84aad2b7e2fe13170e18ff6d160ad3ad40e1d62dcb9f52690f21d749027911bf
7259 MUBARAKUSDT Aug 11
d3286b96450b7373e7c76afff75438503748ded68007f7f598f2a2d65f3fa940
7260 INTCUSDT Aug 11
575760a40535967ea1c1c859377dfe8fdf89308aa08d422d19985559bebeaf08
7261 ZECUSDT Aug 11
847e85ad5011af302d760c68f938e85187be7734663e4fe1c1b323db46f414c2
7262 BTCUSDT Aug 11
654549449a3d731bd680c2216835be25cb5fa0b82763e2cd560d4abe604118a2
7263 BTCUSDT Aug 11
282bc87789e41974a5c6edab522b7097a3e1a4d0524e6665732fa210d5ecf1bc
7264 BANKUSDT Aug 10
feaeea05694eb4a5d3dc21bb4b5a5e3e91917e179c413ffedd3c4a207b75ad86
7265 BICOUSDT Aug 10
45726c2becb479973f605dd0d110b283f333eff74a0d2d0ed386cd6a554d67dd
7266 BANKUSDT Aug 10
84af41f636a45b8f2f64e9044e3832d44fbe542f78f25deaf9ae2c118cc11019
7267 SKYAIUSDT Aug 10
18dbd458f5710a80a342994d2938da40d609e56aaf05f03e6c9a6558c3da290c
7268 HYPEUSDT Aug 10
e1de9dd84ac698688aa66a21e43c83938e144794d3104fff54e9f40b4407db6e
7269 ETHUSDT Aug 10
00d0d87dadadfef100c0bfe3f893e561f588e063b0375f1ea7a83a7d8da3adc5
7270 ADAUSDT Aug 10
9ddc75a64ca9de90788a93b5ecccc049b9d8e8edfbe4e417178c7aed41ef9bf5
7271 BTCUSDT Aug 10
092ae9ba686381869328b5582df4375f86d91cee1fdd14307853ca0d69f8537d
7272 IOTXUSDT Aug 10
60380345b8de77f04a16910130cd05edae5068e57019ba8a149be5af399843f9
7273 BTCUSDT Aug 10
b07da19e52f1d159f54da0f60768d927986cdb89c1e62f431e4949b41a7571c0
7274 NEARUSDT Aug 9
3efe197c29e07f7c8f3822de81b4eb7c7c415ac2d8f852121420559148019042
7275 1000CATUSDT Aug 9
68c731db41c71a7f5b6acd564534dfea1c55e0ebbdf4509ca91ccb2bbe9e7567
7276 1000CATUSDT Aug 9
7bdd276b4bdf349d4c049805b640732adaa01738d8decabacb01727404e8e058
7277 BLESSUSDT Aug 9
4e90641a3c443924456cc11d963c32ae5f0826f0e57a0d73e5c2c41435323b5d
7278 1000CATUSDT Aug 9
74790f6a9cc02c469548edc151512d816aeea8129f9ec88a747e6a19bfbb7227
7279 SOLUSDT Aug 9
ae65758acd12cb45ce9b63ae5a6a0a2ed1561e49dec97ae635675562f2615b9f
7280 BTCUSDT Aug 9
0d0b318e83f5af8bd5b813905925c39b5a0f13f8129447eb12b25200b7c2fe2f
7281 1000CATUSDT Aug 9
b8f13175d8d597ad1b1895bfa1214103674db9578d2e0aef887913f526dd2123
7282 BTCUSDT Aug 9
43d216cff5ac9e160d2d552302380ea84e67a9cd2e07b0b0ffec977996199a84
7283 BNBUSDT Aug 9
3a789f1407915d604c9bab2ca6c6df866a4e09c5d1ffb0b59d835aab74f08195
7284 ACEUSDT Aug 8
32c7d8844d0cbc1787afb070895d3048c3dc6f139b700faafee209c2f6610ea2
7285 INTCUSDT Aug 8
598ed0000825363b019ba81ffce4abe6a54d6b21a2cf0c8fd5ef3ab7461f1e09
7286 ZECUSDT Aug 8
dcdcf40deb74de3cc31e4e72e3926e07a6d5a50049db7af4908d4f79e7415850
7287 HYPEUSDT Aug 8
3a993460b136d7ef913a3d1516ce131eafd6c08293a9e586be2c1eae2e440d27
7288 ZECUSDT Aug 8
3b83e2983d5aa2e2e9cb9c96c23530e76f3c5bb51383a0c6b29e354f582d733c
7289 SKYAIUSDT Aug 8
8a754c75a62f0d6c42de4d4ff5499188ccd2a78465b3286f2248b41e4c084644
7290 ACEUSDT Aug 8
58556a87735ae172433aa2a819489c1fab19450e8119c7f95ec9a5198fbed463
7291 SKYAIUSDT Aug 8
e48fd80b8bd33bffff5e1181c9b15ea8ea4cd508e7e854f919c5c6b2aa5aa7a5
7292 ZECUSDT Aug 8
7c2ebf3c8c5c51431a11d4de332badcd265dfe9af947e4a476eace085522eec7
7293 ZECUSDT Aug 8
5a35fcba4c065426fcef180e79fe353078bb5f89115704fbefec2c438e36c0fc
7294 HYPEUSDT Aug 7
9196192f17cb69c9ce76d1b5dba0e995e6733de3876e06b6bc5bacc059cb8838
7295 XRPUSDT Aug 7
140b6948feb1c0402ca516832ff2c4b99a272135dca4b564a4e896a16ed47691
7296 ADAUSDT Aug 7
dab9c4307005785abfea452c74b8e324101001140422bdf2688d5ebc5580d11d
7297 SKYAIUSDT Aug 7
eecf3402181af2c9892983867afba66167b13f1831f683b5599f0e90989016c7
7298 BLESSUSDT Aug 7
18c8dc5765539ed5cfdcf39f4200d66816428a907f41720ae29022937e396936
7299 XRPUSDT Aug 7
c7456c27f028d248bd5dc883a329c527720b3e7ff6f8594ce2419ea4bbbe1629

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