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 12, 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 151 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.

15000 TRXUSDT Oct 3
1c5f16b8a29c0694f8323e4d38128877516e1d444e975a608119cfd5fcebd9cc
15001 BATUSDT Oct 3
dacffcc8bc5ef1789026e91918f56a08da31a2b95c2459c03953d48f98d2b33d
15002 QTUMUSDT Oct 2
4222a46aaf919cd299284da1ac64cc83e567d269bf1179f9ef56d823f7cbcbc8
15003 TRBUSDT Oct 2
982dbe0071b18bcd71e709cd21a19923c4db3040bfd7f216f852ad6f81d49378
15004 JASMYUSDT Oct 2
b4734c9223368e50c67246f74679a1c0d4e2d404d230bc7c57d0a7ff8c8879e2
15005 ALGOUSDT Oct 2
277aeda4e69394600dcc40793aae9cbd8e6231b0cdff21fa33633a362294bf44
15006 MOVRUSDT Oct 2
d4670316cf25f7f5a9546f57195b50f35ee079a54d69bf0ca2d77308778b4b65
15007 RLCUSDT Oct 2
d5344059e3efdf14db76b51307a216a317f65a17187e03e0fd8a271dfd4c7ba1
15008 VETUSDT Oct 1
49d83dcc90327ad6cd3315103d5a4814653192c8a509056400e1f6741a78d8e9
15009 CAPUSDT Oct 1
1e462602fa40f6d5723780d0ec4af012db1b6d2244181086e70324b9c2e5b173
15010 DASHUSDT Oct 1
634c604476da0f7047d75dd64c29152938eb885848a614d6b8b43165b526494b
15011 MOVRUSDT Oct 1
9cc0efbf319de14c3ff208b4f3f837cf183b5e029e53995c3a79d2176f183141
15012 ALGOUSDT Oct 1
e86e0846d7515cd48869127aff4af9df6a370f81f96b0d016bd7cc1115e76646
15013 ETCUSDT Sep 30
2c2d76d79c59d69cb99f4c50bb0f9a383b8693aafb0c399ec82e477394b4e5b2
15014 NOMUSDT Sep 30
2dd7e7f7ae3722ab151259e3bf30142b87b31ff688d693a7791a563a8d8e49db
15015 QTUMUSDT Sep 30
a86953c12f0641493fb452bde3695d3bade2f6c9c1793c6f04c1fa8018b8c9b0
15016 BTCUSDT Sep 30
2b1c4b93d27737ec220c8603a8483e4f582fb309761c3e6855d7f3cae216f09a
15017 APRUSDT Sep 30
f1738c35dd298ea021aef490cf4da2172f7288a97e4d0fd8097bfb98d327b5f6
15018 COMPUSDT Sep 30
cb9c83ece14a1b495f930b9aedd87ffece35b17f8e25e23851f290c677b4be89
15019 HBARUSDT Sep 29
8752f598c4662277401ad43191d9cd42e9987d8f3bf845b1b89128dad48b0531
15020 ETHUSDT Sep 29
08f2e71508b60524dbdc41e4a0790ecdb8465a274d3577d613542035cdb26246
15021 ONTUSDT Sep 29
89f92280c01984b7ef3879cdf2be99c7dfc98bc3fef97e149a13ce3c1b42cb3a
15022 GRASSUSDT Sep 29
c2de5d1e8508619c5486773493baecbabfdf6ac43875922e461e765e27e8d148
15023 ZECUSDT Sep 29
4e5003eda9b8df4eab2181683c0f5350efe74a5de95a4191a90a376fa0662590
15024 CRVUSDT Sep 28
fce821eeced79acf42bf6abe1bb8f36b00ad8fbca42b67e2061a7f3ae90d2bc1
15025 AZTECUSDT Sep 28
9278fe36a53e39b06040fe7acda3c4c92823e46568ac58c562cce71bd7d221c0
15026 LINKUSDT Sep 28
b6ac4db353e4966f9e192ae1f4ebe9aad9133ca5c02df71f2ba1a575325cfcc4
15027 XLMUSDT Sep 28
78db915811cbfe492dc05430185691dee6eba2651a5cfd43f363e438083b10fc
15028 USUSDT Sep 28
6a4bfbb4ebca016d1e36c4382d5b942096238f1a9964d95e433d9ce4af49715e
15029 ETHUSDT Sep 27
350f4f9c3760ccfae360be51d7f9f7f31d859fae2781dfe08587005a76a34b02
15030 BTWUSDT Sep 27
4a08a63ca93fd786013e79e4eb432e5c2b5e4c1382d4f2c30ff3dcc9ae62e8e0
15031 SNXUSDT Sep 27
3627a725d65763f81a00b985e13d682c3655aa15496284349188fccb6a9ae4e8
15032 KAVAUSDT Sep 27
7ce07d0443df8040f98f5ad1d1cd25ab4b6dd41025ce5899823a51c7b1a2a448
15033 RAREUSDT Sep 27
7a5947f44ae6f32664ce8d8f8fb20bfd73393a26b36cd016750817c3504c1a7b
15034 VETUSDT Sep 26
f95d19fe7c2b3d1c1afbb15b6e006a96eb920bb6677e7fce9ae2f591c0fb5487
15035 ALGOUSDT Sep 26
64e036d1e74ee30ed584674d2e59f8170c39012c2abe2c1225e0f3faa8d5dd6d
15036 JELLYJELLYUSDT Sep 26
d0af1b2a5e829c944a901762cbe2e55a9f755dbf14de00c4a6c4484aad35badf
15037 DASHUSDT Sep 26
9190403d60408213b7571f8a87a43f4a48b0f39494a8e2a29eea42ed24d79c25
15038 XTZUSDT Sep 26
371d7b1c9c1f9ba5ab8bb855d91b830131fa266ca2c8950bfc3396352fc36c5c
15039 LYNUSDT Sep 26
e3efa9c2d9c93b74c5cd78c2ac18b95fe1c1376a42b6f01948ad11ad62697f7e
15040 PLUMEUSDT Sep 25
edcb53736eee4e6ed94fff66162aa59bd71ce44660e170bc6db2dcba5433b510
15041 ETCUSDT Sep 25
b1d4abf5855030acb6238c6bd4a8cee90407fe06d6b5f0f2bb96994e60f5cea3
15042 IOTAUSDT Sep 25
1d4cab3fbb3ca99a6ca078b555eae0630fcadb2a8516a9b17a496c14813e3774
15043 ETHUSDT Sep 25
b262941fd88b54f20ad9201e5ce17b4eb840ce0b6f84b481a0a1c0bb1a83a423
15044 LSKUSDT Sep 25
08a7e9bc4300502f72083a38e7e3e6457967dc4497eebc20e740f826b56785cd
15045 ETCUSDT Sep 24
a8233029ae3f8cf0b8a0c1b1c07b6e4f82be59f77eabdfc7f94fe13ad7074a92
15046 NILUSDT Sep 24
d29177ea33fae29c828948c08992823e67891258f819fa11cf674cc6df32d0c1
15047 QTUMUSDT Sep 24
e6bd4444d7f161b1f8e1f29913e607faf4bfc34d0dbd44f74d7aa0278f03ee3c
15048 DASHUSDT Sep 24
35568c0afea806f21e9779d4eff2da96e59e13a2441a798a05a76f8059156674
15049 LTCUSDT Sep 24
845ed0b03082742edfc2b5bf458dd5bf39d2f7a3d84de0e7c2b6889b09dd0d92
15050 TAKEUSDT Sep 24
603bc2d8e92ed9ffe42d80d4dd67f009307b5cfd00fff89b2b53841ad3b27811
15051 COTIUSDT Sep 23
2181d9c82a1b8b0e840268ec672362e5790c0919c1f778ddda0e625e90deaa41
15052 ETHUSDT Sep 23
5be0b701247ef72f09050409bd2ba606286b954a887ae1e3c2566fe14556e5b1
15053 DOTUSDT Sep 23
20d032eace7e3312eaa69f7b2b1ed29332c60d58b6dfc6898654b77b7c882f0c
15054 ENSUSDT Sep 23
4f8344601c5719209f3445a397fd863e5117e24926803f69b61a28ef2f765bae
15055 ZECUSDT Sep 22
b6f785151966061c0b05476e0e609ebbd2f3f3c35986bc423aca6a8edda1f181
15056 BATUSDT Sep 22
7b901a1466278b0568418738616a7bcf148dd0a8ab37874cac5911bffb6d177b
15057 PONSUSDT Sep 22
9a46c723dc517c253c4f28e5b0667bf67f40e0fa33d3aa51dd0490ce7c336e84
15058 LTCUSDT Sep 22
ad2f353f5b79f594c2a75741453475682a7eb3b06908f8ddaba2a1c14a07c5d1
15059 LSKUSDT Sep 22
ea1aa2ad816b65018b017cabc31ae7705305797262c8d940560a6d29481f055c
15060 KAVAUSDT Sep 21
6d6af325611c123d16ff47f7853a42f35f625a5608707e795e807fbe4e10642e
15061 XLMUSDT Sep 21
4da2709d7294cc535e81a1ebbda8f7de430402bc5d1efea0fd3352a7383ac84a
15062 RUNEUSDT Sep 21
6e78e02e2cdc6d74153ad8eb7574aa5116ded50bd74f3af6c59a8e2089d5c1b9
15063 PIEVERSEUSDT Sep 21
9f1d2cc7dc31eb6abf811edc5532d85912a1ba164f8c6eda99bee61376b7f600
15064 ATOMUSDT Sep 21
1cc1f4b5bd04515d79b34a233b4ae2d3b6f1a85f9d50d0904a0cf701ca0a1439
15065 B2USDT Sep 21
7dec4cef5a1eb77268205e1790fc444d4d705b21bdad41214d903b93e1edd5f9
15066 ZECUSDT Sep 20
fd5207a1bbc545750149ddb58abe252c79519e05b24f69149dabaf48224f04b8
15067 IOTAUSDT Sep 20
7376204ed6e72889495f56bff2fe5e89a3544050e44129b110ca72202624f5e7
15068 ZAMAUSDT Sep 20
ec100d2912d87c947b665f4db92527378956fe21642ca001f4bbaeabf8ea231e
15069 VETUSDT Sep 20
1050a8d7d0a60c4871a6c06abdb212115b539d8296869e059e5e87c5961ff119
15070 GUSDT Sep 20
e46c01f51d6751603c6784dbd399ff49ecf1e2ae5a45148f73a6f80913b55ecc
15071 ETHUSDT Sep 19
5791b561a65db807909959c7f5e87a533952f2444cf34035525dab0d54b6ffdf
15072 XMRUSDT Sep 19
777c3e63e94c4993178fd1e395f738c102d9c0d3d07d77f5d763b38ee7e3179e
15073 XTZUSDT Sep 19
9f472dcb89444021d5d9cab7f1227c890a8b7d0a986c115ab16d5524f7c975e9
15074 B2USDT Sep 19
78d7e8e871164ad23d396b24963f28c0c1bd46176985df37927b57822fc07d01
15075 BANDUSDT Sep 19
263fc737f93fa782d479c82dddfaf6a0ab20c13a8b0967f12ccb89a28fa835f5
15076 GUSDT Sep 19
319a5b5f4574f79fd256e905d187a721a8057714dab8368844b6ab6ef6237137
15077 ETHUSDT Sep 18
1aa7f49b41996a2c35afec6f8fdd0d2f143682f09c1221bc52426c95337dafaf
15078 ONTUSDT Sep 18
fea9b3448ac58078b68f04450e5f9b99da8e818b6f28221188fbbc806fbb5c12
15079 LSKUSDT Sep 18
73b006c3744984b9cf552f9c1169e633f3a98584a80bace271edbad8d94158ed
15080 DASHUSDT Sep 18
aad53452e21e5493d8fa975498c914e4e6c8da597b662a137de362efa82e1d42
15081 CROSSUSDT Sep 18
60bb48c4bcd1b09a4666cacecd6fb0fb542263e3a60aa5a30e34acb75f9fc6d7
15082 ZECUSDT Sep 17
296afe94efa2ba588458696683b7f7c0df17fdd0a0d693f2ad2e9fe37d8cb889
15083 DOTUSDT Sep 17
fd15bbe05ae5b4823d6c75a8ee2fa65f0ada39591123f86e47604a14b3eb8412
15084 BTWUSDT Sep 17
01a0f9e8110ace2e06fce88bb9caff146ace395427f0b3e4f680897865ef2442
15085 XTZUSDT Sep 17
daa5544a0321517eec64132a399858c7f0025e240335ba7ab528eeea90ddd671
15086 TRXUSDT Sep 17
a4ea14a1058bbdd5af3bf1824393e098323859afb8286dbf513467f1d6058f28
15087 HEIUSDT Sep 17
e6ade3fcd8bccb344212a83805d309f5b4b1763348a463119f62fcb898b14b3e
15088 SYNUSDT Sep 16
dedf29ddd3d66fe54b9e4d066fc9a4812a1a8173e79927eb89aae93f7f46abff
15089 ZECUSDT Sep 16
b1879a0d4b8771811a1fa7916553d629d410063b6c4d1133beb00adaf4519405
15090 DASHUSDT Sep 16
3feaf018ace372dfca263b9dfbde110c448ad97ba4ce321eb2bf21c8f4fcdec5
15091 XLMUSDT Sep 16
4664895a5ec407166126288088e9836958bd0155845309258fd95103b0c491f6
15092 LSKUSDT Sep 16
1e390c6b7024f3d5f098cd312c5930a8c25f8dc404787c1e746d9dec3a9bc3a5
15093 CRVUSDT Sep 15
45aafe70890c1cf7d8154d5c9ab46f8c09bea9efeeccf3e53d13bbb88a6fd66e
15094 CVCUSDT Sep 15
5ad800f68b80e0ae37a8337d0101d1611d2333105401b31e17122a2973a454b4
15095 BTCUSDT Sep 15
a9fb3e5dcebc9a323c137c1a6eb69858879936a095e350076b1c6ff13e0bc052
15096 LSKUSDT Sep 15
02518336dcd7ebaa21a65babb25c2eff7d144ee18e4e25ec5c4de45e5069f227
15097 TRXUSDT Sep 14
e8280d3280cda4c4b2f61eda5db25e29bbcd8c28205bc80b2511ecaad190773b
15098 LSKUSDT Sep 14
7f49a61569748ae4c46353200855df2e0690b82a3ecdafd23dffaa56819f63ae
15099 IOTAUSDT Sep 14
845fb1683fbdce7a2e04d4bb20269fbd5415c81aac8fc5209df2aeb33ff63477

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