Published audit roots
The recent daily Merkle roots of the audit log — and how to check them yourself.
Each entry is one UTC day: the BLAKE3 Merkle root over that day's audit events, the two chain links binding it to its neighbours, and an ed25519 signature.
Machine-readable feed · GET https://api.wesprs.com/v1/transparency/audit-roots
2026-07-23
8 events- Merkle root
- 557cc2e0cba0a6a0ef2060b918f328b3e2b19f50e59ff0b072d7d5d1aff42103
- Inbound link (= previous day's tip)
- d02af11736c3ca3ae8ce87c15cd7c93f345b022a3cada78f304fa66806f19c1c
- Outbound link (= next day's inbound)
- 73c48c30a337069e5021c8f94584053f231a0de41feeaaec362f50c3fd66bb08
- ed25519 signature
- 11aa0fdb178a8d695c2f427692544b76f3b89cca0a5b4cf2383b8f250464bd89bfaa3a81e61036f7b514ce92a82673a91aa0b197def7310651fb71fe01a48c03
- Signed at
- 2026-07-24T21:45:12.762+00:00
- Signing-key version
- 1
2026-07-22
8 events- Merkle root
- 2e52985cfd7e08ab9aaf08e506614ef29d386c67264f219dea6b5b53154f56e7
- Inbound link (= previous day's tip)
- 3aa3daf1bf2209734b1969a2e9ec7b3565830466dafe351babf70853acadfb87
- Outbound link (= next day's inbound)
- d02af11736c3ca3ae8ce87c15cd7c93f345b022a3cada78f304fa66806f19c1c
- ed25519 signature
- b9883147425395d5cc9c474ae99b2c2cb7d1ed097eabb5a3be97a52a83c695a55d28ce43e403db3d7066b6b662181e01c42ab2ad1462ba2ba5ef76f8c229ed03
- Signed at
- 2026-07-23T21:45:12.764+00:00
- Signing-key version
- 1
2026-07-21
8 events- Merkle root
- cc13ab08baff586e10d761206b1420d9122775500647b126fb8fa1dacd03e7ab
- Inbound link (= previous day's tip)
- 4d126d471c99d4ae6c143e7b8c3bf85f4aafd26000cd17292527bf31db7ecbba
- Outbound link (= next day's inbound)
- 3aa3daf1bf2209734b1969a2e9ec7b3565830466dafe351babf70853acadfb87
- ed25519 signature
- 5253e27a03006eb30c862b72de537ccd966083017b0315aceb86f048300c00f0f35d0529b59f6770f2e3238ae860ad2fc5784ee160954826a3bd7261ec29a309
- Signed at
- 2026-07-22T21:45:12.764+00:00
- Signing-key version
- 1
2026-07-20
8 events- Merkle root
- 6fb066d73ce244159aa57dd367fe4f5a928c32e4d5de3415cc01c207b184862c
- Inbound link (= previous day's tip)
- b52b59e2aff7eb5beb84112bc05eac437f1b6b9943ecc22579c81ff35d439bbf
- Outbound link (= next day's inbound)
- 4d126d471c99d4ae6c143e7b8c3bf85f4aafd26000cd17292527bf31db7ecbba
- ed25519 signature
- 84840a0c7e11b7e79156412a4db3634d3ba63bdae0d0421e23d7552e55ae436b490d33292533f1906e0e011a7fea9a96c1402a17e53e54425f027b1a14e5d508
- Signed at
- 2026-07-21T21:45:12.772+00:00
- Signing-key version
- 1
2026-07-19
8 events- Merkle root
- 3b70cc6b38280d92a2d2f1c7c0fe7787b300943c082568d12eefcf812c4b583c
- Inbound link (= previous day's tip)
- 0ce47d76b9d5516367166b5a187ad3bbde2ebf4ad560a108a1a59b7cbb269f62
- Outbound link (= next day's inbound)
- b52b59e2aff7eb5beb84112bc05eac437f1b6b9943ecc22579c81ff35d439bbf
- ed25519 signature
- 4ff03f3030807bab98e48f67e36ea62fecb12d0de33bdfbf75ebc901d41b10ceae5ebf5e6ef4129cb0406195d3aac14294b7fb91053f63a099d90831b4bbe20a
- Signed at
- 2026-07-20T21:45:12.767+00:00
- Signing-key version
- 1
2026-07-18
8 events- Merkle root
- fe372a7116b28d9f186f72394dfd5363770357b5d7c4355b7b90799838a075e3
- Inbound link (= previous day's tip)
- ce2e83d06748bc846ff7870c75d980499dfa2d3051148264bc1bd9c37bcfc203
- Outbound link (= next day's inbound)
- 0ce47d76b9d5516367166b5a187ad3bbde2ebf4ad560a108a1a59b7cbb269f62
- ed25519 signature
- 623ee00dd36aa8ac3193aa98fff601c67ed70a4e14e701e67e417128df95fa50aee8cdcf3e5ed7f92e0026696e1eeaa033e3bf22dbbdaff4d7c3d802e163e60d
- Signed at
- 2026-07-19T21:45:12.760+00:00
- Signing-key version
- 1
2026-07-17
8 events- Merkle root
- 5c2d93f5fecbdb0710d610037ac228e8c487ef2c299143042fe7af262386a5c8
- Inbound link (= previous day's tip)
- 207154be158a5b47e89c8212079f371ddb50064bea2610187fe0409c6b1880cc
- Outbound link (= next day's inbound)
- ce2e83d06748bc846ff7870c75d980499dfa2d3051148264bc1bd9c37bcfc203
- ed25519 signature
- 713e9b12a7621a41ab97f7d463ed8d199770a92aa9116bb49bccf2a79a5318d6e20d8a9c665a2c4dfa8c8ba7b19857a123d808f0f9aa437f03545ee7778acb07
- Signed at
- 2026-07-18T21:45:12.758+00:00
- Signing-key version
- 1
2026-07-16
8 events- Merkle root
- a52fe49ab5bfeff0ea928c2326ba40a933ef3e4863745699a1c1689f9cfebe68
- Inbound link (= previous day's tip)
- 8f2563c85295515c2c6f8597f6b421655d18075cc2b2ebf92379cbf808a12943
- Outbound link (= next day's inbound)
- 207154be158a5b47e89c8212079f371ddb50064bea2610187fe0409c6b1880cc
- ed25519 signature
- 1e10eae9b322a2bc4d39d3ede472c393731048050355fb7dbe88e28b9b60a04fde1f82a4607de14cecb7d234c707b210df747ef6bb9667e49c84f3c6f874c704
- Signed at
- 2026-07-17T21:45:12.765+00:00
- Signing-key version
- 1
2026-07-15
8 events- Merkle root
- 4d274a8cb25862d3284af9f604b5fd57c7bc8955c261d5c63c3ea4f4cb204b88
- Inbound link (= previous day's tip)
- 90b32ea94a0efbcae59115fc144c3502e57f4c42277c47eb499a921e6e48f24b
- Outbound link (= next day's inbound)
- 8f2563c85295515c2c6f8597f6b421655d18075cc2b2ebf92379cbf808a12943
- ed25519 signature
- b2c99e7891bba6ca97a05bff38134c47edbefde54d4fc3fb9f5e59a53c3e98c6070ca57459cc15d039f45fb50e923418751ca562269c489b30424e16c4781807
- Signed at
- 2026-07-16T21:45:12.765+00:00
- Signing-key version
- 1
2026-07-14
8 events- Merkle root
- 497bde6b47a537bd37b704f3d18bb1c40ffbe4971a4fcb0b9cf8cdf82b67e1d3
- Inbound link (= previous day's tip)
- 854fc0efe9166b3fc3dd8ad13a7b0e7024603f2269bc6d16c33c9b99340cd46c
- Outbound link (= next day's inbound)
- 90b32ea94a0efbcae59115fc144c3502e57f4c42277c47eb499a921e6e48f24b
- ed25519 signature
- 0bb537f7d61df36766bd02f8195a027fd86a7f9ad5566523b4fbfa06d1e36cbf88f2ff6365508f8aa2cdb7150abdab94822a784e71c355cf0b989c695230670d
- Signed at
- 2026-07-15T21:45:12.785+00:00
- Signing-key version
- 1
2026-07-13
8 events- Merkle root
- 55f1f97eb16b3f5c4af7c8b1178051396cc644483643b2fe9a8167b998903667
- Inbound link (= previous day's tip)
- cb2dadae11829cca8e829d5e842731e2a80a6a7ff2daa6fa294f2a4d1662efcc
- Outbound link (= next day's inbound)
- 854fc0efe9166b3fc3dd8ad13a7b0e7024603f2269bc6d16c33c9b99340cd46c
- ed25519 signature
- 0bd86cbd40c00f28d08ef0d5e3c01e6a696278fe4a7993ac5bb53cdf6e26d55fb5d6b7a53cabdc622694edd6fbec0f720acb9056783538744d6cd57d5bb68500
- Signed at
- 2026-07-14T21:45:12.766+00:00
- Signing-key version
- 1
2026-07-12
8 events- Merkle root
- 030a0b95185ef3f59c507399cb4a3e828b8a10ff3b47641dca000f5be3ad189b
- Inbound link (= previous day's tip)
- 1a9a52ddb88f404ed5a4658b988629bd4bab5b0091f53e716061cd647c6965f1
- Outbound link (= next day's inbound)
- cb2dadae11829cca8e829d5e842731e2a80a6a7ff2daa6fa294f2a4d1662efcc
- ed25519 signature
- 13f256113ceb7763e1ad536a23be357065990243c06c3f5242cc8e01e73178a716a8c56919661c42335cd91a7d9535a55abd073e0563b2d2930c2f68e455290c
- Signed at
- 2026-07-13T21:45:12.760+00:00
- Signing-key version
- 1
2026-07-11
8 events- Merkle root
- af094d671456f5030b1800ce20de8a45977b17820c26d0596b4eb0862efee8e7
- Inbound link (= previous day's tip)
- 39bc8a62dbc6e893650580c01d05270806b77c3868f990ed8e99262f826df4a0
- Outbound link (= next day's inbound)
- 1a9a52ddb88f404ed5a4658b988629bd4bab5b0091f53e716061cd647c6965f1
- ed25519 signature
- e892c88bb007e3148db68572e52a41ae30bc01fd9726259101c46df26c22ff17eac6476346fc38ea40be4ba8a2a04000152320a9e1627f4ab6fc46c283048507
- Signed at
- 2026-07-12T21:45:12.765+00:00
- Signing-key version
- 1
2026-07-10
8 events- Merkle root
- f6c6a9518c69891cbddf6801ede1d30369e90210b8d647f83d5c60e9721c1113
- Inbound link (= previous day's tip)
- 8c333fa17b0e03ffcdab022ad2826ac724c62017b255955513cdca1f70783fad
- Outbound link (= next day's inbound)
- 39bc8a62dbc6e893650580c01d05270806b77c3868f990ed8e99262f826df4a0
- ed25519 signature
- 15fda7b06d4df253061d4935c25ae7602f85f1f96688ae79e0f426c735e72fd81e3981737b9d09d6959123738556a2d90950dd5cfda39a534f6c8a150b2e1b08
- Signed at
- 2026-07-11T21:45:12.761+00:00
- Signing-key version
- 1
2026-07-09
8 events- Merkle root
- 1ad186935df39b1155ae27005a987bf556c3a38ac728fd5d6b589f31c026193a
- Inbound link (= previous day's tip)
- 48cf371a54094b821b6bb9587f4dd2011d862553be7a682a372ae35ec2b93a4e
- Outbound link (= next day's inbound)
- 8c333fa17b0e03ffcdab022ad2826ac724c62017b255955513cdca1f70783fad
- ed25519 signature
- d8db8267e97fb8cb45d28961f8f95a96cb70de4f968c55454cdf88e4f37ff2d15e8dbcf3fdee1965d61396fa2a1305ca3684c64edbcc972705421d2bc7fead0b
- Signed at
- 2026-07-10T21:45:12.758+00:00
- Signing-key version
- 1
2026-07-08
8 events- Merkle root
- 060b4dd2017d21b223c4447b1657cd889aa274791ad7e260437d4112065453f3
- Inbound link (= previous day's tip)
- 28c6f57520534bf49e1ab07fa95719aa1e11d2d9df59127affdce966b14edb32
- Outbound link (= next day's inbound)
- 48cf371a54094b821b6bb9587f4dd2011d862553be7a682a372ae35ec2b93a4e
- ed25519 signature
- 526f8eb022a4d8f837e0372008f353ac9c865a4d9b0ee078e345e6fb50776d89a251a66686546a18514481b8ca24da79cd9b3cf46b2d70ac0b25359ca7283d06
- Signed at
- 2026-07-09T21:45:12.772+00:00
- Signing-key version
- 1
2026-07-07
8 events- Merkle root
- 1744fb048929316d8b658ec9526080e7a97979be8ec6830421c7374e18fb20df
- Inbound link (= previous day's tip)
- 306a114933b9f8c9dcee2e0f2f73106dbd770ab85747c826fcaadd5c703ea811
- Outbound link (= next day's inbound)
- 28c6f57520534bf49e1ab07fa95719aa1e11d2d9df59127affdce966b14edb32
- ed25519 signature
- 0ef83225502a0e57155e358b6efaeffe5b55effe676b0e2dd6ca009a0af135892f1eb67b5648ac15f2fbd2fe9e11da27eeaccf930a76b27cd85d1dc690acbc09
- Signed at
- 2026-07-08T21:45:12.763+00:00
- Signing-key version
- 1
2026-07-06
8 events- Merkle root
- b308046a4db6839db1383e81c2331a708553e478bade1f9f39eadee2c434ad2f
- Inbound link (= previous day's tip)
- 24efa74d198ede1df460c88e530824b2f8d396ddeadc6d7875e6846b73ef5e0e
- Outbound link (= next day's inbound)
- 306a114933b9f8c9dcee2e0f2f73106dbd770ab85747c826fcaadd5c703ea811
- ed25519 signature
- 849a1fe1e8908ae7ec3885752a60eccada7ebd57c83d219d6d392de00065de4992308a57ce7bc8af5e1d2c4e6ff81248012c8d635fa28b4b221623b2199e3f0d
- Signed at
- 2026-07-07T21:45:12.786+00:00
- Signing-key version
- 1
2026-07-05
8 events- Merkle root
- f8d1112f7c64a6693fdb95903bf40a3085876c83563a897e563c0fab1f090711
- Inbound link (= previous day's tip)
- ba7a7336f6aefa34361311c4daa34438cc3314e6007063a5ceb037083e7cb2a4
- Outbound link (= next day's inbound)
- 24efa74d198ede1df460c88e530824b2f8d396ddeadc6d7875e6846b73ef5e0e
- ed25519 signature
- 50b4a28cb1482fa221abcfaea8d31b548427528dc38f2345b1d888841a666ff721ffe76ef3e39b3d9067ffcff9e2fd37ee1f428fda64a997dc9e8d3e9cfe570b
- Signed at
- 2026-07-06T21:45:12.761+00:00
- Signing-key version
- 1
2026-07-04
8 events- Merkle root
- a1bc6e2b8b59e51f100d1a3823d6ecfe13485adf77c65fe14f1c67e8e302baf8
- Inbound link (= previous day's tip)
- 881b2cd2ba07cdbb0db84c3ae1012e1f695674867ae3543ba92cdbb90d83f889
- Outbound link (= next day's inbound)
- ba7a7336f6aefa34361311c4daa34438cc3314e6007063a5ceb037083e7cb2a4
- ed25519 signature
- 5eb18d65bfbfa663ca63dca49f966e253c0add722896639bfa7ac62a90c908f62e6ba9ad620481442a136cb38aad2d8dbfc12d4427026fd7a9b41c3051681002
- Signed at
- 2026-07-05T21:45:12.789+00:00
- Signing-key version
- 1
2026-07-03
8 events- Merkle root
- 39ba4f717b440231b317344227e0835edbb1dae6cb63bd4f78fb09babe146d2b
- Inbound link (= previous day's tip)
- a5088444c7a49ebb2b9d72437c8919afb8abc5cad2b69d206287ae6d4b7bf58b
- Outbound link (= next day's inbound)
- 881b2cd2ba07cdbb0db84c3ae1012e1f695674867ae3543ba92cdbb90d83f889
- ed25519 signature
- d351860e720655862cafb377526e94de4f461b232f140365144bd9b9a543d443c4925bbb532157e6cec1c907981c81e43f1e09bf97a8f2a6641c4505c26c9f03
- Signed at
- 2026-07-04T21:45:12.802+00:00
- Signing-key version
- 1
2026-07-02
9 events- Merkle root
- 31fa853dd58d02f899b3ed49b7aac8dc8e2b6736c9c2c63ae1a314a18c91609b
- Inbound link (= previous day's tip)
- 7e9753a73e6e835aa3e9b958e35922aed0f37a4fb720f7bf5f3a8bb6a37261b6
- Outbound link (= next day's inbound)
- a5088444c7a49ebb2b9d72437c8919afb8abc5cad2b69d206287ae6d4b7bf58b
- ed25519 signature
- df44b642468c67be8bbed3bf5b7391ce439eb9cfdc817ee22632a3c058c35f9274af0bb096cf37cc7684242065b7aba94e2729a368e7d2c3563c01dbb9dcae0c
- Signed at
- 2026-07-03T21:45:12.762+00:00
- Signing-key version
- 1
2026-07-01
8 events- Merkle root
- 4315f92ed8338814a7215c0ffb66ee7f0f6dec578c49ecc04aaaff7868aa2206
- Inbound link (= previous day's tip)
- d43209dd2023e2c84de0cb02cc8bdd782de0c07ac5cd0d60717ad3b4142dc14f
- Outbound link (= next day's inbound)
- 7e9753a73e6e835aa3e9b958e35922aed0f37a4fb720f7bf5f3a8bb6a37261b6
- ed25519 signature
- 13b11df01ebaf9fe64c6ca5539f441fed04171032a8467151ff8adc1da9c36e894a1f57211dee0249af48dae807ce493e86c0c2c75ab533f344c121413d88e0f
- Signed at
- 2026-07-02T21:45:12.770+00:00
- Signing-key version
- 1
2026-06-30
8 events- Merkle root
- 66a85075c8ee016304717708328df91a5c757851eb973084b854018c36cc0118
- Inbound link (= previous day's tip)
- 98ffe4f34f0d96c3f6a9f36788e7b5752ea6de7dbd1137296c56035d0c33d54b
- Outbound link (= next day's inbound)
- d43209dd2023e2c84de0cb02cc8bdd782de0c07ac5cd0d60717ad3b4142dc14f
- ed25519 signature
- e1a7212dfd58fc16c1cbb78bc90c9ff08050d6a4db4677b0ec870007fe38a115ee7d7646a7605db9b7cc87c8fd85b7fabad4bb48fbd9f5b602cb978c4534e100
- Signed at
- 2026-07-01T21:45:12.791+00:00
- Signing-key version
- 1
How to verify
- Fetch the published roots from the feed above — from and to are YYYY-MM-DD (UTC); both are optional and default to yesterday.
- For each day, recompute the bucket commitment: BLAKE3 over 0x04 || merkle_root || genesis_prev_hash || bucket_tip_hash (raw bytes, in that order).
- Verify the ed25519 signature over that commitment against the verifying public key for the listed key version. Key publication begins at launch, alongside the first signed root, on this page.
- Chain the days: each day's inbound link must equal the previous day's outbound link. A rewritten or deleted day breaks the chain — visibly, from the feed alone.
What the feed alone proves: the log existed in exactly this shape when each root was signed, and nothing published has been altered since. Recomputing a root from the underlying events is part of the independent audits we will commission — the events themselves are never public.