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

1200 COLLECTUSDT Mar 9
b209de194052d39d7069aac33b9d856f0861707c0beb161e9704b3abd52057f9
1201 COLLECTUSDT Mar 8
66c1b5a8b48126c3264c8b54d0936a45d53d441f6e3b363492752ef913626b60
1202 BEATUSDT Mar 7
ac87174e52c9a3fa2757cfc0d6d516b4642b18c66e6d4caedbd46ff5c58339f4
1203 CYSUSDT Mar 5
ecccfefa45229b3f0636132c97b3470d41952f51e691a65c45b04a950ed94b3d
1204 HIPPOUSDT Mar 4
41b71cb730de84530369129be7cc34e7e306d0865563055fc49b5ba2a902d105
1205 BTCUSDT Mar 4
f08874ebc9c25a0178b0d5065495f1683a18b9cc3ef49e04ec1fafa3378c74c2
1206 TAUSDT Mar 4
c93a1be4c0692b1c31fd5fdea4e9bba9499eb5203b1cd221067b496f34262eb9
1207 SAHARAUSDT Mar 3
8dd67c2ec63cfc4a57d11769c599db22376d9e366e1e590c3cd20c877168fac2
1208 PHAUSDT Mar 3
4bd6e476f7478c52693f8713092865fe105d06f1330337c262737be3b5d67090
1209 SIRENUSDT Mar 2
c7fb4748ee5bc8c8ce4e6544793d656d3b861b89f24e07e8a989a82e0e56cda6
1210 CATIUSDT Mar 1
a88d3e537b7c09b12f815f9b95681c385c48a625d4591558b62c7e68b85b3d06
1211 HYLEUSDT Feb 28
8a5bd6eb50930475e1fc38d57c4625cfebdfc6a363d438cda2b2f268adf71f63
1212 SPORTFUNUSDT Feb 28
43a872b078c583aec248658e43afaf896b99053de56641a92db9826914e3421c
1213 BTCUSDT Feb 27
4f1e7d0371242945e824685132ae437f2678605fe83d2075341a19fa3ffbd521
1214 HYPEUSDT Feb 26
71578dabfbbc1b361aa1c04e293030bc1a904de7d792d4afd59cf4e8fca074c6
1215 TAOUSDT Feb 26
1649deaac8d89bb8acc6ba7ab800dd8f46c19b07a74f841f0eccdb06b87abb3c
1216 HYPEUSDT Feb 25
a83987bd139ccff33188a62ea2b14bdf729c23137b963d731b1d5baecb65553a
1217 AVAXUSDT Feb 25
e7aa5a29ae51ed09faa85cd93abc59be6375ab18a7c015f3088a6832db286913
1218 DASHUSDT Feb 24
110bcbd6cb0e3589caf38976aa88f11961864aaf9195bd48944932180bf50625
1219 BTCUSDT Feb 24
5d26c5eee5284a7be421ba9009b00d07ddf50f6103d97def0dbfc189ffd0d84d
1220 INJUSDT Feb 22
63a7fa113e30a8e95ac7dfdf8e84d306a542d8739c8ee56cd441105de8cc5d00
1221 BTCUSDT Feb 21
2489a0fa82431f2ec4187331572abb5c166aad2c7bf92b8a903dde7753447122
1222 DOTUSDT Feb 21
fe49b1e8872a4890531e717a1fe582190816de6249dc0204e61903efa19b49d7
1223 ADAUSDT Feb 20
4ba46d1f44486bfb5b7b45ae5cfb372c8bc45544901ceee7d209823aaee9b733
1224 LDOUSDT Feb 19
12cba428634935bda4b65c25a42cf6199c8243dc89542f3139efcdd726647f08
1225 BTCUSDT Feb 19
ac1597f62d721bce8943bebe863fd82ce946f8804ffeeb87ba23f3557b9cb763
1226 AAVEUSDT Feb 18
4c9e1f9edf341cc0ca0be37c0ef0d1804795ee0a704257343ff5c1a96223ce1c
1227 LAYERUSDT Feb 17
1547e4a715580e52fcea5325db493cea99b2904fc512bf3b7b9060981d84cec5
1228 ADAUSDT Feb 17
b94cb6fb48349cb884eb06f0988cc68394033e76980beab834f13b4929a18c0a
1229 XRPUSDT Feb 16
febb7970f4125fc2dc361cbf266961afd1bad9e5661a221700d84ad9b4b33ae9
1230 SOLUSDT Feb 15
28d2eac6389c841dd11f2c394dd5e55957b1fa835d70f372e25f0787d55f01f3
1231 HYPEUSDT Feb 14
9259f0e4748668635f747eb0d191eeff23bde017cb95bc97ca6052f70ba0154f
1232 TAOUSDT Feb 13
d126bde655f13382a365a8a99848eb33ebf007083e2ca473beb83be76a5e5b08
1233 BTCUSDT Feb 13
6c1328b14406b4730accbf6a8bdad8960c9a49903574101561ef6a300e7bcdc5
1234 HYPEUSDT Feb 12
21a37a8d680b626e210a67331723652cd73087917f5f7449724439178bb7d4cd
1235 ASTERUSDT Feb 10
d1077173dfb736e711495485d65afe28db28c5a2b93b8ddf3bd6fd6b030d9f6e
1236 BTCUSDT Feb 8
8956c13d7e8ab3cc627fa103f923012eefd1ec8aaa6a92fa202f8164ee957ec8
1237 ONDOUSDT Jan 28
81f41aaa36047ba166b6d0fe990721b641c7acecf8fe6a7bd708ac71b56d491d
1238 HYPEUSDT Jan 27
de0c7f45eb2ee7f285d5ee70d923be4cf4e006cb7e2184ad3fc855b76a2e9f26
1239 BNBUSDT Jan 21
6d3c8c70f98b2908a1c70b163228ac3c997c7908e7ac9f5de09e9e89caef0f43
1240 BLESSUSDT Jan 8
b5781613d605bd06498093a29a63b12a9c2c96ddfe170b8a5cd85308f5f7e38e
1241 JASMYUSDT Jan 7
aa07ddc2889f0cd9cda0f902fd8798b46c8bd7a698a3e406d951b3cf66ad83ed
1242 HYPEUSDT Jan 6
04dea4e53eb9de7f718347082929682b9a03ff04aca4cef9e7807cbb6c825cf1
1243 RENDERUSDT Jan 6
17cc8c138fdedd43ad9ab8348bfe9c6be616edf3a63876b0a97c2c575abc4d9d
1244 ENAUSDT Jan 5
fc187e02e59dc7c808c44cfed3ef7c8ec84f67eacf2f35d462e3049c0a9becf4
1245 FERUSDT Jan 5
3324e03aaaf5def1035aff77154ce9ed89326bf80e4e20e00024d11316288ed8
1246 BCHUSDT Jan 3
180a8779aa1aedd9768763532023bc264b9fdcdb5725264af416df66eca281b0
1247 BULLAUSDT Jan 3
62de9f2c52539788c84ffa8175b3f9cd25f021ec8b6f299fe18f2db838aad737
1248 BNBUSDT Jan 2
693a967afeb521aff1993cf64a9d402babe8e4376501a28c117ef85137282247
1249 A2USDT Jan 2
cf0ec01e3d24e49aa8a8cea0b2f433346ee2889964e92b59f332fc3ed765e30a
1250 QUSDT Jan 1
488a2d000017f4514fc1e1102088c4582acae20f52494cd5eb21c104d5f401e9
1251 SQDUSDT Dec 30
433e04722fbe6aef04af4ba7f3e97027f121a1bac3ace4746772406b20f5058a
1252 PIEVERSEUSDT Dec 29
a827ab5fdcf4fab5ebc14ba6b8c682be3ad31491e94cd8ed7300b51e42a650d7
1253 TRADOORUSDT Dec 29
fd65a6aeccfb8231cd752f98a33934ee3c4223218c410ad582fea6a0e99f0e4c
1254 RVNUSDT Dec 28
0c96734191f611cee2b19fd79c8bb2e8730df007a560dcf5e99f6d37ff240422
1255 PROMUSDT Dec 27
2fde2f80c1a56299a324cf74dcf896c02671f5095d24e7b95ab8248c63cd3d91
1256 FOLKSUSDT Dec 27
62c0d81edff852a0f203b38456e13fbd3128815069908f26009247ef698a5bae
1257 XPINUSDT Dec 26
e233141c12bfd140b581405c73ac5d0ac2dd1bbcbd2c43e6c215b0c6e79a22be
1258 SOLUSDT Dec 4
85571aa342691a10c0f3d983583feac1d6e7f4edd6268faa0bb8638fd995644a
1259 PIPPINUSDT Dec 2
8b36bb14d97c43f3e4f6669d50092e28c89cf9dc67776d5063aab020365dcae3
1260 BIDUSDT Dec 1
fc2e088eb23d5a5ad5a8ab388d9147f9756f6743c63b3121ee7e6051686ee9dc
1261 TRADOORUSDT Dec 1
2dcd258a47a150d1e1b3ee711e5ddbba5f15c14b3501ff19b9a664e1faea0ce7
1262 TRADOORUSDT Nov 30
597f77b4bd3fcf2db62b539663e838e6bf78c51a98607d7163fe7b0c3db43355
1263 BEATUSDT Nov 29
ca27d7a5ae35b2237c7361a48e3015de63b437df507a2b7a5c761e03eca43977
1264 PIPPINUSDT Nov 29
c3ef7719a94b76c022158b16af176c7b2cd7700ad5a34ea2e684f0ad0fcc2b50
1265 TURBOUSDT Nov 28
395e50bd39778ab352445ae64903a538d73242cda2276b6ef46824fd7f793b23
1266 IRYSUSDT Nov 27
c9290d3b4b5e458e9ec8b27279ab237e937fa7ad0b39aba33bae488b6b408285
1267 ARCUSDT Nov 26
1005a56952e43d1e8e666ca47fe454dd67b39182b075412fdbc14a0408f95577
1268 ARCUSDT Nov 25
4caa52af2cd3ba5768e5f11505c4d6c213016e676babeb82b324f7fdb1f9a321
1269 PIEVERSEUSDT Nov 25
3af86df5efa805c475240f1ca0d903902026da6e57d99207df190601e752c921
1270 B2USDT Nov 23
04d01bb67e0b2ff32775a2b2b6781920b39066b3b0a048d50c4d2a9be982ea79
1271 JELLYJELLYUSDT Nov 23
7625cc505e7d099382f473b3ec4055c2862942acfe41001271e864df1cc30f1d
1272 BTCUSDT Nov 21
84e99d4163ecef4e5add5d443438532cbf8d8f763484d48f1745f22e42dc98dd
1273 STABLEUSDT Nov 8
3592edad822fb3d814f26924b1265dcdf8adc78176e124e5628cc66bfa157e5e
1274 BULAIUSDT Nov 6
047bd04c74f5013bf5b1b4c71c9bec3e34f9abfaa014c0207f0ab52632238259
1275 EVAAUSDT Nov 5
14b464613aaf2b5e37266287dca8fe66f9220912ebe2a421ee52c7c28a90e5d6
1276 GIGGLEUSDT Nov 5
ad1b6921106972b177d02ffc5767fe604659307b3fcc067a7ff5faf44e8c0464
1277 LTCUSDT Nov 2
1019b2ca649b212c1b6d3d188cd0757cb51a5dc06c273324058edf1f78f04dce
1278 VIRTUALUSDT Nov 1
d7f62d3db89f81ae9a23f6f47cf19458210519eabafe1c5a639eb7bf6046103d
1279 VIRTUALUSDT Nov 1
b72b04fd8776b8ff991b32e500fa9430164e912a8a1c55e070bf23493bb4bafa
1280 SUIUSDT Oct 24
5acf03d982d75044936ecdc96b936eac0423d28dcf2eb7a427ebe4d04fc095d8
1281 KERNELUSDT Oct 24
4213b780bfd8a1342831c5921d6ea1128da2d3e6a55a3339531167315e05721d
1282 YBUSDT Oct 23
2c10aa3157b2ad52400047fea3b979694bdd060ab71b53a23a804cd12b2f86dd
1283 ETHUSDT Oct 23
47bdaf70730b4e0b379a359fbb2f0c17125bb7df677532ae68fc1c73101e8628
1284 ETHUSDT Oct 22
2948b9698431f52b1cdb6829bc18d88e96aad04b683bc2a5e2f42358f52621fb
1285 ETHUSDT Oct 21
df58d12a5aef63e9b254f32f937d4f1a5443a46f35e713510e2bb239adf91b6b
1286 EVAAUSDT Oct 21
948e49bd0cd852f1bdf8eaf8b4adf29829f8541bd0e34d2a8a70020b5f155631
1287 ZEUSUSDT Oct 20
4f07a863a5531aac613caa0d80fa0027985d4d63c7bbf925a59d1ff0ff63dab4
1288 SOLUSDT Oct 20
511219af2785950fdeae42b8890f0c3b82ee33ec6d00de8db927edb4986fae92
1289 ZEREBROUSDT Oct 19
4a0f07d7f9552e326745e5275afd52bab221ef5903862fcf4f5f33199a61d542
1290 NEARUSDT Oct 19
fad9757594e0f10f5d2427a9f46e430dee6a7b30c165b03551142c06178bdccd
1291 XRPUSDT Oct 18
29630e75514732e8b5125917ad5eadc5e08a0ec47aca1c611306e23732abe950
1292 CLOUSDT Oct 18
3b6e8a2c79fb2359918d5e08a5fa0b9243bb766ff395db8b66e025707babd904
1293 RECALLUSDT Oct 18
bdc5e305663e898cb9d061d6d3974dbd0bd77834d904ecebf12aa539dc9c9948
1294 HYPEUSDT Oct 17
e18773ab5c96cc378981a7b343e9ab54650b2d51e804d116f5db5ce9f594e4ba
1295 ETCUSDT Oct 17
7f9c4aaf9a5ab52ad4596da7be8bbb3376a176ba7edbdad2446c12cba6f29501
1296 ICNTUSDT Oct 17
57ddc3525b736f1b13cd68d18c3139e4c121cf9965bf6fd2218628758787d147
1297 BNBUSDT Oct 14
9a0780e137a576f96993e6dcccd9aeb33179b5f429f5cded5b49a84a65fffa8a
1298 TAOUSDT Oct 13
4a91a6168225d5e9abf6963af9b84b11d57a6fbaa73ca84767caab4a7c9c06db
1299 BNBUSDT Oct 10
26b6eff4b74a50b50b5aaf6ab589e3df6a3ce64b58c92f1ad7e72405e6ca5f22

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