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

1900 POLUSDT Feb 16
cfba65237e3fe85856a5e99669590448686102e8a0bf76c16e893743064df145
1901 TRXUSDT Feb 16
6cf10b54ed2d89efeb1f7040e28e0f81c7c9f452b448be3344deca2d7ed6c84f
1902 HYPEUSDT Feb 16
8a8df4e440f5aa64ac6dae6d2fcb4c0a173300582e9c7df4733663c033eefe24
1903 BTCUSDT Feb 14
1f8ac60cd421ea3bd167034631d3ff57a7967c7de36e1120063a9ef61f4981bd
1904 TRXUSDT Feb 13
93f1a58172ba1ff7fda152b96be44d2d35214393c41f671172e673751e74ad4e
1905 ASTERUSDT Feb 13
3c9e1d88e1cb11f816f5902cd724171823ca34f698efd4bfd5668d3cd556e553
1906 BTCUSDT Feb 13
9c755868b00ac1a5b9225a2186ad41fd941c82baab1f2b3808f72f8ae2c847d3
1907 SOLUSDT Feb 13
661f354025089d5f0cd2bdd18ca1d9a5b02e34dce9beca1f01426777344b6b1d
1908 HYPEUSDT Feb 13
0ea1a852e634e319fa80ab834cd9595ae8b5b16320a4cf7105210f0a1eee7468
1909 TRXUSDT Feb 13
90b7e143598b0a0c0177430f7e886770f61d55bbe69d7de7804062700422b08a
1910 HYPEUSDT Feb 12
02f1862541b8e731f6ddbfadfde786dddb4d4844dcef9c8356f0713e3e060f55
1911 POLUSDT Feb 12
3492ce6995fde86d10cb5506857df22d350f5bd539ac1c740b665ce070671537
1912 POLUSDT Feb 12
5989543abc0a4b949d029eaeb6b75fa273aa8dc94a45f7d455c67adfab01cca4
1913 TRXUSDT Feb 12
40d21646c56e4d669bc9d167ab4a879a00cfbf02208c754b77256d5530ccb0fd
1914 HYPEUSDT Feb 12
6e9601ad60c6376493045fe688239b74db1c3d2658ca38d7c4b6b374683e8557
1915 TRXUSDT Feb 11
26ece4a93685ef5fba604486cc28d238a2d8de1e7365e2e973bd3eefa2cfbd00
1916 SOLUSDT Feb 10
7ce2b86688da9c895c4e1ee11c5bb99207a44f0f29e39155b734af3e039f5a9d
1917 POLUSDT Feb 10
44ba15170016c131f3ac72795e4de74e08155daa48f03e28d6e5466f80f00353
1918 HYPEUSDT Feb 9
01bae337c553c3c2523b1ab620d866f940f200e434f17503a3cc90a810256f3f
1919 TRXUSDT Feb 9
864e43530f1c09475dab841ae28b82735b57b7960cbfbedcbb7369989634e1a0
1920 HYPEUSDT Feb 9
b8b23dccf7facaccdfe5a29fc527a3f0bb7ac87c3e3d4a7b9a1bfd0b4b46eddd
1921 SOLUSDT Feb 9
17914c5d071316bb2b77e769e39033dbb976ba08e7fa7973dee4e9d807394e36
1922 XRPUSDT Feb 9
d5a701a63b331e9173e9d5564dad02fd20bc361377b21cfe0e06cb156c9d7503
1923 SOLUSDT Feb 9
7970f2bc3cdade61aa7138eddd4796945dee3331e71810f814cd187eeed1074a
1924 POLUSDT Feb 6
e1968d7e120c3ddc5e758b8772614804135c2f24c6d265a31619767f3cc09643
1925 SOLUSDT Feb 6
9a7bab9ab26b62b14142ffc605c79171b822a305398ceb306181084e05c26edf
1926 HYPEUSDT Feb 6
84ea6b0ee5c92992a11d2b8188ccf76202bb7347323cc86ebf4dc292eee589d6
1927 HYPEUSDT Feb 6
1cc455e2a8a2ae23e1b26fd732f9f9810a610a5a0fc5875617cb2237c917cb59
1928 FARTCOINUSDT Feb 6
e0e8495eea82e5766e75c25d5b766f77b24014554228c1be22cd3ec67dc32db1
1929 SOLUSDT Feb 6
b2a33d2da6e13e8c18fddaf1fb40f8e88228b136bbf3ae9c9606b2443d03bd5b
1930 HYPEUSDT Feb 6
81961d22f9f4ecc5cd47651da6c11fe513558eec5cc28f4010df4e789e9368c7
1931 BTCUSDT Feb 5
78290dc7f72df10edaa5a86781880cb41111e16813faf1d70681427c3113d579
1932 HYPEUSDT Feb 5
b79b5519c0f21f61a6f7637a14073bf26136d1c857730b0be6c89b554d0c5372
1933 HYPEUSDT Feb 5
d7263af8d4e18722f93b97c9041e0f476076f6ba2516724b34d8a41dd6f8a559
1934 TRXUSDT Feb 4
adb59ba48f883a3755a5bd4b98a2121cdd446eb979b1303858ac46e5f7ad74eb
1935 POLUSDT Feb 4
37f092518d8714e186d7b38052e662ee877d4b72139846767d8ad56cea4357d7
1936 POLUSDT Feb 4
40340cf6f1cf0f2909985ac7dbc068085c7d31ed011c90405624d3b8c21b9a5c
1937 POLUSDT Feb 4
7568ee25cf787965130db1b4fd63cc533557816526bf690fd5e5a4fe64a4a55e
1938 POLUSDT Feb 3
d7a075fcbedd3feccd39dbd73177a4fc86239c6e3c1e881a246231167a91f77f
1939 POLUSDT Feb 3
58de6907ec6fdad19d5b21752d2334ce5982d55824b6a38dc79f0225cee8c3fe
1940 SOLUSDT Feb 3
5b7dd038972b4e5160fcf4aef9a65d324e50efdf05a34c24c80209acf38019b7
1941 TRXUSDT Feb 3
72c8a828da324a9e171723ad6313641687d6e8947a474cf23635a6bd77230c8d
1942 POLUSDT Feb 2
76d117dcc5db3b7fa964285f6a3eb3b64fbd9b923ee268f2fe6273e417bd9bec
1943 HYPEUSDT Feb 2
69f805c32ea3e84957dc585b672058ded1fc7b79f58c21ba4b75d17b430a5bc0
1944 HYPEUSDT Feb 2
40c14aa69c34eb4080802125d8ce0e6707c307849c51dd1febde76cbc25affc1
1945 HYPEUSDT Jan 30
b7d31a21c2a70849a24ba273313d0f13206344c698ecd538733d443a5b7ab78c
1946 TRXUSDT Jan 29
12f86d84b3b492e7ad9ed8022e808eb321fa2d221c39883fd67e986e807f845e
1947 POLUSDT Jan 27
431f6a7ba35268cbda2370f4d88e3ff6b1665e449c1217566a31726eea5bfb73
1948 HYPEUSDT Jan 26
889c962160113d97842890d32cd7b1a1f4934bee18e965816040c3522c1dc9de
1949 SOLUSDT Jan 23
c3f5b535efcd28e874020994d9c20d973635edd65e9890d7c8e0f5d24ea75b9e
1950 ETHUSDT Jan 8
f711265f4c2bb2d136142e7212a7fdf3f1c4d31523ac5f782dadd9115e700257
1951 HYPEUSDT Jan 8
f20c8349f9c65773cdc050d733a9ed73efe05bb83cce35318d66ac0a4fe69d23
1952 HYPEUSDT Jan 7
2dd7f6c7be6e0bd448b72ff5b55ae5f7823c77a99e2148fbe53556293ba5c8a8
1953 HYPEUSDT Jan 7
901bb946180951b75984bf236a18d9de9062ea54b67586db368d21c0d894c61a
1954 NEARUSDT Jan 7
eaafc07ab46a6e1de9057ffd65958c359ff9b441a8feadc3f2cb06fb198d0f67
1955 SOLUSDT Jan 7
fd930e24b3d5c83dc44879be757c5ae72c31aa67d2ce3676a80ba8d8b742fdf1
1956 NEARUSDT Jan 7
51c8b5921432db07b20aae64825fc0dffa9da33c05ca257fc23845180873beb8
1957 TRXUSDT Jan 6
9312b1d4a7f666451624e5d38ae79fba52a178da4450be5f8da3221d208c7efd
1958 NEARUSDT Jan 6
9e799aaa36f83d25465e740deafe8d7314d16e9619e4c2f03e83d0ca8958e55e
1959 HYPEUSDT Jan 6
e6daa8e5a9c6b86b3a1ce3a47ea5b13c9baae635dfd468cca829bd92c2b0cd09
1960 ETHUSDT Jan 2
763039f99ab6f574dc6336be79156a0d220cdaee57a502b696d313621289a78b
1961 HYPEUSDT Dec 25
9b6d2efb5f6bf1b03349dce441c131adde532b344b9fe834257e9266b242784d
1962 NEARUSDT Dec 25
c925809e54bd78b32469922f4b962b4c84f0981c7d169e2b034e35e689915d9c
1963 HYPEUSDT Dec 24
d767b4031d41c251d08f3d10af09c61ef1583b9c2478d7580a7d2bb318d0b112
1964 HYPEUSDT Dec 23
7aa8ea17b3032cab3495b4290b8663fd7a9a09126ee445d5ee751dae257e61af
1965 NEARUSDT Dec 23
99ea816cd70ce6d68f0ba3358db3b509ef46843bcd92d68bbd7bde0ce4c54420
1966 TRXUSDT Dec 23
e982b8ecab92d1951a90af96b73281b874eff43eeb21194ed62057924bffcedb
1967 SOLUSDT Dec 23
d90a564535481ddda554cf0e4721601ff7dfab94561191b5b0d45b2c596156b7
1968 SUIUSDT Dec 22
081d4157957b21dbb845885f049884ab03689095ae9cd575be892e40a98e00fa
1969 HYPEUSDT Dec 22
edfcb7733b134abfa71022c3e6454902e18e1b480ab2d9eb1ba127c288c72f34
1970 HYPEUSDT Dec 12
26ba8719d273fac22d5e10d5526b026b6ac66ee7f5c501e5e359b36e54277be4
1971 SUIUSDT Dec 12
6fa71062d7a9ccf883292b00cbc5ea371c93bf572dfbc5f519e50fd65803b633
1972 NEARUSDT Dec 12
f759dcb77ff31ce87b995b6c79bc028445b566228f79a13e20d131c822e92098
1973 SUIUSDT Dec 12
f471b748bb6132adc36cf4f793a03c8608f7cd0ab72a193570467bd36ff4c833
1974 SOLUSDT Dec 12
2cc3d2e540797f182f499981cfcf2b8d92f5d13db0b50b0a2c01bb4c91ac329f
1975 HYPEUSDT Dec 11
6283943ba4718f600455c2927806c9af13d9aeb0a58563c51c0835509fd35327
1976 SOLUSDT Dec 10
ccac8f90b64d3606075be6e55221f29fbdaa33f9f9811e8101f72f471863e588
1977 SOLUSDT Dec 9
670aab4cbd5d9ecb1e731cae75fed4645d40130d4b23866500134692cb7c126a
1978 HYPEUSDT Dec 9
b31f427715c9dfb5f4b3554d32e9a5ce1164116cf57da8a9f30255d5a9d9509c
1979 HYPEUSDT Dec 8
0840d4690c140ff5efdab6c04fe10820625e2fbf85c77ce4f7ec8e38d033a3bb
1980 BTCUSDT Dec 8
50623e26dc5e7c5685ed889cfb60dd59ff266c4bcaaefa687221e0b8f16ac1ae
1981 HYPEUSDT Dec 8
ce5e07df88be473fb87a0ebcfddf4cfa8c2d1884997ee5511aca0952cade41a1
1982 SOLUSDT Dec 8
157ec1cf44cf776ffe665182b1aa3dd5d0747cfe82ed2c5141e68bffe1b185ae
1983 NEARUSDT Dec 8
71203b93a344b9aa4775a0f745d163f49fd40a96eb91b4f0d08120216e299f3f
1984 SUIUSDT Dec 8
c49770157b781fb55cb8231d5117eaa035500dba12f31289b6d84900ebbb3870
1985 PUMPUSDT Dec 3
f54f4ea9cb30305bbf972cdbb9cad5ef39afad431bb855efcedbbe2ab909167e
1986 HYPEUSDT Dec 2
0ec1388d97ced3c1d00c71b2eb79b873004c65cb8f74fe4f7820111f93ed6978
1987 MONUSDT Nov 29
d4f75f3fab9e13c02e844586c7894f5f304d393cb82a9956c65cb95536582b96
1988 SUIUSDT Nov 28
68cfc29f90f479a6eb80d5410280048d4281ba1634c6a7aa1db1282a466fd7b7
1989 SOLUSDT Nov 28
004e92943ea39ecd0755e0a8ed398ade147a6baaffd543807ae36b2663d33484
1990 HYPEUSDT Nov 28
48dab2c1f52c825a2aeb6babc304706ec0fe0bdbb8e63e33bc7c27de36e10b6b
1991 SUIUSDT Nov 28
afbcd63005ed0af9cdd99df3354519c41d35b156d1ebb0ef9b25c2bc8a937e98
1992 SUIUSDT Nov 26
18990680c2ae28205904d1973020ceccd598fa8751e398314de63dd5609f44fd
1993 SUIUSDT Nov 26
acfffba0a572c37660f16112a15b4bc57494b1bd3705995487a381511872a37b
1994 HYPEUSDT Nov 26
679ac0f5ebff6e700470b3ad98ef2ef640564d9e026af9c5a1c01b6555c9a53c
1995 SOLUSDT Nov 26
76fc714f0f0a337f8737054143e1135cb5ba2dc2eb9c840939a734b5b7586838
1996 NEARUSDT Nov 25
ea3731fdcf5b15667fd4bb16dd5ace55a92c763077a7d45abed109127409d869
1997 HYPEUSDT Nov 25
8bc7f7a0585f6245d3ae1cff1f3c0a6d1b644e9d3c39417d7f7b26a4e9459480
1998 HYPEUSDT Nov 24
eacb0238593724d60b109b22cdda35f253f5c1e74e9397edc2f5bf95bc9d0d4f
1999 SUIUSDT Nov 24
5e10dc5d5ffca9983c356a40d85abf1bf3204c9989673d044a8adea0902f58b7

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