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

3900 INJUSDT Aug 5
509bdf743ffc06f6dc592000e4c5870843d0b7027de9c4270362c97fb072240d
3901 ADAUSDT Aug 5
7ea8dabd280fcfc5560c6019e5d1f1195d352014c675c4acdb5a823f677fb2ab
3902 ETHUSDT Aug 5
193e52158f1f49b3c1ded809af6c08b0e90e291920c5749d984fce3ef8779d60
3903 INJUSDT Aug 5
e7d3945372afb9c900abcf62dfdae7d24e2741ea5b4eb5b83f978cae0c8f72c2
3904 UNIUSDT Aug 5
4ba0e0970d330d9fde769105bf36e9ea803e2650155e93bdd52d69a80fac4789
3905 PEPEUSDT Aug 5
1e0ba63d80ef8057ff097ce2a6e2d1b89170734c01a2cbcad62e4166d17cd837
3906 FILUSDT Aug 5
5bfaabfd0c48d51d4817c8abd7a032cd4ed24c9f802905ec61edf6941f7e304a
3907 NEARUSDT Aug 5
009b787bbc23e14912aa5055b682aa8b5e732bc516ada2fb76e111096bae7425
3908 FILUSDT Aug 5
aa959f7494709b533a7771a810debb42a40f5860e36b181aa08190a187560221
3909 ETHUSDT Aug 5
d6e51b3e572518a6157744539f9cda70cd0b43832fb81f78297d6915549aa710
3910 DOGEUSDT Aug 5
1fe0242e44aaa0ca2879b32ac10573013f8efd1ba4e7151cad45fd94f4e13e0a
3911 XRPUSDT Aug 5
6e8bc22d2342702869aa5dc25449780c3f75599c54686d8668dba3b3fa74505b
3912 ETHUSDT Aug 5
efcddf8fd6c24b07e76d50901fc4b00352a7d1b59d8baa7a9a4cc8ec04fc97c1
3913 PEPEUSDT Aug 5
1adbbb190d740bdf5afe0735d7177cef4dae20d54774010f60c2884aa3a8a6ba
3914 ETHUSDT Aug 4
67108d7b6825cab8b536f368cd0347a76699548370ca861f21957ee927b5c9d7
3915 ETHUSDT Aug 4
5762c0744b6c1bb6f03db0c12b1b252f6118ea1841a3f32beb5d9fdbb53a7a8b
3916 FILUSDT Aug 4
fae829faeb103987aed35f4afcca967e9591ccd0494bedc4020b11cec89d5037
3917 LTCUSDT Aug 4
d8f2c905cfb3a1d90c14ae911cc3794bc02673132408ec748b3969ae32e84cc9
3918 XRPUSDT Aug 4
4093a01a7e4f9b51a119ead25dbf12b59e8e5a34f4aaac8a5cd049a75bd04a6b
3919 DOGEUSDT Aug 4
736a79d73eb1b8b44b646d4cf15729d744f8994e94a3bf5d1ab608f572946d4d
3920 FILUSDT Aug 4
809676d6438d3670b5dc8e71e8e58d4d6a79e8f85a466b202561772ab9e5922b
3921 XRPUSDT Aug 4
ba4b25c1e3b3e2aff8687f0a49daccf64d801a43533578ba766a6864ea82f2c0
3922 FILUSDT Aug 4
5e0b07704b4fa61f3a34063096e779ac69ff20f3a498d08ae983031e21617963
3923 BTCUSDT Aug 4
65c39350d81e540294bac839b29d7749d16dcd73b6efc7b41632fd42449c17d1
3924 XLMUSDT Aug 4
26a6d56ef82315e5f24357e9bdc41fa2dbd37ca3a61366b72d294e9f12d0aadb
3925 ETHUSDT Aug 4
25cc0151f73ac57bf1f8ee574f6c50fb65b999d827e994080cb506d05ef8f48b
3926 BTCUSDT Aug 4
2b60ba5b4d99528ca7ef961e6c50241edcf2870f969d9e9ec6ffac0b3ea67995
3927 INJUSDT Aug 4
32fab8cea4fb61c616196d4cb60fb38b6b8e81d6e7b517d37811cfd1e6b978f9
3928 XLMUSDT Aug 3
7519f21ac73840a94de657a9cc08717e385ebf5631f8244baa17160a5e626402
3929 LTCUSDT Aug 3
3321404e81abfd3fd87c68bd92a620582ba909a5867f5b39bbaf9e8c51c70c54
3930 AAVEUSDT Aug 3
8837b3e7b4b60c506a0f84000f3fc38d578a46b97160a43dff366022bec1112b
3931 TRXUSDT Aug 3
e572f114dd543452c931c29177d2c4260836f48d6b359ccb9da2fd9934090e8a
3932 LTCUSDT Aug 3
1ce82ad10bd79b870bb05022179166ce22e6fe638373576a01d87f9a3b6037c3
3933 XLMUSDT Aug 3
1191de9e7fab3e26c9bb81a55a3d23e49b00744c7d88d67192aab88dfcdbe6b4
3934 LINKUSDT Aug 3
e6797981e4040d8b2d50cf8034ce6ddaf523f633e509bf55ef5faf311cc2a7ae
3935 BNBUSDT Aug 3
a3b9c36d02e1b596c8ae853dbb101aa07ba795a873342e61c47589b2279f34c3
3936 PEPEUSDT Aug 3
b6a2a778e23f333ab52844a07362b88de4b265547473f200a69a27fbca73d06e
3937 LTCUSDT Aug 3
1529c0c2635cc2d0c9228b513568a24505d6035dcf31ba35c4099169ba3deaae
3938 PEPEUSDT Aug 3
4f4f76da91484b69c2ca6b0e975b240220b32522a8d648495931ee65c29d5b45
3939 OPUSDT Aug 3
dfae00cd7af7a26f036ef89d73b4ba22f18ec7de8d489dbfdc05d955c1ae9a8a
3940 FILUSDT Aug 3
b45cda19c0bd125b30c371df7fdb9263ccfcd0087e38839018cb9d27870608cf
3941 OPUSDT Aug 3
123f5133b5ed0773af5ac0e5d6d6962d2aa4b801aceced76007c456f05f76468
3942 XLMUSDT Aug 3
06a166831b919515c239855ce778a5833dc38702da96d450010327c7c154be27
3943 FETUSDT Aug 3
be561c9ce33c7480e7e764096d44ea253253e80ae46c22a9b7a0546c382cd691
3944 OPUSDT Aug 2
725abe43ef898edcb6ce8ab619e94f7eaf4cd75c9db9629ea44b0867c04cf619
3945 TRXUSDT Aug 2
192206ee9aa43d1b7652820268bf3e15a289cc291af171e35439da242ad552eb
3946 LINKUSDT Aug 2
675ff0ce799db6b32db6b11536cdd96a147acb1894b729d19f6e2843001fb7b5
3947 AVAXUSDT Aug 2
2ec1567a4938bb3c4cbea34357fefd0e5f40d6ba068939731c915ec8e45e9a80
3948 OPUSDT Aug 2
01121d2c40f556f3fb8de898989f9bd3f7d7ba83e2db820a49aa3857d8578b7e
3949 APTUSDT Aug 2
8f2af81523bf28591047412624ab48614a187c910f88778d1fba60e0980abcb5
3950 SOLUSDT Aug 2
5f2704cebcc72a433681da305b0f586bb6020b8dcb9454a469368942241d4d00
3951 APTUSDT Aug 2
6b6303450e4418551bc2d843731cb0bfdeb6e916d6aa15eeb91530019f2d4f06
3952 SOLUSDT Aug 2
9b6d5c003c061176738cde402d7a3782fe7d6b25e9eba3ff87b92cc14dfac850
3953 APTUSDT Aug 2
82da6eb1f2d9b0dfa1d52c3b77ef75180de3d7971e23af5478291817699c9e36
3954 LINKUSDT Aug 2
0b8df78841d7449ab892e2bfd52827fe1b7de9dbc11a119ac22b00f702662cc6
3955 TRXUSDT Aug 1
3cc7a1416b82d89e35bf65b95ae44b0cae7784d26748e7ea6a7082de2d04dfb6
3956 DOGEUSDT Aug 1
91d60a77e9a2e95d7ca4c85cc937f3f59e9c884f3157a90a2dc70b835dcd4254
3957 FILUSDT Aug 1
d97a9795dc00ed99e28b0430f64e560f1e28fa1b196a8dc0b49701158f5a7f33
3958 FETUSDT Aug 1
98ee04016315fb08c92b1c567d330da21e9cd204844fb60c774d264bb61263ee
3959 NEARUSDT Aug 1
5626f40809747e22491232f4923c38052328a253d6ac4f8c1c45fb816b7d468e
3960 DOGEUSDT Aug 1
4fa83ec3c1b342b3b5a6b3f1a121df59ef38489ecdc86790ee88b6450a1f1ffd
3961 FETUSDT Aug 1
94b2a5a4fafa9945576ad90680dcc3b20fdfd14c89415ddd1a1af8e5506efc83
3962 TRXUSDT Aug 1
b642bbfe552c2dd8129e3d46cffb28bd65667e269991d55cc2759289335d68ea
3963 FETUSDT Aug 1
5eedb00efd808065f3e82f3af7d652efc1d7bf1736d1a3d20175c6b8b7df620d
3964 POLUSDT Aug 1
df041f1910f03bacf5b973e4e2ab11206576c92ce5ee77312a092abd634a45b0
3965 SUIUSDT Aug 1
23dde3858f8c9b45d34e903b7c0164b559646918b7aafc5bfff811fa64cc03f5
3966 AVAXUSDT Aug 1
117fb596bb198a2170bd325cfbf46c9b604039d0a049d4e4f2b7b5bb49147ed1
3967 NEARUSDT Aug 1
e1c6cb1faf8cf4a87f35105082210eecf24a8a302a21742cb69a2416318aafc2
3968 DOGEUSDT Aug 1
a17535d58a405452f3779966b33f50d7de1ebcace6b4cb6535bad3cca5e8f313
3969 PEPEUSDT Aug 1
02913ba792d1aa362c308339bfff0f91a590b11da3e72f2811bf855d7566fad6
3970 XLMUSDT Jul 31
d6c77d8266a9164b184b4bde867101454c5e1e206835eac586accc2675f3500f
3971 FETUSDT Jul 31
3031023a4d0e19ba92b30120cb072468efb3b2df2498503f4308c2fb3c3212cd
3972 XLMUSDT Jul 31
f711dc2401c0647195a4d3509f2229b7cd506bb5fadd8b012c5a0d03508e8259
3973 PEPEUSDT Jul 31
6eb720d55236fbba89a1d3629ecea7b58791f1954c0b6f2b46d281c7b1f69d8b
3974 FETUSDT Jul 31
324c339148d31630fc850b43fb77b54cb0e9899cb528f426695a927f6022546b
3975 AVAXUSDT Jul 31
c724a444ce9c236faf7cde912685e26532ba21ec27416a2de1c209f0df784630
3976 XRPUSDT Jul 31
ddb0619b55daf27b831ecb4f611bf86762a675675a2c34362b953e6bd8b8a0a0
3977 SOLUSDT Jul 31
3b9ad1aa4142982c8fbcab3cb7398259648e4f32390672ab2ccefbeae55d382e
3978 FETUSDT Jul 31
c1e8ddaafc329ff83bb950bdc410790d40b2f0c04696a87ac526bf7ca57031f7
3979 AVAXUSDT Jul 31
9bee199e178161c9b664eb0c5a0e7be83431e8bcb09bed002891ba77c8d89cfe
3980 SUIUSDT Jul 31
51c9f64760fb131e6845e52cfe3076843bdeb214e4d52c46e14483fd66d09ce1
3981 NEARUSDT Jul 31
5be01077a988153725bbb02ab99cd18e606a3e0379bbaa11842b7103c63bda96
3982 OPUSDT Jul 30
fcd814e7fda2f81322bcd4f9200696ca06e6ad6c3e7ff258e3519b4a8f5a01b9
3983 AVAXUSDT Jul 30
5c19d8cd7433c6a995b82c83e2c64957c045a898bc9fc2f8d411bbfa2b231f1a
3984 APTUSDT Jul 30
6f32ba642e48ec1b47960fec3aa5701e0046d5b89ad9ebe0abeaa046b0d4947e
3985 NEARUSDT Jul 30
af8c8a34cc71659486485bf4bd2ccedead8072bb288efa35578b0c4efe98e55f
3986 AVAXUSDT Jul 30
5e2ff264560d9edd272bef9c182b90d308b5f962377e30244d4b82caeeb62963
3987 ADAUSDT Jul 30
5615527edff75d28f5cb39350c2013830d9d0d76dcc92d19e2d1358a6b803d61
3988 DOGEUSDT Jul 30
553a7ba7b2a557768e53bf3b124ebfa75e1c957af10ec3dd93f572017f90768a
3989 AVAXUSDT Jul 30
11b2511871f1151c2bbe4acc893f258bc00acbbc65e5e0a89c896601e543622f
3990 NEARUSDT Jul 30
fbd22ae05543ea5503f2df002bf60cb7816a3e9fd1dde4fb17baa6cb9dfae0e6
3991 ETHUSDT Jul 30
2c4342484f0fb8cf1a8b39d829e5a0c17fae76fde65833a744fd9c784c52d0d5
3992 OPUSDT Jul 30
1511f32285c6757004a0275aafe66aaa50d1a0ea01dae81f0b12d2dff130d7e2
3993 AVAXUSDT Jul 30
05a6547bdece39774d75cfcc645d645fbb87aafc10c3464f586c6e700cc46c77
3994 BTCUSDT Jul 30
91f27877eed6f1f4ecf3e93304eb0a6c5ee0b27857c945af7ffc80d6c26e695d
3995 ETHUSDT Jul 30
bd55c6dbc9e500387cf9c874f65d8edeb8f4281da234d8f6827577dd30addc5a
3996 SOLUSDT Jul 30
f702f3d4d70b93e8a61e7e683ec1375f23025332113ac1b35228c24df8cb38ba
3997 ADAUSDT Jul 29
5ba5ff94e7c20a62ce71efc2f5b6e6bc6bb4a971f931468101926596d4c79055
3998 AAVEUSDT Jul 29
1f321f86bae54d3b7c4f4b8665dbc9342f541ef0dc996246d569a6625e68a6c3
3999 BNBUSDT Jul 29
dd7529695aa82a8c05ecc34118645c5fe309c919bad19e11dc38cb2173d56fbe

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