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

2900 BTCUSDT Oct 23
819ee4314f3afb9092951c91df50d2be666ee47e660de2a2bac85923d027b7d3
2901 BTCUSDT Oct 23
6a78aaabec30ecdc926a136aa37b6f198b700189d3d98ba35af2c1c58733603d
2902 BTCUSDT Oct 22
9b60b6c6ba15e60b2db35565f23eb87ad22014cb2144bfb3e62083732f44f3a9
2903 BTCUSDT Oct 22
5c09b087e7bcfc66e657eac9b22a293dfb9f7fff5ed22d4d179cba35919e0485
2904 BTCUSDT Oct 21
3cf5e00d2840d474bb43f584d8c8e1ae23a3fd77d2e6161fe3394babdd35366b
2905 BTCUSDT Oct 21
ecb998e7d0f3b64e4cfc1706b4949255ad371995a42f2af42db686d82fa57049
2906 BTCUSDT Oct 21
0d7c5d0a60ad641d9bdb9227d19ecdc25efa23959f5fe3a96f18bbe9abcf3db8
2907 BTCUSDT Oct 19
9f040bd7f5d59b8808a03b465937d17c70d202af285884d52dcc3c569a66a1b2
2908 BTCUSDT Oct 19
6a74ad582c41b9edc8b368da2df58f8b40b4280f57619dc3c2fe093c53389bfc
2909 BTCUSDT Oct 15
dc13b14d80b76458b0bfa28db58f72a327c0155a831d1846622f06995d97e9b0
2910 BTCUSDT Oct 15
9561b3b6c3c8711af6df1d16336f9aaa3437c2eb0861116aed37ba34d341afee
2911 BTCUSDT Oct 15
54208236501805278a6b227f3a52fc03f63aeded848c859aa7e05a7c25abf68c
2912 BTCUSDT Oct 14
ba84bf93288b640937361ef3fd0cc98285b803cb9255e37c20f1b3b6b364271c
2913 BTCUSDT Oct 14
c7c8fdc7a410534b83c0c6959b0a62acfb2fef4d50cb2de8019dced75ecf9206
2914 BTCUSDT Oct 14
db38d47caed3461c7351cf9b808d50a09e9b624c4cbce61014d5aa34a12cfcfc
2915 BTCUSDT Oct 14
f07217632ee099c87f2b9ea90f96b797a106bed25b5df5aa11f5dd7b952c2f2f
2916 BTCUSDT Oct 14
bbe5c67d0d05470ddc97be083f341c0802bb44974d8e2b7ee723169b66b7dad9
2917 BTCUSDT Oct 14
ebd6036bb5d40f4f73ebe86f223b0b0b6750c7cb6d22d32182314dffd58948be
2918 BTCUSDT Oct 13
6c7ab14ce6045118156714ec4e56fe2b47b1410bd31c6ef198becdfec388355d
2919 BTCUSDT Oct 13
ad2150706c7e3432b473a85e1f53de2592a70fee4f6bf95634a74ecc75255c7c
2920 BTCUSDT Oct 13
9463055b843f7d533d7a4939fb232f99cc64295da5ecbb096623def16b136999
2921 BTCUSDT Oct 13
4b903ec272b925e210e71724bc0b6ed47a917a10f0a62ffd82ca0f216e22ed18
2922 BTCUSDT Oct 13
c221a6daa8ef8826d0b9a6b96fe592b832a86f71e06a30277b17b460594f3134
2923 BTCUSDT Oct 13
101852751771753be4356595838ea46f7d9d9f654779a97a1a4d5bab74b06d4f
2924 BTCUSDT Oct 12
b019621f1acee8ef1f770af3fa89c32c3a352f212ef37efa2141dbf19fd65175
2925 BTCUSDT Oct 12
80589fb8ecaf1c2c6620ae74842847e91880d251d283a2ea325fd2df8794d372
2926 BTCUSDT Oct 12
74138388133860e3e5baedb3cefe04f164cbcaf1c05b4bdeea6d2d580cbf109b
2927 BTCUSDT Oct 12
9f2febb44c82ba2c2265eb491914c9bf2356a22796df50cd6af9d2a0044555c0
2928 BTCUSDT Oct 10
9fa6e7e8649ef6ccb364538cbfd994a749e71b78969bf3ceeb9ac431f16462f1
2929 BTCUSDT Oct 10
baf3ff97599aeff5ec8a6d6f76705d4d47e0ca64f9800a26328d0e4058cc32c0
2930 BTCUSDT Oct 9
f7681c222f7990cec4d0ca93174b5f0d275e99ced2e868e251fae9664602856f
2931 BTCUSDT Oct 9
031664f868edcdc6a8103886784d10be7c8a4473f57c7dc121daf51d99a76f99
2932 BTCUSDT Sep 30
8f897d87d3ce399db214f86038b67395c678d150b5272a7cb243f2eced83adef
2933 BTCUSDT Sep 30
389595825dfefdb77151a2c2ccf70dce51a6cb5ad71e73b877dac5649c6369cf
2934 BTCUSDT Sep 25
f5bddf72f3afcec60f555debe6f5b3de15eeee436979c83451e97dc9dd53c169
2935 BTCUSDT Sep 25
1b6130062f40173e255f73661c1484138dbdc2b1cd3ae43324020f4a62cd31a2
2936 BTCUSDT Sep 24
fd69ea7d9e2cd8381d1102ec07090cdc17c6a6710fdf2ad8cdad21ac0ede84ee
2937 BTCUSDT Sep 24
2b2e61fe02276e1a1212a7321a8d50f949723c3fda5e48b769d16d086fbd8ed2
2938 BTCUSDT Sep 24
869b598e632ab70b415a675f3fcd5c35d6c9f7abc762a7ac4f71a7ae3e798582
2939 BTCUSDT Sep 24
f3f6a824cf880917c51813348db25ee72b0a44429653c501673127e19120f90d
2940 BTCUSDT Sep 21
77012bc8cf20e2247f480f77a317c98c8b0fcfed065bfc1767df341974800918
2941 BTCUSDT Sep 21
c83042fde7304584c30d71f7a1a28bece578ce6db359ed50d9148f99e3cc25db
2942 BTCUSDT Sep 19
710d2195e1cf91ab3cfe1ec550652d34357e348a0706056682002de687b18abb
2943 BTCUSDT Sep 19
65f9d62a471c8a1e9c5ccbee758cf1100bfb7bdd61f5076677df4af8543f6caa
2944 BTCUSDT Sep 19
369cd8983512e73cc063f913b326b0260a54d8c5ab3528da0bac40bd84d1102e
2945 BTCUSDT Sep 19
8676d00ca4e5785313697401d603e1682246698c7abc6d7047f711a16a7bd771
2946 BTCUSDT Sep 18
7c1e50d06cee1a5fb3f02c87a824a793eb6aa795b3a894f3b05cc1955eb81822
2947 BTCUSDT Sep 18
4326f7bfb646e1f308961bb3fc8b1886606aefc5e9963f8b850802bddcca3bde
2948 BTCUSDT Sep 16
4a489f550622f8772ce6dd07b636b0a2501ae7555cc853f9854389ac8f5ddd34
2949 BTCUSDT Sep 16
fa52ce67d8e4ed5b12db2ba540899a62ab3d0fc644d11f93d1ffcbce206898ac
2950 BTCUSDT Sep 16
056ffdad97170563d5fda57c714f628a0d2f60cac6e3f2c89352e8360bb5f395
2951 BTCUSDT Sep 16
bbff946873e432c9fc483c9346f4c25050c88b9d794316676b627612da90a1b9
2952 BTCUSDT Sep 15
9df95cef97de329104424f16578d4f5b0487287a02fef2a61226338d6b5a05f0
2953 BTCUSDT Sep 14
a892fe48ccd2172710038627abd9acc0b501baf9779a2509119b52b411e08ac9
2954 BTCUSDT Sep 14
88bd14fd98870e3d55acfcb66d4bd09116c2c87a59c50595ca7199c30d531d90
2955 BTCUSDT Sep 11
07c44bf02b5bebe828606317ff17eb3fb4d831ca69892a989a7b4f3cf4386891
2956 BTCUSDT Sep 11
ba73174d0c7e54df0159ca606f464dbdb62b4c49ea66c7a109cf8867a9d3f50c
2957 BTCUSDT Sep 10
c272a8dbe296a15dff6de85acf310f4d6b5e37dd950aed9434425322971b6f0c
2958 BTCUSDT Sep 10
0641d39c841001e44fc14c7314ed94e7034b3771d45bc2770e55516fa7e3225f
2959 BTCUSDT Sep 9
962d76f12b0b641eb1111975b6cc0511b3b036f059a9a32b540dfe32619bf2e4
2960 BTCUSDT Sep 9
62a50e9461868c0c955ab65c73958828d806ac2662fb951b1f7ddff03ac1ebb5
2961 BTCUSDT Sep 9
8f6a8369dabf5b1ac8e16ce73d868f203d534f08debb3a97a72a903934c8381b
2962 BTCUSDT Sep 9
158a295ec4e52f227842f9a3ccdb2f3abead70c219f0aa8ae9bbd493da767fc6
2963 BTCUSDT Sep 8
d0cefbb321b97a84231898b8f37e730276f47531c5c49a17168454555ff79a1a
2964 BTCUSDT Sep 5
a8ac14af1b9a5e635d62cab16b5489a1d7023dd871a7dafbc9893af7df3eda29
2965 BTCUSDT Sep 5
c98e92f2fb5747e9f70f97f7182f84f7ba694dd6b34f19e35eb6778c92532a51
2966 BTCUSDT Sep 4
cc774d5bc5edae30503400963ad81dc4cf9f7e68aeb27b723704631f68e5f014
2967 BTCUSDT Sep 4
c57163669ccdd45a2dd93f0362a0a35e0f0223df64d09876e789c84f7ebcf32a
2968 BTCUSDT Sep 4
7847e78d4031950e78d49cd44179b3fd10dd199ee94caec6011e2ae387911ef6
2969 BTCUSDT Aug 3
386febb19d658134f9c60c13e4cffaa37a5580c7940f705d4fe3cef4b907aad5
2970 BTCUSDT Aug 3
49366b7976cbacef6c822f8af9a20092f785e8bf5273c19f00800771fbcdaa65
2971 BTCUSDT Jul 31
fdb73945a81a6414d34b5486b19fdc47271e4913568aaa6a3a4504a81565eaec
2972 BTCUSDT Jul 30
1c37bd0abb0c9d2b94e184b0677f35990a2d352f38f60a3008c9aef6c8453d31
2973 BTCUSDT Jul 30
e89e00f2eec55c73a891d4d7ad4b51f472cf214188eba147771afdfa04b3be49
2974 BTCUSDT Jul 29
350f20c1dccb9339d36b47e36e264fc7354a8158af6d62f55eaa9c1861297a14
2975 BTCUSDT Jul 29
49b90cd5fbd52f2c218137061d400c2641a4b6f2b6351e630d6d6fe36e86c7fe
2976 BTCUSDT Jul 29
4d12e6a0647fbee3d34604fe591cca203ac6276f362d56d68ff3d251ab31ea4b
2977 BTCUSDT Jul 29
ab87e128d16bb2d8e438d96726dc99cb1624ed97ba4861bd34a2908ff863ef7e
2978 BTCUSDT Jul 28
077b9bf811a898c96958b2e3e8a652d15efe2d53eb29a0740c2aaeb4f97625cc
2979 BTCUSDT Jul 28
b891ba0bbff522a846eca71a0bd4aae35f1826bf7f1113ef53555db9e0b747a0
2980 BTCUSDT Jul 27
a2f629381f0eb0ac4fbce68b3394def1599383010ebca14d3eeb1b3bd8f88055
2981 BTCUSDT Jul 27
cbd46e10a460907326ecbfb2c42251d23dd18d6ba187d36e909185eeff9db9c5
2982 BTCUSDT Jul 24
51d6694454fcb707219c59fd857d5ab4c38667716062ddb9a71fb3c941889211
2983 BTCUSDT Jul 24
f52269bfa1407bdd1d3dd070cf796d09edc0e5be78e94043ca08404638dd29a1
2984 BTCUSDT Jul 22
c866482b4264b1ba1c53f3ed15c72e72b32f6cd251cd9709c4f9cf3f086cb0cf
2985 BTCUSDT Jul 22
8a30b5ea97734b006550ed663143df21bfafbe8360f9f310287f7fd94b15ec6b
2986 BTCUSDT Jul 22
df1dcb1608ecf240395a5907d67de6e5f71f51f067bb0aa68921eeb8e7d5b6ea
2987 BTCUSDT Jul 22
1ccf2d39f0b27b35804f1bdfdee534715e3f62de53a6f6604158d6fd13ab50c3
2988 BTCUSDT Jul 21
d48c64b866399ceb15651307d930531db1bce0ca6b3ff5276fd96ca7fcf08e5a
2989 BTCUSDT Jul 21
56e6e9c898d442bc1c4e70040ec7e83833a162d2d6ef8b23b8bd34394db15d02
2990 BTCUSDT Jul 21
174186cd33508d43e8e1a6096dd15814f8babbbd132ac0293dc609753560d5de
2991 BTCUSDT Jul 21
b0b7b7208e52aaf14f188e7f3edd4dc1abe9a860d3a9426b1ce6063ec9718fac
2992 BTCUSDT Jul 20
a58263a3a2551dfdec648b288de2564f1aab42082d566b1bfff462801ecb8885
2993 BTCUSDT Jul 20
d4dcfcb5f90ec060efb4e63f1c7e2baed6bedb6a5baa1e57f04d9caad0b61dd9
2994 BTCUSDT Jul 20
1257c603b94c7fbcdb7624d53f7924a0a26f3233d95219959a388b6a2aaab068
2995 BTCUSDT Jul 20
106edaa139bd75bed91d16b55abab2b82a6a3e8695e5b241bd5a9a4d9ea3df82
2996 BTCUSDT Jul 18
fef54751aff259048408426ca384ab04118891ef18b4fbd3cce7e3eaa2fdf4e6
2997 BTCUSDT Jul 18
f21cf45cb9074fd58236e63e5b82a1e6da3efee5516a2ce6fe31074fc405f4fe
2998 BTCUSDT Jul 18
e81202ca7c3d5c5e02997b33f20f90678c786a4fbc830ecc03b536571fd9b109
2999 BTCUSDT Jul 18
db8ca1c1e546838254ec47772d808b8084644ff1b014a8613ff7df9d9c98afa8

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