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 11, 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 41 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.

4000 AAVEUSDT Jul 29
351775006c968ea89b61c91561d5eb1c9be34aa35955aacb670e6b9bcecd1f7b
4001 XRPUSDT Jul 29
69c702c71e485dffe4e15b2969ec971a4ea5c66f25eb7782e2e7149143bbcffd
4002 BTCUSDT Jul 29
62781071a8167ec42e494fca5e8694eadb82e463d3c857e053fc89a482ac48bc
4003 AAVEUSDT Jul 29
7f3913bca104f4494d6f6b06134c2e9d027ea126d783d46ec22bb22bff985f11
4004 UNIUSDT Jul 29
9af95d5bb6b0f359c2d22615bee0987e719ef7e8edc9d5767d54cad805f4c2fd
4005 ETHUSDT Jul 29
21d8a67e798ed21237bedecff5642f24cfc3dab0842eb8f659611f9bae301436
4006 BNBUSDT Jul 29
ec16c84cfa9e79a92d5004c8dfbb7b34bf5f1fb1e1b7f11402b3086e6e351cc7
4007 XRPUSDT Jul 29
eb1bbe11492ac683953b9f7f365eb4b4e267015c5b8d010aaaa95cbb17b68b9d
4008 AVAXUSDT Jul 29
f14a8fe343e280905043ca7503ce10acb9c6676bf53ca79c0d4d6547f3ee21e8
4009 BNBUSDT Jul 28
f1c0d7e7841448edd4293706011632ae27965c32fc3651b3fa4a9318de172269
4010 AVAXUSDT Jul 28
c67d23234436cd52bdea61566314a5dd0b925e4e5be7a96c085727833b619da2
4011 DOGEUSDT Jul 28
58a434dbad8855520a5d86b3e7fa6d7971c75ddd920e4b2ab046f939bc49694a
4012 AAVEUSDT Jul 28
82ba6c74d2c4c7dfb6bfe5e00f241c2a01f24991350270d26badf300ef2ee71f
4013 UNIUSDT Jul 28
b7dc1b9d1b6ced8c9a9053b5a78b36533509463b42d757480ca70a1c919b4938
4014 AAVEUSDT Jul 28
323782b90a046627fbbdcff198b9938081e1c9f04f0843afa830f9f41404ef66
4015 UNIUSDT Jul 28
2785973a5b1909421b51997fe4c155acb47802349d2d4dd8b28eeb34d716255e
4016 INJUSDT Jul 28
4f9ebae9a0249fbd7ef9b0d2e4df1db527e4e3295d694051168d586ea35d9fe7
4017 INJUSDT Jul 28
6118f26480b8c129eec95d65dbf23934310a922f5adf425c50737d56a18b71a9
4018 AAVEUSDT Jul 28
99894db9befce7d6506bbc3daccf6aa51aa478d641a3c0d583a839971665dbcf
4019 FETUSDT Jul 28
a838856d9fdfa3b2f1d470fbb9fd05e65d82ff291d58f8990a9ce27974010802
4020 AVAXUSDT Jul 27
adb637f42065850725d4ef7d71f61eb85f5fcf37a2ef6c3e659e5b8a79fdf5e5
4021 LINKUSDT Jul 27
9df6c91ef761bd57700d266d2ec03c99c4c96246b0a0abbea923bb812759f49f
4022 POLUSDT Jul 27
ed6b1543159f1a2c098374d292695f3cdd6173640553d9f3d9f8ead4b508a4c5
4023 ARBUSDT Jul 27
50ec4184fab9d00a9ef0f73f3e60945db11ae4aa9c8f276d2e7b016b1a449071
4024 FILUSDT Jul 27
327a2528cd4f9bef0e1e2daf0ba3922852261880f2291ac6b9d3b0ab85a49dfc
4025 ADAUSDT Jul 27
c0305b5002a0edb06c0ec8f7d83035aa8cada58c4d98888fca6f4ade30379e77
4026 NEARUSDT Jul 27
ed54f3696b0da155a83b6d96e03de4efceab81802f48259b15d564398074a680
4027 LTCUSDT Jul 27
49806e0ca2972ce2f2079be780e25e2ef8c33000d93ffa4fe6d6ad5fc5081129
4028 FETUSDT Jul 27
d1cfd6c25f32d8d81028446f15b56d0d90074ad9fec832ebb1477acf122c2514
4029 ADAUSDT Jul 27
2656ef6436838b6f754ea4113b63268735c26bef1065c52296881f2fc3c0cdb4
4030 SUIUSDT Jul 27
7e3a0ca3ddb76cad59f5bade270091c5567e32cb0cc601a8ec5d2764d6fe3533
4031 ADAUSDT Jul 27
effb30d371920a1065f6a094864f35ff7e53ee7b6679fefaeae69a6b79942121
4032 ARBUSDT Jul 27
5cb7bea9e0d1d3896706d4cd3d39fe75a079e6afb00cc3406ed9b1596465deab
4033 OPUSDT Jul 26
bf0402f7ef3b8292b204dc41e47ed4aa16c67f51872afc00211b0218d23e53df
4034 XRPUSDT Jul 26
b07cf86000f90ca0138091cb96cbeb7578e5807aacb174c170c7f2daf2875d72
4035 BTCUSDT Jul 26
40da3734ce0a6868f28f18bbf819caeee2eeec3bbfc80e4f1b42526aada6500e
4036 LINKUSDT Jul 26
53cb88e333b6e28e90784790295a4c33978bc25360cf0b742659dba6d820c09a
4037 OPUSDT Jul 26
56d1ac340042626eff50765cc8919a0246035399e78199b96ad1dfcbf2c1ba1f
4038 AAVEUSDT Jul 26
d8047b743533351da3ee19560ba6ccb6238dc40ee77646ce4c8f965d111d47a4
4039 ETHUSDT Jul 26
759045e397c2e153644160305e42ad3d874076ccf652a5805e35619c954db46f
4040 ADAUSDT Jul 26
16813097aca83b4dc83531c1bd67dead26d89487dc92f062bf37f3ac8a563744
4041 AAVEUSDT Jul 26
f4bdd1f2b82284c0290a1b47f8ea759a3c8c81e4be1dd0f36e842420b2a47a23
4042 XRPUSDT Jul 26
b198b33706ad432a5a31e514da8c94d2983cda64af5ba3cf93f7942ce3f8b4de
4043 PEPEUSDT Jul 26
d1d5e1455a147e4f1313c47a43b311bcb386c8d32bcfc4eeec2751fb8cd03c3f
4044 XRPUSDT Jul 26
8bf8a2f937dab555236e5a944f114741f1cfa49c96fc75b6603dc95e36cef4b0
4045 PEPEUSDT Jul 26
f38aaf7be0f51279861039d117a6730ecdb55a76834e1ae127e7db93ee2fe1a7
4046 POLUSDT Jul 26
f1b06ec5702b71a7e5bcdc5817e38d7c7b1ec93c70164d2a00bca9c25221d4fe
4047 FILUSDT Jul 25
6944f66ba6fec7ee55fdd4300b91af5012358ac5361648446e197f2fc0e6693b
4048 BNBUSDT Jul 25
96ec5a7fc6748fb81d84ff6745f8aaf1a727cc42e515aeb5a7e70e12b737402f
4049 PEPEUSDT Jul 25
16b973b119a4684d1ad746f87d53bd6f506e743a4463dd348c77047fad28f8c6
4050 INJUSDT Jul 25
961b27086d59512da9d878c203deeb610869c2e539896292c27d3f0354dd7280
4051 XRPUSDT Jul 25
29173f6fe24a63dceea6b0454bc2415fe235717ace1a446a920e8626e3d339ae
4052 INJUSDT Jul 25
d77cd7bce64b42de131a618c792bed7a79c1fa78d57591a7802f28ddc1363c38
4053 FETUSDT Jul 24
5ca1aae9d1d3e1eb025724d85265937ef110d8b2933794aa5e0129888ee08d9b
4054 APTUSDT Jul 24
c7ad8e712151e7264c51d4815c340bfb5e6f821accff53390689146d0174abf5
4055 NEARUSDT Jul 24
773bb7b65208eb2749d72522a497646ca1eee8b9bcc9a171c280363a3d396a4a
4056 FETUSDT Jul 24
77c49e1c084ebd772af9c7bea2aa66a32d96eb7cba837d22f8207f07ef13d64d
4057 LTCUSDT Jul 24
289e1f75fd1ab475ce64b100f81c01f7d28e0ff7df16214e306de904ebe67fe1
4058 AAVEUSDT Jul 24
229e66ca1499ab55ced021b4c0e57374c1b1730593824b73b0bf7961efc91cce
4059 APTUSDT Jul 24
9154222cfb811f3aaf46208eae9aae7ae736a3d176943457dd578e43451f97bd
4060 UNIUSDT Jul 24
1c824bb8c4343e82333f795df50b4a4eaa7810c1048d61c6b817bc4b9bb8b2a5
4061 NEARUSDT Jul 24
2bab8c01717c63b638d0275f88d2bf9badc9e3dc11d149a4f4bedb27b4e9da2f
4062 TRXUSDT Jul 23
a5b4a8ecba5027fa4ef6582eb5b86457c408aaf6940ee73248df1681c43b30d4
4063 LTCUSDT Jul 23
375154a4412d8f586079bc26e8a86f2d9e83339b122a3cc8d8745c2cb4e70ee5
4064 AVAXUSDT Jul 23
bed820767a04c49f8e54197b6135165901af6413c2c7d1f2f063b685ab999bfe
4065 DOGEUSDT Jul 23
19c0d5b6bbdc5afbb633f1202c88d1f4deb26817f87f2709a7f0305f55dcd98e
4066 BNBUSDT Jul 23
d8823368d62bdf9cf6737948feac4dfaa993151fd4e1e2428325a605e49a898e
4067 OPUSDT Jul 23
2fd6345cabc792de961664e289be310405335da8579d10256e49d941b83df441
4068 LINKUSDT Jul 23
5b0de038fbba372dc43572a0dd0c5dff2babf9354b0888a458745c0d94ac7143
4069 BTCUSDT Jul 23
8799c05b9bbf87229ecb573a8fd61cc4dd6981a99b7aeb5ced14b85b60677427
4070 AVAXUSDT Jul 23
4110b1ebec50230559a1d55fa032a3e4a58f9b1c98524507cfd4f8a21b0fc6ec
4071 SUIUSDT Jul 23
4058087eb008444df75ad47c623099064769a79ea44f91f9542dc911ba706675
4072 DOGEUSDT Jul 23
222b8661269ce97867659a5171af211956cc67b211a8123965cfa2a725d50a88
4073 SOLUSDT Jul 23
a6b7377a1de32574cc3691635898b7acf0347b0c77628e1f27499b2fe90a2447
4074 FETUSDT Jul 23
772d72c57de43ef6dccc9eec46e19190b5b0c8fee3d7eab92bd8e51a28977afe
4075 PEPEUSDT Jul 22
553f09f965fec8fcd9121b5d96cbfef216a1a3780a8f12180858edc84046fd34
4076 LTCUSDT Jul 22
671a8702a7e39c5a98f0c01166c2f62df769f5838f7e94d7a769a21a5cfd1442
4077 PEPEUSDT Jul 22
e26a7295ca9a5058fee1df67cdefe25c35a8f7b684fb8e7c5300d5eafa2d6bcc
4078 SOLUSDT Jul 22
894e5d80fd45607e8d25d4a0bcccee8ae55176ad470e2162d5dc3c38d14d30db
4079 SUIUSDT Jul 22
93bd6b501e46d7b8085e92e069bb7b7c2d156b69d71a3958ab75719cae1d0f14
4080 ARBUSDT Jul 22
b4ad43016841e39353cef463060248e3e548a6ed451ba9ca4cac068892b20afc
4081 SUIUSDT Jul 22
b60186e0ec1a48257782b9178d4cb9da177fc29673eb749e303d8530a6fff784
4082 SOLUSDT Jul 22
18378c0e2cc1b7689290d9483143455b33f44a360baea3520ebd098365c029ae
4083 ARBUSDT Jul 22
b9908d83823ba2cb0de074ce2e9ce8ec0c36b7eef26656a8e27757d0cf18c025
4084 AVAXUSDT Jul 22
c1f0b6d5bd0c60d2ed412692007fc57a01e48b9b92fab47ce24361f403837931
4085 ARBUSDT Jul 22
0d84e3909931a71c6c06b42aeea5b330547f479adf9a50e535d01df60e30fe98
4086 FETUSDT Jul 22
353e80a7956f3056ba2ad40d1d21e3a1365f30ff848b83e0c7fe8ab9c4abfb66
4087 ARBUSDT Jul 22
67ca1ebc6d895f89faf683d16a37f59c17c1812db2aaed99a563154d0e2f8a88
4088 LTCUSDT Jul 21
341a094d306f6e4769ff75ebe2baf6f99b6aa0f98db55afa5edb78bbae66b409
4089 ATOMUSDT Jul 21
d388e3d15e2099181e383bbfaa7aaa3a8647a9bacd3585bf3f2747d1671bf52a
4090 XRPUSDT Jul 21
ba1e43add4505c1d05e542621fa12f8aab51bc84898fb261ae9b7d9fb037fe81
4091 DOTUSDT Jul 21
2f09c9aff29b43d294797a1633551344966fa8ab0b5f17c3312906125e462c33
4092 ARBUSDT Jul 21
ba9b4660be164c1bb45be3ebaec83bd02e065c8c326f047c1ec24973f2942b86
4093 POLUSDT Jul 21
364ce96165d0a3a29521f4f1489ba84f7bcfa0b07082b7a04ea5120d7358aa40
4094 XLMUSDT Jul 21
28c7fee23a522a92ce27d08852d9075662d65d35d9b0209f4c7b17d944b54544
4095 FILUSDT Jul 21
5074f8e575813c01a5c45a0c613b2a10490bff209b42ec756c2b9d533e30677a
4096 AAVEUSDT Jul 21
d2c4baa552de798810ce6599994325f7340ac9b570276f6c70780df4b521e026
4097 ADAUSDT Jul 20
c855d6db352165e83e7a09dff7b36135b6e51db5aa4bbc822109e7f917e384a1
4098 UNIUSDT Jul 20
cffdb541db2f8c7bca7192b8efc22f05ba0d60ee992a0fe5e350af2fb4f45516
4099 ARBUSDT Jul 20
873cd628cb0709d46c00f053c383612d1bc5f292f68913f71e8d10af9163fa5f

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