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

21000 MYXUSDT Nov 8
285e1a1f2f320bf2a5d6acd4f04b00f1671d6f0e4c1f8a850677af87d8ecf9f0
21001 DODOXUSDT Nov 7
bcbc0a59db40b0a45dc50d759abef37da7d64f8e4b8c484718435832416ef6e7
21002 SYSUSDT Nov 7
57b66b383b537bbf0773426b38c33c63bd146bbfdeb0ca1c2aef66bf1d6e4f1d
21003 DUSKUSDT Nov 7
d1407876c6721ca73f8b2012ae5bd94a4471ac721f76d8bb44e5f45a069598a6
21004 MITOUSDT Oct 31
8d32ed35ef2b59d9e1c3b8a798c16e28fde5ff6d5438f0a86ab0f2b602d50836
21005 SYNUSDT Oct 31
3b330c253f66af6789719093dca5d1f1070ac39eb6d39d5f7884a6feff45cc24
21006 CHESSUSDT Oct 28
71cdad8e61fb7a2a2b16d9122f1e162a3a6eb48c1c4ccd4a8140a0821e7a5cc2
21007 GPSUSDT Oct 28
903014f6358947acbe5ba843a8d127e7d316520371b5d7b4ed39996f1321a6da
21008 AERGOUSDT Oct 28
6765586f4f62f3772ffa5cf2d8839bf020eacab14d80129f3ef01674866b49b2
21009 CHILLGUYUSDT Oct 27
a66fe743032c9effffc4e905bef672370aaea7c1772fbe54e199d0041bab9c5a
21010 BRETTUSDT Oct 27
545dc339bbdc1e8b7243d2024fdf684286cfceb65c2f6e0f4dcbe2262f7c738a
21011 NFPUSDT Oct 27
571122ea541fcc17d1ec4bdbaa89000602efe55a216e2076692c5a6b2dad01d4
21012 TACUSDT Oct 26
21e6e9ea5aa3dbef44db1ee38408f3d9653564ba4d4203d1d7ac44d78bf63196
21013 IDOLUSDT Oct 26
8317aea21ef7000d5eed8750be16f0ade2bdb8592c89c7273fd5d835146f93ef
21014 BULLAUSDT Oct 26
e84cc7f00ef5800d694c7c19f7a248b0579935f3c4c208a3c9bed92d142dba1b
21015 GHSTUSDT Oct 26
7dd2ca59eb069a6ee5df69fa9ab9cdf3b17080933e279962b4114ab2d62d590d
21016 SYSUSDT Oct 25
0d9ad0acd8d59356750217c13fbc57f4341f3befed01923f1b8bbe65a1489ffa
21017 COSUSDT Oct 25
b24a5841247e67770933f9eebd9cbe50837561f321625a41cf7a4e3cd3e7e865
21018 OBOLUSDT Oct 24
775e2028b1c058ab24c7b115cbeb5fd2744d6b933ed88dd173ec8c24d6549adb
21019 FHEUSDT Oct 20
55753f4cb4867e6c15ad9791e46ac7de0e1b2cb5d30a567d30372107e4bacdbf
21020 BDXNUSDT Oct 20
3af93be27c505f89cb10b044f962bb96d48474b8d75578dbdf571086c4faf4f6
21021 CUDISUSDT Oct 20
ccf0dfb5d927fdc269c7598fa69d8cff502c7791625241b99e821b0f790d6342
21022 PORT3USDT Oct 19
02ee248baf5bc3960e5404d1216137e567abf1e57d60d70753e413bed7ab3820
21023 FORTHUSDT Oct 19
344ecf8a4c3795072793f12d08e9697a4eaa9fb540fe1e9da678343f110f7c60
21024 TLMUSDT Oct 18
5d77b906499c6057091183f7146f59a609a51b100538731a82a72616ea26bf1f
21025 MBOXUSDT Oct 13
08cc42fd9b5d729ec938692c6677cf251ee5669ecf6be4e0abdb93ac525714e3
21026 OBOLUSDT Oct 11
3aa914c7b316b7936c4f308d574922b4111bbba997fa9c9484e08baa3cf25cf1
21027 PHBUSDT Oct 6
0e80bf18e14b0223f9910dcc72cbed0669f649eccebcde0fc9f644448a9d0b9c
21028 OBOLUSDT Oct 5
42ef76e43d3cdcbb85bdeac2fef862b47f5eea2eb1aa42d922d81feeb2e40657
21029 BIDUSDT Sep 28
f21189131f7d786afe0a7184208237fc81aa3db4f0a2c4619eb942588c61e370
21030 CHESSUSDT Sep 24
3eefe0c253b6da66f976b1f6bbcfc1b83b92520390e8bce94fce10c824072460
21031 MUBARAKUSDT Sep 18
b0fa62b1b82b6d4c4e55b0c06f047573f272cdbec93c3a1dbc5431c562f2237f
21032 BASUSDT Sep 17
4ae60a1ad2279bd5cb15805411b8a3bb8e2f26d0826dbea8e983ada75a9593f8
21033 BULLAUSDT Sep 16
5e946b134edd6834aaec6bb1f24a9cbd8577ccc01d35a17735e887a8a684fa3b
21034 SYNUSDT Sep 16
08ed7046414044fcfadd7283ea57cfe0c1dcbb58d2a266d85ed661d2b110967c
21035 SYSUSDT Sep 14
af49d0384a01733f3f1fe3cda9c2a89e173b5c809161cb5ad8f22ea79ffea777
21036 ZIGUSDT Sep 3
47f81a9a7d93e76563df73ea47146792581a4213cd3c0ea31e2fbf1b57bb242d
21037 OBOLUSDT Sep 2
8964b31c4ce678247f775bc1a43e79d4faac199dafbd898af9e31dccd6419d3a
21038 OBOLUSDT Aug 26
116071938efa273b6aef87939498d8bbfe432845e94c852d4b59cdc96767274f
21039 MBOXUSDT Aug 24
f9539e5d20cc29a03d651a532d6074131ea19fee9991d03ba7c7503f4732e22f
21040 ZIGUSDT Aug 22
7047e018f839b0aafe6c605351f54a699eab54d937da948b187889fe47eadeb0
21041 COSUSDT Aug 20
2ab8e133b0420fa7d0660c77a1159b9040ca19f0b644981cc3365f5e0ff28cbc
21042 OBOLUSDT Aug 19
e8a93c2a06bf8df2189932e53fd724687e829269749919e59741f7777a968b2a
21043 CHESSUSDT Aug 15
5ec89fc7eb16477ed0f972dfb200b84707183a2a5770087e6da15c5fce8ba9c6
21044 SANTOSUSDT Aug 13
2abaf064d98b085eb7dd85004cc4df372f299e7a47555528ca274b336137e0a9
21045 AIUSDT Jul 26
ecbdfe60f020b4c2762a2afaeb1b4716992ed0457019cb30a1dafbac2f3d47cd
21046 FUNUSDT Jul 24
0c3134ceec44498bddb5933a76a67b182487f5fc2d68e310be39d91b6622ed2f
21047 ETHUSDT Jul 21
d1cde0a3a5a2bf119bfe7304fba9af80df1e12d1fb2a5fe3e66c4f2ea656b7e3
21048 SXPUSDT Jul 20
4bef5f78aad7106823260154ec122f1b5e678ae317896ada4a7f25faae3368e2
21049 COTIUSDT Jul 19
e48bcd26b11a190f18d43c2f7b2b6db09948c6760a8bf8db10995a7c0c9f4e97
21050 SUIUSDT Jul 16
c88144c21601341c4770f33d0a23e99cba187b562dbf916daa8a664b4d9d74af
21051 XRPUSDT Jul 16
bbe01b99fc6ea936f22785d90ca1c3fbd4f7fc9e3ee11c66b10c963ba1040b02
21052 HIFIUSDT Jul 15
19773d6fc6b4aef6525dbdf35833458fa3814ae4baa58c28ee86dbb51456ed24
21053 BTCUSDT Jul 14
2942c4a452bc16f68869799a11eac05752131e4f3b8485b913b8db9677894803
21054 DOGEUSDT Jul 12
6db72ac32f926db58bfbb9773452106d63141f4b064fd5f55805ad28eb680e44
21055 DFUSDT Jul 12
d1a4062289b311d65a89e8b376fe50080a3d2abab1d548ef05fcbe9c2c6eda1f
21056 STEEMUSDT Jul 11
ef16dbf3a2bcdd16404e27689a5fc527bb408f3103fc59205c2ca6d28747d589
21057 HYPERUSDT Jul 10
115ecacdb9645f45e4cd537627261dadd7550b9a5e75eb78b520371b9664ab42
21058 HOTUSDT Jul 8
b8946eed66063f8fef75c6c99a00aa18f122324a83d37afa78075637fa2757eb
21059 BTCUSDT Jul 6
acee011f89f766d1aeaa6bac8db35e6fa9c8ec5d1740880c09279e6d8a9c3d16
21060 ONEUSDT Jul 6
fca2f2a4ac1e408f5267ab84e5410d31aecd30d2036b983a744a5baeb8b0f5f7
21061 ZENUSDT Jul 5
8ee5fd51f717476fcda5713bbb6abfb8a8c918deb521b363780f803c527c4d5c
21062 AXSUSDT Jul 3
79180b9efd6d07d0635d50a83a31a9d2301a21193780b773e028e05720286007
21063 SFPUSDT Jul 2
7da7827becbcca5d5b832e5308d8facb963c9055e067a5ea51d9b82855c6b76f
21064 BTCUSDT Jun 29
043e9bc91928fc9cc07e2b7de5971b5fa56bea21769858eb0d14a90c979eeb2f
21065 HYPEUSDT Jun 26
f8dafdd7825b5c689fa053492048c25dda7f28d38932c84a891120d72f587c31
21066 BTCUSDT Jun 25
6f4cc8134e58f9a63b56db971e87bc9caf00523ac48947233065360042a2869f
21067 BTCUSDT Jun 24
ae5ab3836cf4ed7525d819f9f379bcc2538b4319d01ab4378fc447fd5e51d9ad
21068 FLMUSDT Jun 23
e599d790de8d0a37456e0bfafad150aa12d3b142634df802389135d161bdb2cb
21069 ETHUSDT Jun 20
457290f86f20837ed437e8b06791db1f221864099c69d6ab5f4ce185b6af54bb
21070 FETUSDT Jun 16
708f9c5fd9e2b9d02b89e88f76820e673ee9ba98be21dce39e61c5028b493e6a
21071 AAVEUSDT Jun 13
08f1e8f74aab0dfe88cabdff20bfe41d6333e7a12a4a7400df14e2b2b7740d3b
21072 HYPEUSDT Jun 13
a05390d749f8a72c91c0aab10fdf7c116266df7febd6fe750987f25f81f47fb4
21073 VIRTUALUSDT Jun 11
2c1485f9aeae9658ccfa05dfa9d5dcfecee411fba69c6ecfa4857338ed3def8f
21074 DOGEUSDT Jun 10
b917cfa14c865911b8a7af9ae1b0d78fb8203830d59edbc5fd7f634ae2e5248e
21075 RENDERUSDT Jun 8
6dd5d081506577c20f14ff74d27dd25fd53fe4ed91395dcb8d6b01bf52ce725e
21076 BTCUSDT Jun 6
2d7a4dbb0e2625d2bbba248d92401babb9887e910c13e28d9cc6bf2126b86ddb
21077 ETHUSDT Jun 5
251144598a468e7181eb2f012bfb76cd31a6c1a754e41bbb12299351c2cf5f73
21078 RENDERUSDT Jun 4
8f42cceb0c1a34bf9d836746c3081e6082cf4d1cc8234aa22cd7a2cd81af9d4d
21079 FARTCOINUSDT Jun 3
78ccdc949d540b09054cf1dd9c902d2747ba79b7fd7b13045e385fc7bbba3122
21080 BTCUSDT Jun 3
2a8740eedaadd3acc878ac9a6b278d9ffbf53a0a2ee0315810bff3efdc3111bc
21081 LTCUSDT Jun 2
32f2070490d6b421748220bc29178c487524970950fe0700abc6e9a400dc7b3a
21082 FARTCOINUSDT Jun 2
99ecb8f155b9b75afcdaa62ec9900f106403a8acdf04df0631da3c12a3ef9d07
21083 ETHUSDT May 29
ac7a01953d3d4b043eac58a1a30c834c5aad81ee78294d7c64b1f4b4e1f9c853
21084 SOLUSDT May 27
88655a720e05796d62bff2c3ae51c54e83d69c8042491e2bd9770851dce5bf64
21085 BTCUSDT May 27
8cc5aa7e8ed7e815d51b8020efa6ad328324ea08a193dbacdc478fe3128d9f4d
21086 BTCUSDT May 26
ebb1f2d74dbcf45fb2c91c8c1f1225a9f8c544f26c4a6384974a15c2a4f23846
21087 SOLUSDT May 23
d219a7535ace69c1d145466d476de1aaaa0c2e7b0ca70ea5423dcd62cafc30db
21088 AAVEUSDT May 22
c96374ba3254b1b02250338da9b8ce356ae85d7899a88e3e3113f7f38e7d9222
21089 SEIUSDT May 21
cd581c6f13f1ea0a0db11ef2d3ebfddf93c2851bd8e47cd372bf3f8fabc526c6
21090 ADAUSDT May 21
0a7cc84a533eb730f1a94342a64841cb40335126ed7bcebd7434e68305303aba
21091 BTCUSDT May 20
a616b915a7729846dbb4b56db1a0e7462ed203da7ff37c02fe80d476e000c45a
21092 SEIUSDT May 20
41da9f4512299797432e14a68b8ecd2bc35e0d6002e96f45ba9fb64812090b93
21093 AAVEUSDT May 20
d9c3ce781fa07df0cfef184b0f139afb95d1ccaa66374b7f4a745abe57fa0c99
21094 SUIUSDT May 18
1ebf65be0d08ab3d4e88f3fa02db9e6b28e8a3e354f5d5d046426743d2c491f3
21095 AAVEUSDT May 16
56a910f97a32bfd953b1d5ba2d77c3319070252fcb913fee6f2d9d352b1fab2a
21096 ICPUSDT May 14
50087b46e4922353a24fc946f7feb73e2f4b64e538331af1a3662f8ec411afa9
21097 BTCUSDT May 14
bd55007fb3f5009ff8d6f776a07f1729de22e0b4df0fade28788d415d1fc44ff
21098 AAVEUSDT May 13
dfde6056ae73ea03d46e512e02357ddb1074917fbeabf01a0256b5a1e654cad1
21099 LTCUSDT May 13
d9307cff8bb13159f57315a355d3a75b2722409ed344d9074cf3537cee61cd02

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