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 13, 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 150 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.

14900 AAVEUSDT Aug 26
664ff1feb6c673cb95551e9ae00b2e5e40276e0a0eef709a338c4c94c3a7bf61
14901 SUIUSDT Aug 26
8faacb7721b7c0117aabb8b4a23c3d4b0e40f35c9a5653e4af8039984e8e7f74
14902 XLMUSDT Aug 26
f02804eda283d7d572c37a2bede57cc60649a3cd933c6e9acdbbad8c48fb72c5
14903 ATOMUSDT Aug 26
50823f109872843022c3da5c595e28c7340f6d2df198edc608f053ff632a55c8
14904 LTCUSDT Aug 26
74fba154af8003e65b6be5a71b2d17526de7618c2d0e87c47a1f8ec7cbd64818
14905 LINKUSDT Aug 26
9f0c0beded077e2182fdfb73b4dacd4a9ce0350ec2e57cd8ec16f5b19b9dcc22
14906 XRPUSDT Aug 26
7284d4198101f0b5604c54fb7cd4823081b8940e8f2c57349cbe87bbb1687dc1
14907 SOLUSDT Aug 26
a4c2f6aa9921cb5e8f1689c3484045acf076cb185c6982d6759316dc562fa5e4
14908 QNTUSDT Aug 26
e9fe0b8e89af3f526bbffdc70c13f5a66ce1afe295d25fa1b5723e9b9822536c
14909 TIAUSDT Aug 26
2dc1576a587ed8cd6c0f12afb9e91bffe66d8da38f01d0a512eb108cfe3731f2
14910 LTCUSDT Aug 26
4087898db9ecea33d5c43eef4defa0cc5fbeb6b1d4e34ff9b9583b8ecea22b0b
14911 BNBUSDT Aug 26
d97d272d68f1d312f3ef575fe2459073a5f8944a1d55bda1d1d9f3a42f5dba34
14912 BTCUSDT Aug 26
f55cb7c4f864e9669e401d989ab004c658cfc1491cfabfe3727a8d5270bda018
14913 TIAUSDT Aug 26
7c73efb614f2069f2d0c1a5d4c3db3ead0f1b8545d8ce92e2fa17b80ac4b578a
14914 NEARUSDT Aug 26
099f001fe3ab91130b0152a74fd2c5252918a2d832403b9a8d31a7338dd99793
14915 POLUSDT Aug 26
0b6b3077be782c1245536fe8224d1c6ee5d6a8abfe61557d5036d70735d885f1
14916 DOGEUSDT Aug 26
2072f60a8550d6c9be619ae318ad8365575b3b026c26569f58c0cdb82279ef53
14917 PEPEUSDT Aug 26
b77fd0c3cb8d4b1dd7b63fa3e616adc361e2e0c961f60f1508c7e7625d7074f9
14918 TIAUSDT Aug 26
78ef1cac51184a11ac1119b22ebeb8c476b5e920a9e882c10371b9eb7cdd8cb0
14919 ATOMUSDT Aug 26
bc76ef65e54c4bceaa683967743dbf3ff800b7217942cae31c7ac0b0d5131c02
14920 SOLUSDT Aug 26
48b5b560309f6c68fb02ca11fcbc556a65acc5a59b0cd15386dbde9de5f18faa
14921 FILUSDT Aug 26
f2c2de4135133f3f4b36de2bd7eacb5217e6832452b9299eb3b66451cff12290
14922 NEARUSDT Aug 26
c8e0d49c82b6f4d21d34a1fb2f4c5686e21a8799b4a738c5d01a32f678bd0d75
14923 POLUSDT Aug 26
7bf86350fb4eea05b9cbfb4bc4fd30b3db963ccb6c4c86d9753a114fd028348e
14924 TIAUSDT Aug 25
3a9d88cad1f87d5cb189cc8c6f6ece10bd6938bc286433dcbc508e5be8e780c4
14925 ARBUSDT Aug 25
5be597720b9519c269fc0c7e68bf2bfbbd48f51aad89f3d0424999a2f192db9f
14926 LINKUSDT Aug 25
6a72e5a34b6018f1de59d177019fc2750ece9b2099983d10029067a4f32407a2
14927 AVAXUSDT Aug 25
778af5164c2f095c1257a8b210fa024292200c12e930523dd8a40393688cd62f
14928 SOLUSDT Aug 25
c1e805a0d956f1dcdf89e183a561867851e8d3ed3b8493dc2399811565f4c4b2
14929 QNTUSDT Aug 25
bbfc707f14cc10f162816de6c5a446c27612c478e80808c498ca711b8d616974
14930 PEPEUSDT Aug 25
798351cdc51d9999d5acf5eb9e96a158c77a71f6f4311536b73530002f27a977
14931 FILUSDT Aug 25
69e102612abdd9952710c4d202ecd99d205d0a713824eab705365637a969f442
14932 SHIBUSDT Aug 25
b07cf0a18dd6e1ffd4322f3ffaa724c6e350132cf40baa8c9aff3d7e3f985c71
14933 LINKUSDT Aug 25
489465fe9563c06e77ccd8a72077c605d0457aa09db6a71887c661adbde7985f
14934 DOTUSDT Aug 25
57d951fc4e365b3da3b2d84b724b8a3234012512bce956b20f6f66a668f6512e
14935 AVAXUSDT Aug 25
fae7836f8bade1d9705be525d0a5e81660d8c78b10bdf367afe57150fb304c3a
14936 DOGEUSDT Aug 25
ef4192f703470e67d0a13801e2f4411c02861ef74cafa1546bd3e3138ef61c5b
14937 INJUSDT Aug 25
84e1e62bb19eb9b0ae8c614bc950a2fce6ba6075af2d028be4a0db5478fef9fc
14938 ATOMUSDT Aug 25
9d1fc6c531cb9df7dde8b9099fee4e733406e6889716ce5726f2acf34874b695
14939 FILUSDT Aug 25
f910edecee913f9008659e5fe739a9b9eef2dc071d0e093265057e06d5cec735
14940 OPUSDT Aug 25
45fa145fa6b73ffae2c163527f3906fc71bc5f12133cc5ce8afe057450db2aaf
14941 XRPUSDT Aug 25
f19c816c61979b1c5caf9daa4b94c3d1107e9b5596fb8ebb9e908a369ac9fd17
14942 SOLUSDT Aug 25
972960ce6bb7f41fa476bd92603ed3f635c297c6daab9d9e9b0eab317122d56d
14943 AAVEUSDT Aug 25
8e6c0d411066724db450a5422e39f3c0acf67f7e7b6c9d349a77a467fe593625
14944 APTUSDT Aug 25
3836d03bea8befa317e609026fbe2dc0a9a088486f298bd015e1d7f5c625f48c
14945 BTCUSDT Aug 25
dd8868b07b4c982e6bd81006149cfda47f478e42d8e23d097d17674a9349cbe0
14946 ARBUSDT Aug 25
4598ec7a38562bf5beb529985587d4d79fdf13e03d8ead4c6183911e05cf9760
14947 LINKUSDT Aug 25
e73318b541fbefccb0e74cbe3939b4fc59187aafa1a17cf4a500c1d14791451b
14948 OPUSDT Aug 25
2f4f601b24de95092f9d36d16e1c9c4c2c08946529127f7495b1c8516feb8cfa
14949 BNBUSDT Aug 25
10633562d718fe2814139f95f2d0a00031fe24b81cf661411fd0c5419b82c703
14950 GRTUSDT Aug 25
877de00b9a9fc78de7e9128c4e42a1b72b9f6085db04cf444db4837858f99cef
14951 OPUSDT Aug 25
5ddfa60575e1b116de25c12b9bfc297912442b9315f153bdb3ddfeb831c6ab6a
14952 ETHUSDT Aug 25
fda7f6c8fe09f18241f6cc41cec532022ef00ad8df639a5db05826add24d3142
14953 BTCUSDT Aug 25
06db08053a32328d556d93624793f938165f7c2cabe824a74a78ffcde5102281
14954 ATOMUSDT Aug 25
09590640ce0b1d9677dc8d526bc93e665eaffc080b14fb88a15ef72ab674cf08
14955 DOTUSDT Aug 25
86b21416c0408b58f28873360a72b509c4629dfa66daf8ef87d60617e4b6fe19
14956 PEPEUSDT Aug 25
9ceedb204d3e4cca015826a81b3318d6f79803cdeaf22464b429334829eea16d
14957 GRTUSDT Aug 25
1b2921e7e7e6ca7e64de3c7bd499616b87703301986692e48e8b08de603a112d
14958 INJUSDT Aug 25
430ba5625ecabae67685adbf1f063c6c318234e9110e84d37bf95d45ffc16ddb
14959 OPUSDT Aug 25
198547b7d499f543a2150c70b92cf3c9b5d2bc2e22f501f2b457499f0a484e0d
14960 UNIUSDT Aug 25
9d5685ef39f0027d747246d67cb4f70df721ce96a3703056bc8a0b5771684b51
14961 TRXUSDT Aug 25
4a73207c76a7bb01f5eba2698c798f5bcf983ec23d3d96a53acb8b515e3c0a89
14962 BNBUSDT Aug 25
8741d5ce5d84765f6cd1d096f233726bfd955901962cf343854670aebefa27e8
14963 QNTUSDT Aug 25
8e0fb400772e91210becdd22b52af30df444f24620bf3f7e2fcb90039ad75de7
14964 AAVEUSDT Aug 25
4cb33b634be1b74eaadfc787d307299005d73f3edf5614ed59391db62bdaf716
14965 INJUSDT Aug 25
a091c7834546cbec3d1337bdb39ee3b711b40d74b300f3db6d722ffed258d700
14966 ARBUSDT Aug 25
904acf42359c01f8b4cff957fdbd7b426e57e4fa0083994c810a8a979b78f5ad
14967 UNIUSDT Aug 25
11db60a495f81f61502676685945d92ad4d8bc3bf31e495cb6d0780f5538264a
14968 LTCUSDT Aug 25
d7d5109a0198e373fdc44c673cab5527336cebfad733b004e71c8352cf6bbc59
14969 INJUSDT Aug 25
fb9e69b950aee7b7678ed63e8c0179e95af15b525082bb4a3f9fa2fe2e89bd30
14970 NEARUSDT Aug 25
d7adc0e5dcaaa8f7849ff9e24f5ae5af43a6b4b7b2ec8513896ed6f31428dd39
14971 UNIUSDT Aug 25
386990988a29c927cd96a3784c35cae72ed9c8e97e60750d09c062f2362d78a9
14972 POLUSDT Aug 25
d74d7ec8611be3a2c6f376dbd86c2d97fb0b5d84a360a3b4b177807c7603f567
14973 POLUSDT Aug 25
8e3cb10c924fa712c99186fd32095a2dfb1c52bdc68e9c83e9624591482e5e58
14974 AAVEUSDT Aug 25
16fc67842d18e37901a31d41b62c85a314451066b358752304861fa739729068
14975 INJUSDT Aug 25
74d75ac6ccf70bd8cb0aebb9628b6d54fe5477671b5558fd0d5fc05fde10c50f
14976 UNIUSDT Aug 25
bb16aa273c3214582cdd40fe77a4ec6c9260d8d43bb97f717aadd7fa7e4dcc3e
14977 AAVEUSDT Aug 25
1984930715c3e7cf78555d42eaa82e05fe1d7808d9c3739171125d53e2153f12
14978 DOGEUSDT Aug 25
52374c8cf2cf072a6aabe7763c2e5ffef13030221c9e857171887e29c4920df8
14979 SOLUSDT Aug 25
d668aedb058b511fcd756447511d46c2ee147cca8540e0a3bcb020f45db65441
14980 BTCUSDT Aug 25
00618172593214cbf03b433b25a7e7ae51ade1221cde78d8bc9e01ce4c82e7d4
14981 XLMUSDT Aug 25
a0754ab234c15b6a30f55503d09664de6c16e63b2f67520978eb02229fc1c916
14982 XRPUSDT Aug 25
fbd02745ed2ab415c26c2ee8e52af9ded8fd80c4d1ff0a8aa69e7b576e6f4d77
14983 OPUSDT Aug 25
9af1d9182cdaef4d245d332275edfdeff41babc222163481c00f811300631d0c
14984 FETUSDT Aug 25
bcd36c715cd2cdcc4c58c6d955524200338e830e23da4c9dc32124fd91fa694d
14985 XLMUSDT Aug 25
85d6022ffc85fae58f176916f13802fff50d7f44c4eceefcdc06204a8a462465
14986 AVAXUSDT Aug 25
62299058ea53ca0a09ed385c98f5e362dbed1274b2dfca09892bbd58fd31bbd0
14987 TIAUSDT Aug 25
bf53b67dc49bf0acc0f68d06f612bf7fd879995e331bf75d2200c7743d7dffb9
14988 OPUSDT Aug 25
a55210317f6746bfb40bc8a7c758e212550288a1160706562656e9d413ad9af9
14989 SUIUSDT Aug 25
1a8a4cfe828e02b96cf658b657e59a18176982914a56682a8b58d136ed5d05ab
14990 ARBUSDT Aug 25
7bb637b38b0a0243b46988ba80c7dee4be42f2e2e6bd43020908cdc6f0700bae
14991 UNIUSDT Aug 25
df686f1bae005a46fde0e5eaffb04c7769d6c55a95129801e756b8918c152222
14992 AVAXUSDT Aug 25
0d1cc331c23a6f9b63b7717d988783a2196a0d53313b9323e088619fd36705cc
14993 XRPUSDT Aug 25
21a23f90a09f291dc690e330c7aa434bb49f0d32ae43f940bfd3111c7b12d7b3
14994 ZRXUSDT Oct 4
8c60d9aa9d999ae84067753576511d74950bd0bd03c020aede6f75c27d4ef08b
14995 PUMPUSDT Oct 4
c2671c0bd811973a50a588aaaeb46aba9b8fc904fab3996d65309b2c5d99bd38
14996 IOTAUSDT Oct 4
6dbee7197eacb42ca9206f05eaffd4420f6fba7246ca9ac8d8edc4910425b373
14997 BATUSDT Oct 4
043824a6aec426dba3a048fc7c0ee676def4158d5c4fd791d6459635be622b1b
14998 VELVETUSDT Oct 3
60802cd82a46a19908e7f818490849ce66fc580fb3320a2bb6ff8e1926dfd092
14999 ZECUSDT Oct 3
cc25f63e9b00e937af2b3c04b8781c55c42ebe2d81782742a3bc0456f6a06b71

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