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 9, 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 228 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.

22700 TONUSDT Jun 3
e269fdb19bdd8cec7089b8500c78102d613eb98583cbff87c6e4a4e970d4e199
22701 ENAUSDT Jun 2
079adb9339a1a74186faada1650b20f9d36fb224ba6c887461a3be6c49220521
22702 CVXUSDT Jun 2
e9866ebebbb3d86223499f1eef9856b453067055822ed081336805353a69559b
22703 AGLDUSDT Jun 2
dacc18d5e1bebcec3b07f79e24a4544cf9fa5d8ebb27e2882236e8690adaabf2
22704 PYRUSDT Jun 2
85d123f59d378777c11e294eaa46244bb7148b9d2eb287cc98635f853298207c
22705 ZROUSDT Jun 2
e5237f02643d6fb3189443a205ab935a8d5f20ef4484df791b5a0dd2a9a18bbe
22706 XRPUSDT Jun 2
5e6611d33e3569c1876a6a726716a578a140d540e7be788df682cf1bb2375052
22707 RIVERUSDT Jun 2
6cdc1834855762d5a7cfb41d5c3a59932547fe34ec130d449edb39b18e37bf9f
22708 DOGSUSDT Jun 2
f49f9040e06ea72ff78fba23dc994b8a570ad1bff039bfae513d038e0596128e
22709 BTCUSDT Jun 2
99991d59400d7b8f47382b2af37fec8f3aaf83a4b8a1edb1566d24808aac1098
22710 VETUSDT Jun 1
5b5709be67b393fbb1ba3be38ebd362da62468731248df5b80eea866a9a539f3
22711 LPTUSDT Jun 1
2fc9778301b89d5d1e1d5f2dbbf95aef2271be0bbc1ff6b63ee8760a76ec753c
22712 TAIUSDT Jun 1
ee3b271211669bb02096ebe7dfe3639a80a120eef5671af67e7ea8ed8d32bde6
22713 MYRIAUSDT Jun 1
da9538323cdaf075f9e15832340946350a3da1d27c2472e1d666540bf209cd7a
22714 MAGICUSDT Jun 1
db410bc9ef6415556216ee7185b8319ccc3467911e32ed645f2d62c83420b0f5
22715 GALAUSDT Jun 1
39a77c62b51a695c906d1c606fdc6e0f3742a086c53f579d90c7620dc377cf6b
22716 XRPUSDT Jun 1
dcff4adccc75870b1b2d3e1b103297de45f48fb304ebce53300ab925a6fcfb53
22717 DOGSUSDT Jun 1
3f8763a97988dc642ad6adf7fd0f3d99affe6f41cc532194c5d4892b8730c6fe
22718 DOTUSDT May 31
45060fa4bd72cb4b730543693eb73503ab86f9e1cc3dcfc8f9fc4ab5ce2919c9
22719 CFXUSDT May 31
d40cd58609b01e5a55ba039b6cee89b97874f393c21f9a4691a6d8ccc13d7b45
22720 LDOUSDT May 31
9d4ad0d572657f7f82c7de6aa7f7f9b7c0fd1de910c86bfd29b9bcfd3359a859
22721 DOGSUSDT May 31
9a22dff3d265bc47f88ed058aaf2e6e8949a7506a62158686d87bb94c6662ddb
22722 DYMUSDT May 31
60851d836711e92bfe4834dfcafd50aa46c4f3c0bd5651fe5ab7b4fb282cea5c
22723 TONUSDT May 29
75ee747899989537706d2da0cbec5d69d5eecf7736194d76a907710e759f2492
22724 SUIUSDT May 29
684c363e1b988cd3b861a9ca87626521d0c906e2a221a77ac77ecbe11c200f11
22725 XRPUSDT May 28
7576fcd203375409b455fb268e314f4b32002ee2db5adbc92a4ad16605a01006
22726 FLUXUSDT May 28
0c9935e1d9c82b909cb522c05ae4236dfe0ba36672f3a9a9ee33244d671e0d28
22727 ETHUSDT May 28
88a759604475cb43d62b64e88cbacf2e687648e1d5a39312419f6d4a4dbd5c0b
22728 ADAUSDT May 28
16c06022513cf38378afaa8c39beaaf7c7b08dcc4f92aee91e256f82e1160980
22729 SOLUSDT May 28
89d3b8270b133c1e739424248d5b0180232637eb0a0b77eab08e83158a7e904e
22730 PORTALUSDT May 28
abfe076c751795c149161d5f7609857d9816f5b31b64cc7008b0e0353984ad53
22731 BTCUSDT May 28
479eaa6b1ecf02734408525c85dd6afe887798bc82f7785dc3038a6627231e05
22732 NOTUSDT May 28
a6455e142952e4d34452dea342ab7d94303c673ff011f49d8bc12f4bb2129a71
22733 AVAXUSDT May 27
c59c73e46c4b0023cbc38afbf2e1c2a7aa6e9de868b23748cfa833ba74cf4b56
22734 ZROUSDT May 27
fe3f257abae8eb66dcaa73491b37a3927f55d5a8cbf200649529ff7164fd3757
22735 ETCUSDT May 27
8efb0203ce90224c6acad7198ca328888072a53897cb52908168929a257aaadf
22736 JUPUSDT May 27
c99722644adfb99e345aa37f1870d3fb8229749e833ae2860546fd3354fb750e
22737 UNIUSDT May 27
869553e098ee78f83d4a9145051f7d47177501a92de35138c19caacd2c91fcba
22738 ZKUSDT May 27
4c52f788022ef44700ebc59e334a085799251c83f2bc0133955a8e41de8d890a
22739 PYTHUSDT May 27
f4c8fd5accb0e22a7545a87ffa966876ff756f7c2fd57893293d0d2119fe3d23
22740 BANKUSDT May 26
577a4c4885af3c4671c5f0bc67a2d5e0fd052786aad5ff1999ddfc31b94d2b8a
22741 PEPEUSDT May 26
c16f69bb9225445f1600e5c9e49147af4ce476acf671c226b9977006f20dbde8
22742 MANTAUSDT May 26
9738cb751716100065a5dd9ffd5b574b1352338155e0cdaa194d95d60b9e4ce2
22743 CELRUSDT May 26
95b34905d7104f60a8b313b1c1a46f83d09fdee126e94463d8a633ffc7346371
22744 DYMUSDT May 25
38e524d36bef898ca28ff9811592653333570d2c8c2ed2b5682310dad4a6b4b2
22745 DOGSUSDT May 25
a08dbc85c79c74c67e5b83759f19bf1e9c65e72c1aec69eb7c3975397f958b6f
22746 TONUSDT May 25
f2e669fadbcdda2dad75192961e869c3e987f60bb20ad6733a15de0c14dd991d
22747 ARBUSDT May 25
d7bf39763876253c09c19efb1f25cb4f70cc92dce689bf9c350a2e0c32621648
22748 XTZUSDT May 25
74fcb0f9d9fa0ee982d1d045723dc6a09bba635d4c9ea3c0f93be7117a99a432
22749 SOLUSDT May 25
c2932dc560540497d46ccf31eb157fa951f2b19cd766fa17405544a57919a824
22750 AUCTIONUSDT May 25
b7bef9b57527c49b407e586e6ef13d0996fe78e1268fd14edb33587952d2f296
22751 FILUSDT May 25
a24f8d702cabdf2f518f99f4934d96de70f1a86f1a851d35de8e9bbe4bf5a367
22752 OPUSDT May 25
cf41bad29d2b012bb93e926452387fe02e81fcba51b7947c9944fee1784d01bf
22753 CHZUSDT May 24
fc0d216766c70d04f7324d812a4ce09602edf162f0fa79eba149fecbc8bd8668
22754 ONTUSDT May 24
6c6e7af20adc8b935bb6491eb84e3a84120ef2e9f9738dd0d279eba050e55b1a
22755 CGPTUSDT May 24
1e0867a7bbb5a60d7c2f8cf64d54964bd3a8ec1471ef85372c0b60874ca80bd9
22756 JASMYUSDT May 24
7314fceb56f4c146ace11a9411517206aca72072ce0421b330fa05d897f8c5c8
22757 LTCUSDT May 24
36366d85c64c94c59442455158cc91f34c3f38d0971c1b8ea68d3b55cfa3c287
22758 MOVRUSDT May 24
20ed87c85c6e40b7ed78bfbd588aa62fb5c07aadbf1b03630102fe694ca67afa
22759 ENAUSDT May 24
c66a7761b894af83864e6ff3a0354b983751e46d65ff6f6b0dc6afd7624eee1c
22760 CHRUSDT May 24
ec5bf05544ca41939e6a86f5fe32ac67449d8b9565f88831b2ac55749c2c63b9
22761 AGLDUSDT May 24
318c6bf8dd0a1930108da6674c747944a6b9756de7bf85496020fca726d0e7e4
22762 ALGOUSDT May 23
489d0980612c0fae0ee4dfd91362e2bc87608ccb90c814334b6a073b3ad856aa
22763 FILUSDT May 23
c1057718d06a2b48d0a2dfba9589da152d6bf7b2fd8d9edd08eeb92ddd6c5680
22764 OPUSDT May 23
3b8af175caaa49ae794725a09f7f19f0d7c93f477f6248a93fa4aedf787ba2fc
22765 AVAXUSDT May 23
80fc7577e55df2731264ef96458c7cf02c6b5efef9a2149635a9d2c121739ebf
22766 SOLUSDT May 23
a0feef282fd8e0daa84e45de33f0aa8a3b104c15f0529f714c16272e3219515e
22767 ZROUSDT May 23
d48ad6f308d112133d7843e42c695e0e3042eea94f38dc329fdae061552506a8
22768 DASHUSDT May 23
c9fafa94207863feb69f32eefec9be2bdd6d1ba3323ab02d81f3aa94586bdfbe
22769 XRPUSDT May 22
b985c5626b3512b37f1b6f6de5cdab5edd54041da31fdc9a7e4231ffa6db7869
22770 GALAUSDT May 22
08c0a8b8016e0600f517dec1c901b51c8b257fe2868091781843bba84e600dfc
22771 ZRXUSDT May 21
f7f3280231af170c77ec73d338b8bb800d69c21ddaf409ef9a7a63d28c8d4f7f
22772 STRAXUSDT May 21
a1fe2083c76459c2a0d263aef9ce0454104c50e6864f903bf6385ff830ad3188
22773 SKLUSDT May 21
d00e79570284fd2eb9ba2cb4a964d4cd3cbbb49acc9e515d421bde0258d73469
22774 DOTUSDT May 21
b8029ff0674a9b6d644af2f47ad2bf48505d83336fd7cdcf91e33540418aa7a0
22775 CELOUSDT May 20
f7d1402ba919d56f6272a8b67b2dee945503b86169e871a95343bae4ce4a5f08
22776 DOGEUSDT May 20
3d246a7de088311c5f4c8a8b1fd6893bc460cda656d5dd72d0389d59fd51e1bb
22777 LPTUSDT May 20
9cd7db603238951662d7b657cdcf64a8c15ac4c2135a953274df03ee70ae2210
22778 XAIUSDT May 20
5e9440b14fdf0c039331b4eb12b78df57ebe88f50b76eebc8c811e484e4cfd81
22779 ICPUSDT May 20
71802d60644e1d04ae7c5913bfe7ccefc449ab361b047a0c72606befc4ca0dc9
22780 TONUSDT May 20
d22ee15589f7715021df4810057379bd374f5d41cb36f56f08b8a5fa8dcc2b3b
22781 BTCUSDT May 20
bd1cbd334d0869119c7315026deaf1e56522fd7f35f1b91c053e79d6b0b1a5df
22782 ZILUSDT May 19
33dc8fd165e404d11e254e78fcc77951a2e0a225622b8a8109c3ce16189803d6
22783 SUIUSDT May 19
989eb6f7ff359aea9403a5df097a932faa7b62ecac20ad08c2663f4bb9ff2227
22784 PEOPLEUSDT May 19
e5eaa82bb847780ae540ee8235227ec0874947c09a11d625a875255cc5516d00
22785 CFXUSDT May 19
9745a7f08542f343d5e1f60ee92d3f499d3c24faabd77acf645d2ddaf1e6470f
22786 CYBERUSDT May 19
5d4a8441a5f7fe5b35ce85667852e98b54b99dabcdce988efbcf6ce8a82ae7e5
22787 XRPUSDT Oct 4
001f7c5c5af5ec76f1c64a9d22ae745a5e1b3cfd3dc9588598a192be88653161
22788 NIGHTUSDT Oct 4
e9af6288eaea2d3448825c0960d0beeda090314f5a9a994bddb12dc9093de3a5
22789 BRUSDT Oct 4
782132ddf71a70f50f03bf25d514b2c3e55f05546f56f7978fd8079501959e5b
22790 BRUSDT Oct 4
9948dee0299324e06b0ea5c6ac6a7152dade429b10dd32f355d4db556146ffc9
22791 BTCUSDT Oct 4
dd850073c14307292f22af9a2e8a84ea11921c2a6ecc5b51b9bda03fe9cc33b2
22792 LYNUSDT Oct 4
150ca7209b10532e53cef22b56a08d81a2afbf303f225f2133fc93263d1a3830
22793 LYNUSDT Oct 4
3d6d0253f4edd0034bb1f615de0ea7d21009aa8635a7e74ded11d829ef6c6dfa
22794 1000CATUSDT Oct 4
f3d08e6916c480a091daa200108e65167412015e938448726eb6ac55dda95435
22795 BNBUSDT Oct 4
1c3501acdff55f4eb1d1d97288d8347ba27fb61623d913e45c9ed7a1582116de
22796 XRPUSDT Oct 4
b1f027df0c52df5b3282dc8c15bb20212d7f5d04d03569685e5dda5d78a44ccc
22797 ASTERUSDT Oct 4
f0dc027d1b9c73d6eb9f60ef1f3bff55ce1ab5d78c1648ea69b1119a550f3cb2
22798 BNBUSDT Oct 4
8d882efecf1af00d98d93a15c59d580f01ca7648f2188da8fde808e3322f7ef0
22799 XRPUSDT Oct 4
2f26b2bc9655f89d19c0068eb5c4d2578bde66628964d9eea0bc60fe8c76c92a

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