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

5200 LITUSDT Sep 1
eb6a2d919520384ef964167ecc5647a634c088c30888001118930ec9be66c122
5201 DGAIUSDT Sep 1
7def837afe8f974ba07bb9951ce35083ef1aa99a4b8aeb9b5ae859bcdfa7d45b
5202 ENAUSDT Sep 1
cfd22f54452dd058d1c2ec69b78f64e11788a33ad8a322c831dc33118db5c04e
5203 LITUSDT Sep 1
3a0241aed91b95bfa62a52b96f7cd848768c2443b156546d00d1b63a9d030811
5204 PONSUSDT Sep 1
109e36680dab227cabd721d38edd90331c7e0cf016f1becc0d5705421531886a
5205 PUMPUSDT Sep 1
68f018d3fdfcb6387c34add8f80c4ecbbeaa068fb9f2b355ba64bc16071a1fa9
5206 ZECUSDT Sep 1
92fe59ce0957f0079fed857b671cee897b6a8e8b5a1f26370f70bc454138af85
5207 XMRUSDT Sep 1
47312f2cd6626460ca8dfac639212c698c0e88ad1b92a180253796be5bd45471
5208 TRUMPUSDT Sep 1
049b7d2e1f3d75e091723d0fccf6b25a56bef567c44e4242edefb6335820b4c9
5209 DOGEUSDT Sep 1
2af11c92db57f6282e54c136ae2ee4b27456883a37520703cc2c6d7f3d9199af
5210 BNBUSDT Sep 1
4c93bfc924938034702e1664a692ec243629d20ff63b2d6b2414e0cc2c2b2fff
5211 XRPUSDT Sep 1
2f8a665db63505fc0186e54c4d159801a569f296d630544c085356bdf8a93660
5212 DGAIUSDT Sep 1
5a4b993d38f6b51cd83813a37c6450d85c9f67d06496a12425ab0ce5cf83dbd9
5213 ETHUSDT Sep 1
c53ad416b08f15faabc2c6992277a451b30d248193e146d776a4a7075a75b648
5214 BTCUSDT Sep 1
df39f1a7bcc16cac06f15f53131175d789d39b26e3ec287dd699c5b4f5f16fb8
5215 ETHUSDT Aug 31
c856de520db33957412f16eea0aecb2100bfa3e1fb75208b009cf3d692c7af5b
5216 ZECUSDT Aug 31
cf4672d7af93eaefb7a103cdbaa6fdc8340dc853156e1b57467e11d50dfb164c
5217 PONSUSDT Aug 31
155248dc7d4ef5df4ebb4d57b7c4d5bc3208e257c12d87ae15902bb46f0c3aa4
5218 BNBUSDT Aug 31
bb1385c58066a3f1da1244117953af53d3ae85bb6ca693f0ff0f40dcb395ff87
5219 ZECUSDT Aug 31
2d5491a3cf4e7ca85f587930779807e2d1fb5f046f64146787f3f6e3947d87e1
5220 XMRUSDT Aug 31
92610752894885413d7ad368851ec1b3ef05be0d8d312c9b0ad9c4800db346db
5221 BNBUSDT Aug 31
e67c2aeddda8b5f8531971f287f71c88e5888097ebb4c4652aed53fcc3f45d09
5222 LITUSDT Aug 31
650db9f6fc95ef83320094d11a91595b1596f336897d5fe052dea85459c3c6e9
5223 ADAUSDT Aug 30
30b8db19f31b09511bac55a9c36ecee97a3e138267280d2f923273da4b1e94af
5224 ZECUSDT Aug 30
5954b8fd5eabe1b77cb99c2a06ec41d5158b4ac2aea91f91f51253d0497dea2f
5225 LITUSDT Aug 30
7d0d69bcfbf7c610d5d308e01ad7bf6faf7b53a619c70a1f25ce278b02967de9
5226 DOGEUSDT Aug 30
dacdba5bff938b32d63bafd3d3d24ea83df0a285ae0a41ddcf8fa74c3271c115
5227 TRUMPUSDT Aug 30
f8e57520b0c0f6aff8107dae62647f5690865fbc390bddee3ea3df48c24e4dd4
5228 BNBUSDT Aug 30
cb3c6e4f0a9e296a4ef1073a4b499b4fcaac47fca9354e801705422af250389f
5229 ENAUSDT Aug 30
3c35614dc6e6ab85e08ab337b22ddf6326e8198957fe762659b983b3d7cc3402
5230 XRPUSDT Aug 30
6618ec58f7d0c3e7276e8a27c8a4a3028d15375765cb27a9286df1ba455b2bf0
5231 DGAIUSDT Aug 30
e709531921236626ab0536932917f0dbf3e064a66a83598294d4d0682d16d0c9
5232 ETHUSDT Aug 30
679e3ff78e59e7bec486f8229272c76afe1ce0a48af141e15994f0e39b2e611f
5233 BTCUSDT Aug 30
14a78cb509ff8bd4a33cb16b72f6e03803717b0f265c505ddcb286e7f2387d7e
5234 ZECUSDT Aug 30
4109681cc3a1957c160fe61c63e8defbc9644d6c3cd3f33e6e6e758d4d9af6b2
5235 XMRUSDT Aug 30
5f8731683b1b7df792ba0094836d588f312be8b7b659f070b94c23d9d0a83883
5236 PUMPUSDT Aug 30
39b4bab07bccddba37b2063a4b4c7b2d602f0e276254c3f361b69f7e0e52cfb8
5237 DGAIUSDT Aug 30
c0bea62c6ffa28f5ce71f042e44d3417c9eb4cb3eb37ea36bb57724f4f6e276c
5238 BTCUSDT Aug 30
2a17857cf0803d2503e6de49a25c5c2fe90b31d9e6feea61752b44eb7044f63d
5239 DOSUSDT Aug 30
3d2b6e3fa8d6be645e223301a0418dd351d1c270048c6c4ed11228f485166b44
5240 PONSUSDT Aug 30
7384ed752f9ba6c8a7852d93a5777917c3e5fd22453329d3b6afb7916fc32212
5241 DGAIUSDT Aug 30
21d29e9674ac7c695efd8c76011ef2b571e84b411eb81c307c6fce3b58f0344a
5242 SOLYUSDT Aug 30
0068fe5a53aa0862848d4eed4e256da4793966127c3d8a595d1737e0367c0e82
5243 AIXPLAYUSDT Aug 30
b601ccf61cc96963fda321178aaf965a321c1e1ed1943a0bd484299979aeee35
5244 ENAUSDT Aug 30
5c64937c9f9fcfc7b34ff4f978a76ee09ad4126229917b11632c87e99cb288ed
5245 SOLYUSDT Aug 30
998657d1d518c5bceb8ff2dfb1585f336e9a20d01123acb251b7fd03ccdc234c
5246 ZECUSDT Aug 30
85fc6a87510d36a2c767d7a29fb3687761ab7b417a4367acdd096fe2bb458ab1
5247 BNBUSDT Aug 30
dc81771894d13598c1300fcdac2903eeadbd8ef94dc0517f18aa307f85314996
5248 DGAIUSDT Aug 30
219714c213652734d95bfe433e4b09a951f4ef90ba93e7183a77d42ebae62633
5249 SOLUSDT Aug 30
b286500bb3182fc2c209d807261de944945af8192a6a87e78266e4e4a097e3a6
5250 ETHUSDT Aug 30
5318fc6ad3f250d8c14fe8677759446a49adf84e6d8b86d0e763b246752bdf54
5251 BTCUSDT Aug 30
62f76c9f18c2ad7fecb4d2b5910f8e662da77eda1d65803f9f2da79f03fded92
5252 ZECUSDT Aug 29
c4b84e8dea0c03c37d45291486208f19ac8dda5ebcb4d4c671cb34a3d190d984
5253 DOGEUSDT Aug 29
69d51c35794a86078bc40dc292191f19dd7a5830e57f28cd9d09c2c198f30d35
5254 BNBUSDT Aug 29
2a777240bf156c6cee71edfc05436369c28ef1e9ecd758d88f173e494d4efce4
5255 XRPUSDT Aug 29
57120e2c34f52f42b99e81fc02b53bceb249b85cbe5f112b56564e2791aa0237
5256 DGAIUSDT Aug 29
fbf72ea26ca29558a5fdbdaf9c4bfbb467becd415e4581827274c29e1fb5ad79
5257 SOLUSDT Aug 29
1e941340cac10e4a91025868857ddac180441e25fe0e8b668cad169899d01820
5258 ETHUSDT Aug 29
211ad1c9288fe40a5bc7cd3e50f37c140a3852e5ec51c3caf29b11e9b1e3bf6a
5259 BTCUSDT Aug 29
858adaf2f2a48eb323a44f5f3d3c2e0b0c9c460471dc9e0bbf6b1e59b74cbff4
5260 ZECUSDT Aug 29
321ff4da4c38030da300af8c1c0957f9d25cac8d7f840178238fc79fc9359a65
5261 LITUSDT Aug 29
b7d9a57a4973928900c4b7b24e4c623c4268b4dfb83683520b2d26dbc16d4bb0
5262 DOGEUSDT Aug 29
ba7008f70428f6ad9e339099a0a93f2b7a665f2670eeca75a6646b24b27f2b2d
5263 SOLUSDT Aug 29
bd6c45f9d34085405d863e977a41aa93cb7590744ce15536bdca59b2adba6dbc
5264 LITUSDT Aug 29
d601470cc36ffccafb5967e233853ab5a8ddecb5bf94fcac04f5f01fc7d8c943
5265 DOGEUSDT Aug 29
c20089f7f6c9c7c7ec3e1ebd55634bdf49afec449bcaac4f99f8904fe7ea5f87
5266 ADAUSDT Aug 29
39e702f36c6470a5eba18822d4363bc10bdf120d55372efcdc6c391597f0ab0b
5267 PUMPUSDT Aug 29
29add92ebbc3bc3ca7f86b7b17d9ea20a816cca784d7f8c48194bf34a910baef
5268 XRPUSDT Aug 29
89ce55c7bdb181ac61f4bfac34e439657925e5d22aa5c0dc89a513c42bb02d19
5269 SOLUSDT Aug 29
c5764b6ae2dd3902d7558a29e71d6e1985692d226607089a6856568b0a994123
5270 ETHUSDT Aug 29
a3cdbef6fd7c691629784c5eeaacd04151756d106de6b3657b2db28668d4e11c
5271 BTCUSDT Aug 29
f36ef5abe918fe43ac377db4b4885e7f8fb71416202867c06ae21abfe151507e
5272 DGAIUSDT Aug 29
03b58af66271e9485b901e60723ad2da06156cebc3206a7cd4011e48b190ae4e
5273 XRPUSDT Aug 29
52fa660c8dfea65c13ee3008b9602a0360e8ec891ec0a033fc23dc788c79ea1e
5274 ETHUSDT Aug 29
5c4268967b62292bd48b06294bad6945425c884a4ca2e87f294113c05d364978
5275 LTCUSDT Aug 29
bcaf0c178cf4acca125b7febb602c889e6c61bc3cfb25cff5bbdc3212b227f33
5276 LITUSDT Aug 28
86d173690b89be5c6202f0baf27ba9de1468953c958a849a3ffcc690ad0f5ade
5277 DOGEUSDT Aug 28
687d6aaf21d23e6bbea7fe51a0f5ac0508c209efaede566bedebd9bb4132ba22
5278 ENAUSDT Aug 28
c50e21e8fd120ee90bf8745f1f798e14fa40d9117170ad647fc14d472222bedf
5279 SOLUSDT Aug 28
a407b92a67b6fcee6737871322dd64774e0aa240aadfd4f5daa053544140b0df
5280 BTCUSDT Aug 28
9f5b101a14ba63ac44d0e29a5cceb20c699ecce864af169a40f0929b7ec053f7
5281 TAOUSDT Aug 27
86c114c2c4b48c7b3dc9d93b810fdd91695648a91c6c3eaffc9748d116f1a74b
5282 DGAIUSDT Aug 27
56d5a0de210bc5d064f7bed11fad61c85bdb3bc440e3ab52ab61fdf918eda341
5283 PUMPUSDT Aug 27
dad6a631a68e55abb2e4d1227ca60bb3e1ea76d2974bb5af1789ee6cc2d3fe9b
5284 ADAUSDT Aug 27
142549214f5ee6276bd0140617527c66279a365d8e9ff5701a3de874323e8686
5285 LTCUSDT Aug 27
6120b949051e191332951c15e459baaeb2b8fc0d89d308d933f25f219075cd89
5286 TRUMPUSDT Aug 27
fac300dcf4903836507a254aff8bb3a9439701643007d521cec1ff5d795e58af
5287 DOGEUSDT Aug 27
c95a6e99cd7663a2cff119357985b1e6c79feabab466f16d9cbda95d6bbd8457
5288 BNBUSDT Aug 27
871587efb486e38b33dca9567ff5313aa470e07dfa900dcb794fdf2b66569d00
5289 ENAUSDT Aug 27
012d0c180ba1d303b77108010510742dd5e6948371bb7d8a66ec7c9f53a58403
5290 PUMPUSDT Aug 27
f20f8cb086e853ab015333ea2940953d770cdabb7186496c9061edfdb701be38
5291 DGAIUSDT Aug 27
3989fab68d1ae72146bb36cf1b05478e7fe0b412d3740097f705c3fb0d21b5da
5292 XRPUSDT Aug 27
a09763d700dac4889efae2956ad94e1a28933ac1312ce7c82ac7872b1fc1f562
5293 SOLUSDT Aug 27
f11a5843ce8ffdd472cdddea1dae6852c16876db2a02bedc54bc133034c74dbc
5294 ETHUSDT Aug 27
5f0ecaf25d3a19ac2d1b4d3b2478f46e1c278d3463b280d50cbf8a0fc32403c6
5295 BTCUSDT Aug 27
96e7d171914fbaba1b72530fd71a5ccf83be3f73a0526bd015776efecd48523a
5296 LTCUSDT Aug 26
12acf79869b46e56c6766a3b9629296c87f939aa88a697294745c6431f1334f8
5297 XRPUSDT Aug 26
08487395f34a7c9a9d274088b9fbe78b5923077b867b573f9d06ff01365820fa
5298 DGAIUSDT Aug 26
2b989537f5cc2e2aeb81e375815425ac690d606e4bf1bb167b2ef540641a0583
5299 BTCUSDT Aug 26
c5b12d829ffb9861ff893066550cbbbdafe86258dbbd39c3e898fcdf6f9d7d46

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