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

3500 ARBUSDT Sep 25
28b60587c11c2422140fcb70bf406bc6969b07de68e0f51fd76a81cfbf8eaa95
3501 BTCUSDT Sep 24
7d069089b1391dd16da3bd3142069a17b015974c7022b4b74b91ebd668bd6416
3502 BNBUSDT Sep 24
90f8242901955ecf7e514dde51406145a1e3e1ac20e230bf565b1921cefb3b3f
3503 DOGEUSDT Sep 24
f160064cc2ba739ed87f7abdc16ca90fe13910686c6335a188d9cdfc76938a0e
3504 XRPUSDT Sep 24
4c935c9a0fd0ce42128e1c52cb4811dd54848cd7011a2646aff81e3601d54369
3505 POLUSDT Sep 24
28c89edc12906a3d8a6b143da2e7a56e3c8bc6225790c75dc5ec14a61e381af1
3506 XLMUSDT Sep 24
4931e3956534e96150a69486c5fca2362f43d77656e1e5f3373411ccbffe81c8
3507 INJUSDT Sep 24
f976f3ad1c1578688d5d275962db4490d93a765e339d186d5537ce0cdc0c9341
3508 FILUSDT Sep 24
e27fdf4a793be687668f1aae0a93504329def3df70f1439585f6dc96f071dc2e
3509 TRXUSDT Sep 24
5cb34cf0dc16c5887a668fe38c96496b25d4572cfc215d85b23c831e56739bee
3510 UNIUSDT Sep 24
4bb75d8987b5821abb01ed858c59468b5dc9883f33199794af8f2c13ad8697d0
3511 NEARUSDT Sep 24
87fec538adb58d8567d7db45118af8594927185309fd40d7aa126cafe8a0742e
3512 UNIUSDT Sep 23
dc006f17ef0a46b07063ad832d44c321b920dd1b404b94939e6da7ccdabc8c10
3513 LTCUSDT Sep 23
8cb4cc035e7f6a8a1dac0deed66dba20bfdf7fe159f72c98cf5dfdef0faa0910
3514 INJUSDT Sep 23
270c57ba30c4c18b655d6744ef616e48b06d1ff297689621aed25ff098e1d376
3515 NEARUSDT Sep 23
40076579c036e60d7e9fe8076b4f5cd818c9c1b89cad397a71057c131bed8c3b
3516 TRXUSDT Sep 23
740783ab3c63fce47871c49f26bb830b2d4aa8cd855b5c2acb64067f1e1e9da2
3517 TRXUSDT Sep 23
5153f6489e6048c46291fb31493afa8436eb3c3cd088b8310f7938dcb4241e94
3518 POLUSDT Sep 22
a6b666740a9bf26474bf111b8c709fa6fd2cb793a88c0d922344fc458b38ef54
3519 POLUSDT Sep 22
d5189b4f34bd0e14dccf476335bd976b23c5deac0d1aab048bef1ef47447cd04
3520 ATOMUSDT Sep 22
f0130582527df50ca20ee9f474a7896afb99332055aa71b420ebb0086d84230d
3521 INJUSDT Sep 22
24e58695e7fdbc4584f986d40fe7a536384921d775f13298f8acd4ff2cea54af
3522 AAVEUSDT Sep 20
e0d23318372b2102dc85d36a5a8c2618945ffac0be871f687bb25d8b4d150630
3523 FETUSDT Sep 20
f29b4e32f466d6e596f284746939aa78126fc0983f7aab947783d2d6d93b53ce
3524 FILUSDT Sep 20
008920a41f1c0d44d674333886cdebe50608f402ce052eb57e66ea33c6e561fa
3525 AVAXUSDT Sep 20
798b01a1e6d784d2d347ea1698f452e2811e7255211e21e3be8061db4a51f807
3526 OPUSDT Sep 20
1ae51e2d01dfeb2b3ea7b11b4f008a3d882d89531bde045969e44e452e32ff26
3527 XRPUSDT Sep 20
38eac6c6d0a41850a8a88990ba84054507da1588cef837f156747d34e53ed517
3528 XLMUSDT Sep 20
23b9c50ebf59fd960194f07452a94bf992e45cef40df5fad62a9106a03eb58b2
3529 FETUSDT Sep 19
ba9fe6a52e9fc620df258fa66a0b8b6c50a5af20a868f59663a4c2fa7da2a44c
3530 PEPEUSDT Sep 19
832e8bd2636dabf42b7e86df3a81e088e6438b5c34d6aca8a20db5546a728b61
3531 OPUSDT Sep 19
67a4a2eabb1c654c66ab31542e6f509c3a96c09344a80038d402e88289cc96dc
3532 SUIUSDT Sep 19
dbc747492312762f42ac158abb9ce130b5a974138e1d2b44d14b14afc01f081d
3533 SUIUSDT Sep 18
ac3ed1b135ccb4df98b33a58c47a4ef122843b464eba24461fa0e13bd5b8f353
3534 XRPUSDT Sep 18
603fe18eececd7ab012b2572b02f51b36e7b5f4fc2c299d46a00fca75df06167
3535 APTUSDT Sep 18
6d871887b6bc9270d075d1f3f9725278624b0cc7ece33f3127b8bced29948eca
3536 FILUSDT Sep 18
0cc613847de1c685256beeda8341dfc7a86ebcc762e86a1b4fe00e6226b6759f
3537 UNIUSDT Sep 18
05367f0c7f4d313844b55c4318082078de4daa55c720b8917b93169ec4db77f2
3538 INJUSDT Sep 17
ab1c1655d6775c2922034ef901c7f224b036410e4d2bfee4000696facf3af8b8
3539 XLMUSDT Sep 17
f36b2c5984efe93140f834499a8c401bc065acce408dcef41985bb69a5872d15
3540 NEARUSDT Sep 17
111b84d8af769139b2e6ecf2c031a0a7a0d31f038888fb95e7f782d99a855f97
3541 APTUSDT Sep 17
cbc0ae134556d9490d37ca0bcc26f06052df7b5f3fb7f44a4ab2a02ada28c027
3542 POLUSDT Sep 17
27de1311fdc544f93b826e6940d85e65b0f99660bec7e51d8cd196bfe6207b0e
3543 DASHUSDT Sep 17
2694dd724aeeb31a894ee806ad5f10e7c03f81b92f096eb2a22916c89b7ba701
3544 LINKUSDT Sep 17
fc406ee04a1ef1c7d8ad4b76369eeba325de8b6607b5537ef26aebb1fc6cd043
3545 XLMUSDT Sep 17
61e8bf6eb820ce410c374802b62fa23a866ed3150b014e0359f1f35c1f742188
3546 FETUSDT Sep 17
6af383609a4cb207b0c5b65d26db79037d204c9e1b8949896d33bffc52b59321
3547 BNBUSDT Sep 16
514f3bdc146bd7f96cbebaffb4fdcd0b69c1b1c37e5a0aed51648ba26394e414
3548 SUIUSDT Sep 16
e79ab34f1df1fb6bb0711f48083cc5c6a7fcd71c6792e817af26d3c7d86f292c
3549 UNIUSDT Sep 16
5fe0cf7f2f29e982d05e4bb0c59d8c567d47497430c43f6437cdefbd3f6abfcd
3550 SOLUSDT Sep 15
2668baff8680e4bf574e2c928e7cd99daa5db611925b0ad916a94e97749aaf74
3551 SUIUSDT Sep 14
d06f99c06146353d5ac56a70cd20ba7507ba99fadec7fbfd1482f289ae9d717c
3552 FETUSDT Sep 14
812341da03ba9838267d77a5a40cd1a1aca21ffdb0710e9dff279938e172f46c
3553 AVAXUSDT Sep 14
1589bc8f3aacdee4200f886c653b425b1b7dfe22fdf8f5366aff8369ec814491
3554 OPUSDT Sep 14
bdc839353a177e5f386b8a072f2c30acc274b0427a31182c9e8ac3466b38db03
3555 FETUSDT Sep 14
905a85c7f71d6e681a593c8050ed9ac2347157c155fd5aeb3aaaaa9bbe85bdf1
3556 AAVEUSDT Sep 14
09ad6d2de706985ca6bfee58943a1d0fe0632b1c323b0f2e2d4350c4694a7c37
3557 PEPEUSDT Sep 14
34327fa48d2a17b00a0df1100e3665d52e946099d51c885eede62a01a41f700d
3558 UNIUSDT Sep 14
5364d362d5d369d61a9531c8d3b151aa3a787b1d71713ad82ed96fb2d7e88db5
3559 INJUSDT Sep 14
642e54d93330e24805573efc589c1ace90900ab30d08c3437ea6625121fdf7e4
3560 FILUSDT Sep 14
c3baca8f5cf702cd5a7e06f3dfa0fb00b0dda17aa1bcbce03d364c3140eda4fd
3561 FETUSDT Sep 13
0abaa795bb4144acee92a09f9ae3d3ce6081f03bfdc6957fd03ca4a6dc80c298
3562 OPUSDT Sep 13
af5faefff964b45f1e2f851ff01f4d86cf8a0467fffca249c1c1ce9a444fb149
3563 FILUSDT Sep 13
bcd00e71f0d6c3a49d23dcf65886213af18d7fe668a07e1688d8496419df0f48
3564 POLUSDT Sep 13
a4d3af1a94491a74837973eab33a609132c7bc75ab6319d50174dfe47ee509d6
3565 INJUSDT Sep 13
bcf095542db6f3daa3274134b7c93b126f318e6c6147106e7706c0fc27fc31de
3566 FILUSDT Sep 13
6f039449d32eded850cbbef12f4db86ecb63b084433096b49822c6aeab9e9b38
3567 FILUSDT Sep 13
c5bee6d2b93cdce0e9bed3f9ffca06d9f9f2c5b4956bedcb7d0cbb731ec9b6fc
3568 FILUSDT Sep 13
94ce5540c05939c29b1dc11fcef0fc828bd871ef4f8218c24a7ca2b10f3acd2d
3569 AAVEUSDT Sep 13
a70798d4d71c536f62cedaeb21b0d08dd2fffa66d8c2bf37c31f2d2cdfd6f799
3570 AAVEUSDT Sep 12
8193914158fe2420f1260ababeaf36651844d743a7f0935dadc5d9eb1b912708
3571 UNIUSDT Sep 12
1446da829ce079addbb4862d2a116ce1486fd2fa35da103b20c633019505f511
3572 INJUSDT Sep 12
3093df32c608b543c6ef8ee5ce3ec3f4dde2f357e4251241a760882cca2fd727
3573 PEPEUSDT Sep 12
5c299c66744402f3c0ca26abb5c46bc546285fcbe97e237e8292c7f7ee0cbce8
3574 XLMUSDT Sep 12
96580d0b942159249890accf9fa6d955b94b0bf16d5b4c5a804fad38d2b8a138
3575 FETUSDT Sep 12
a653a665fb27fb1b1cd7f42a09d7a3163cdfeda2c98c8cd639f7ac57778c2c6c
3576 SOLUSDT Sep 12
bfbe4b509db8b7a7c87a7891606f977e3cb1d562d62e300e0aeb51a452eeb226
3577 INJUSDT Sep 12
c56a241431337e6817559d433b3612f7208970dfa966a35efce5668717631145
3578 BNBUSDT Sep 12
388ef716a0bab6b1bf567527c7dd69f729ef9f6a6243d724b7c23719994cb855
3579 LTCUSDT Sep 12
e1cf37f5a179a1587ab0b78a5dd83d378eb2bc82c4d89e66754b4403e705978e
3580 TRXUSDT Sep 11
639019539a132a13c68d488688d1c7edf938f6a2db1f0af77a7836c48a1c85e4
3581 LTCUSDT Sep 11
cbf1c9571bf254588c7bd67174658d847e0efb447074b1b0377ee03ca2a1ab3b
3582 XRPUSDT Sep 11
f4105bf499e5e2bf00b24b2766e65a2a5f4b39f0e93e0e4352de706f8be9458d
3583 XLMUSDT Sep 11
353175c8d7372b9319331df7f50bacaa51623a1a13ff6e9f60b63d7a5767dab8
3584 FETUSDT Sep 11
0ec762e095df717dba136fcb1d04bed2cce150a36af1cf3a65b5911018fc8815
3585 ETHUSDT Sep 11
9cb2ce3e84653e2b3815d1aef3be6812e62242708a2b3e03bae23021db6346f2
3586 NEARUSDT Sep 11
a2938314bafd18e15bd9b8129781cb4595c914d111704011b3ff66a8ddecc382
3587 INJUSDT Sep 11
cb55e6d0a057798b7cdb945d0b1e3ac407e238b75c21309fe7383d6ce915b903
3588 INJUSDT Sep 10
50f29a464eb74d420d8d9e7f36006b0209b97dd987f9f3f50c54bae6cc2596c8
3589 ATOMUSDT Sep 10
41f3c505408fa27a2aafb7566b6bbeaa0982ee1ce4db10546020ca591e01d140
3590 POLUSDT Sep 10
2b7439f695a9056255993c5b7629aaf805631dba02968d4ce8c7befd3ea35b55
3591 INJUSDT Sep 10
ecb87aaf3c5c0c8a2b916199cc92551f6b906c5dd9fae5b82ae57d67a79118c8
3592 INJUSDT Sep 9
f1452ab2eb7cc393e18d1452c543257eba9fdfcdc38038c4c037a0a87678d4e4
3593 AVAXUSDT Sep 9
4227f755f437d497da33ca2df0fd5147dc3e4dee0bbd7cbbbf8f970962f3ca4c
3594 UNIUSDT Sep 9
831c1093e69b9e4ec33e59811a844bb2fa12994b4a45a53248e96183acf2566b
3595 FILUSDT Sep 9
b329ad662f29ace08019729dceee9f8a6d9cb898608f302453df061ab2391d8f
3596 ETHUSDT Sep 8
01cb7191d2db9003c53895322637a9eb22cb43bdc4405590b6b650d281b923cb
3597 ARBUSDT Sep 8
4cfd0580003162710c79f500c33611cce880a558632e490ae79cba7ceb9ceb24
3598 ADAUSDT Sep 8
abe134a59a87c8868d481c7230632560d29a3fb829ca520490ad2c498103e1c7
3599 ADAUSDT Sep 8
e77a874eee0f6c72f47cb42bb5d567d328bde493a7535ec3f89885ccd4b3b4e3

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