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

5600 XRPUSDT Aug 23
9010a32182700409df8ca072af6c98336d42213a3c33badff8e7c59b7415c14d
5601 ETHUSDT Aug 23
ba57b08bd07fb4b65d9bc3bffc577c671a4de947caaad45ab9c8d39ca4dc8755
5602 BTCUSDT Aug 23
43ada2366c2c0a8b05581c915c2671374afca220c87597f9eed089721f9bd552
5603 DOGEUSDT Aug 23
dfd64c092754b321521b0c1420aa05ba60fbfaa37856c6a2cc32af0dca3ee682
5604 TRUMPUSDT Aug 23
0f99575b1fb9d01f8dacfb70f33989e3ed941a3eca0f6c5e473e3eaf83b66b04
5605 PUMPUSDT Aug 23
b06064faa59a2c65007c87a7b380f6bc0d3f85f3e4e70f61334b91ba207640e9
5606 XRPUSDT Aug 23
365db8ddb45ca5fe0ae6e34fba414025bb65f53c823cd87a7596e2bb3c9860c8
5607 SOLUSDT Aug 23
f5bc0af31096fa47a79e1f4b55aac40c71af10726286ee7f33e95f6a94f03114
5608 ETHUSDT Aug 23
2c2dcaa73b649f5260b7f0008fefeedf4e5abe6e67ca776442d36a80c75419b1
5609 BTCUSDT Aug 23
5ab3c5c8731f2877d4b13cc03dadcb2ceec7c5d0a2c6a9ffc0b4ee1eafb286a7
5610 DOGEUSDT Aug 23
197d5a7faa51f1e5df753ed51451ce786c8236b39204b77d902df759b0ae165a
5611 TRUMPUSDT Aug 23
306d9f0575b0f336886aa952379fe2234dd634ebc16f02c766330ca609170e29
5612 PUMPUSDT Aug 23
1513335f7e58ec776cd6318a3cbc2eeed9be548d3d181b88ae51d7e7e828663b
5613 XRPUSDT Aug 23
fcb6e0271a3c3726be4ccd779c3b2c9e152ee545004bc5eba1374b0643ea97c1
5614 SOLUSDT Aug 23
ee973e72f80a0e19bc1589bcd4519305c10e96a5ac0f7023bb8a91180a6a2bc4
5615 ETHUSDT Aug 23
c09b271fbdd37aab74b594441ed5344060e7f4d1b52e6b8c5ed108743919ab85
5616 BTCUSDT Aug 23
1fe0a0343d362b90d335451f6aa0162b682c16b4c4c8e0b8ec6054ca9643cf9e
5617 DOGEUSDT Aug 23
0ce219c3ccd2bea3bf8e3317a687b3009575e3b32e3227dc6d90449cbb412cdf
5618 PUMPUSDT Aug 23
50afc424a659326e4f13c37bf0f7db51cbbc61b86ccf522436cf82f37ab25843
5619 SOLUSDT Aug 23
0200093841aebd650e1db942bc02210ad3aaf6ee4b07237e1ec3d991c60f0a53
5620 BTCUSDT Aug 23
ca50ae44b6707038410272485d2606e8cce1eef87913978c1a5b6e2336b7daaf
5621 PUMPUSDT Aug 23
51b7307d0369c6103e60b3ca12df20d626107b7b04bf0811725ddc49c8a9ff11
5622 BTCUSDT Aug 23
2ed35758453996aeeb064412a5f115fffec7f7b844d5a224f4c63e27a26ecb1e
5623 PUMPUSDT Aug 23
9b0d582264e0d948063717e1a44f980cd91cb39789f126eaee3c93dff9b9c66e
5624 BTCUSDT Aug 23
126c818278b89d48defa92f73d9d4e3e932525133982479248e06a7f661616d6
5625 BTCUSDT Aug 23
0269b910fb35b05ca7b9d0e442e2171ea2a6548470a17b68f562040663de8dcc
5626 XRPUSDT Aug 23
c528585887a848d91e8a21f4ae8d154427d418bb4c4620f21c3b217eca2a914c
5627 SOLUSDT Aug 23
9b1cc4ab7ff4b357760342097397aeb7b36c818b923855055289dcbe594dda33
5628 BTCUSDT Aug 23
b21169527185fa9c2eb32de723c819083258a7b88b2c75196f29d09aa5b04df6
5629 BNBUSDT Aug 23
72f100c7986941fafcc907ff880d12d5e7242dedc72424cee2e2dc9343290dc2
5630 XRPUSDT Aug 23
c566f4ea6ac4d8f4f73035b971e3f7833e1546416e845880e649ef66a15d9a27
5631 SOLUSDT Aug 23
2dd13d094d67d3e6303f2b23cb36db62ba9011a702b812de2f3f7f26ec916133
5632 ETHUSDT Aug 23
52c8a1604a2cfa888c09e06eecc4b3f1048044f635ba5dddc46e344d92174bde
5633 BTCUSDT Aug 23
09634bfdd33844fb1d33606faef25f06d9ef4d7cb55a858fb6c8ce3994bb6b57
5634 PUMPUSDT Aug 23
8a90892502f2bb0a1f180ce4aec3042a0df32c2457e8e87c1ecf07fdaffda4c5
5635 PUMPUSDT Aug 23
7de5427d49d65f8cff99c3f9394972109046445d97d9e1f0ce3699681d38146b
5636 ETHUSDT Aug 23
eeeebfbcece7c67a7acc97e870a92a5191fc5ae9a3ac7e75de9bd472f3cf824d
5637 BNBUSDT Aug 23
ab8ed81a44d571c340b1c44787eff7974f880645d847d92cbb59dfc5607d19a5
5638 TRUMPUSDT Aug 23
0c87183a9d54bf79bcc86d5499618f9be89b6aa19484b51df85d6650a17c4b04
5639 PUMPUSDT Aug 23
60bca4529295c6982000583cb23001e72f0d1f58eb40b3d1442e37a9b3d68ffc
5640 XRPUSDT Aug 23
f3f87c0d9e691cbfdb6962f68a04caf973b12866f5b07a718fb3acb81d36a578
5641 ETHUSDT Aug 23
02f198b9e3a33244f1e806b3d510e8c9f17f28e03cafd1ba5265aacdd80dcff1
5642 TRUMPUSDT Aug 23
07fbcf80986cac341481b27d4630be91bc6771c6f515e600334d1450bca07344
5643 PUMPUSDT Aug 23
0b2a2909e064f83c2c6a50307729f100ca78b90bb311fda959e08bd66a57ca09
5644 ETHUSDT Aug 23
a285dacfdcc1ff0be42b9c284fd7b2c4661e623815d35decb0385c38c487c18a
5645 TRUMPUSDT Aug 23
5015e3c232a185289d521f152a28e306361760ca02ecc65a1ce0eaca8556cf0d
5646 PUMPUSDT Aug 23
f41c8681070e3beb8bf2362505fc41e1f53f9c950f9542d0a90e14a88f0311a5
5647 ETHUSDT Aug 23
1a97411d0d1f9714893ac981051eafdf321714cbcaf71d4588920e3f0250a809
5648 TRUMPUSDT Aug 23
c32071a7916422cbfd1708aa2767474efbbd2784c590ad1813434548b18e283e
5649 PUMPUSDT Aug 23
6418bfdd8cc27610ff781198a8b756a91e6d08c3c44df42859d04e1e15a07951
5650 TRUMPUSDT Aug 23
0f1c40d393c05843e13594b3f56d5be7512e299b1447b1ff538a0f7c613de675
5651 PUMPUSDT Aug 23
a95ebed159477c49d1292b44a61a994a9090f50ba567b8ee14de18839e8bd314
5652 XRPUSDT Aug 23
173ad758e839c288c9272dc39c0492299b95f61a4c7c4aa4165e6a6ef1b2254e
5653 TRUMPUSDT Aug 23
734aba20ed20e53e3010baccc49388403a681ec5b8c1ec10e842edbfb009d361
5654 PUMPUSDT Aug 23
7779c38da26dc8ca6e0800dfee57134c087eb62e8ba6fe5f79732237200edfb4
5655 TRUMPUSDT Aug 23
004330825e0549769b789b51420cdb5068028e4d76056af06bd5fb7846f2dc46
5656 XRPUSDT Aug 23
5be343ce7db21feb1084704444a56dab146e005312dab3d228e39d4bc9713d68
5657 SOLUSDT Aug 23
1571a8b93a871cccf24f087e5356c506c91530624101c6d7a5fbec8087ee3ad5
5658 BTCUSDT Aug 23
6d59556ad22e74ff5d1a992014757ebcf15e5d2077c1f67b70406fb0490aabbc
5659 BNBUSDT Aug 23
e26932a30ec7c222858b33a36e1e11b1ef91c89a847143ad6d3b03c2c3d826c4
5660 XRPUSDT Aug 23
6c45b198d1e554a6ed8f481198e27f0679c4717d68b67115104a61f79c4ee65f
5661 SOLUSDT Aug 23
aeb3b72c2e3fc5d9551a9a493582ac799d9abb64975954c1085758eb6051bff3
5662 ETHUSDT Aug 23
78efba80f4f37d86372073a14edf950cdb6729edfa492689b3461a85988465b4
5663 BTCUSDT Aug 23
eafdce5b9025917732a0b18b2abef35b6e35d40660aafef2fab439cbff184927
5664 BNBUSDT Aug 23
587c3c349c2a5e303a93e414682becc740556b7f7ddf2e6c6249430ef763be90
5665 TRUMPUSDT Aug 23
4cd1c37746b18562cb07e4003ea136380a81e83a558bf0136cc492a9f14703e8
5666 SOLUSDT Aug 23
da2bc279e91b449b0f8588278438112601bf483ec522ee25c091d7802f35ed30
5667 ETHUSDT Aug 23
c4bf512becd7042a84ae4b8180023008ec4b35fab29da5f6bfde8fd4e5ac03eb
5668 PUMPUSDT Aug 23
3f823bdb054e7983b4b19b4261aa80640e716fae3cb94953da4f916233b22894
5669 PUMPUSDT Aug 23
df72552dbe0f3640045970e208602411e6a14bddfbd4b3bec313631079e21428
5670 PUMPUSDT Aug 22
7ce4f6930c45a1d84986c43097dff81adf6111dda6b61f8bce9b0202a863be31
5671 DOGEUSDT Aug 22
e9fc9c37c75131c678b0bedf2aeae68880b32b2cfb3c73dbc6b92f3593187bf5
5672 XRPUSDT Aug 22
b4d3ccf45b84b8babc6df7a0015f0874a32364d515a30ccd025cd57a1b88e426
5673 DOGEUSDT Aug 22
c8d1734085a547d31bd4281900e4d342177fc9601fd7e71c81699c95c2975d5c
5674 BNBUSDT Aug 22
33f204cf2b10ecd86e25bf4d44fcd86875f4c68a03799e3ff67a01bebafda8fc
5675 XRPUSDT Aug 22
656a7ea50c6fb1e58c06be6fae1c1a2171a3378cb403d9ad3497ec74a63b924f
5676 ETHUSDT Aug 22
02d5bcb71a9a704782e0e5094bac5c558a30e8b3534d12b2f3a51d98b0791671
5677 DOGEUSDT Aug 22
cedf6f118e30872360e186620ada50aa88f645fe5d35a71f285dcd5959705834
5678 BNBUSDT Aug 22
77a0aafaf8696f96d498e58c4894123b3f46b9055610a4682a4b0a6cb9f1f307
5679 SOLUSDT Aug 22
98f11dce233b9f69a22391e69c194a7107dd8312ad4bca6836cbd0698f6edb0c
5680 XRPUSDT Aug 22
47ade6ef6e8845334a9247970595e9973268f0c38f29abfa015ac0e87c4b6b95
5681 ETHUSDT Aug 22
289f1529a8fa397a4397608bb899dd9b0682e48f1a10bab728be612c4d573bf6
5682 BTCUSDT Aug 22
b52492a5cf5e01f7f7e8ca2c954651fa815d60008cde6237e0a1d4cb43aca4c8
5683 DOGEUSDT Aug 22
1c40863602f4f3785ca6019c2b3924f849f7219a567a71377829406c736e08d2
5684 BNBUSDT Aug 22
6ade360961cc75521e6ab7255655960d2e8d6d7139a270981dab330ea5cc30d1
5685 SOLUSDT Aug 22
4367ad3661ed89556e62aab02112ad89d2290bc918b1953ef83d952abf72915c
5686 BTCUSDT Oct 4
72143016824f793b1e7130cd7e1f3a0bd45c1e85950ff4b48ee7cb6df2c13f21
5687 XTZUSDT Oct 3
14cc2099ea4f86623f8a4b8c25320e1e6794a1067a7e3002aee0eac9916c44b2
5688 SANDUSDT Oct 3
548a8e3c4220e72bbb2d28a37b165fda0f00128c3ab0a3fb4a65b5a40e719943
5689 ADAUSDT Oct 2
fd398aeae18a21b94f42ad62c0c7db8e22b35cdddc68c99a0a3681d147597cf3
5690 ADAUSDT Oct 2
bfffda6712ae017823dbeacd72bdae8efc8130f236445cd271c32b4f0b653da6
5691 ADAUSDT Oct 2
5ebd8083b6bf7e89457b0e18945e5b77bc5a76c6a47c7a82dbf3449e29a60c1e
5692 ETHUSDT Oct 2
5a7943728569e3eebb63fedd3240490b45c180c30fbea0b9e4eb28e7704a30df
5693 XTZUSDT Oct 2
0d64597afe9849b0656ff85ac1fcfa2dbf4d5fbe9af9383068d38534d473ea25
5694 ONDOUSDT Oct 2
c3b18df0aa02033dd0439bb3a0254274c30432ca6d092000eab9ff4446598e4f
5695 SOLUSDT Oct 2
92f2446ea50623b5b54700eabfb4ecb07849b638fa823cc6ee46b143885d1ac9
5696 BCHUSDT Oct 2
2ea6177adae2ab2b5c37aa668c834ff5ec870d4f98bcd6b53455197e2107faf4
5697 INJUSDT Oct 2
4053e52a8892b3baeb6d60ef3b8b6bd934dcddfeee5b0d4823adb438a4e3525c
5698 APTUSDT Oct 2
fc1740824df7b526c9369962210b801add4eb68bc4261c0648d08e0a692cc14b
5699 ETHUSDT Oct 2
278257aae70dccefd20c54acaf8e8b0880b9cb8e1bd7a5ec74bbc0720d0c31ec

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