Skip to content
Wesprs

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

  1. Fetch the published roots from the feed above — from and to are YYYY-MM-DD (UTC); both are optional and default to yesterday.
  2. For each day, recompute the bucket commitment: BLAKE3 over 0x04 || merkle_root || genesis_prev_hash || bucket_tip_hash (raw bytes, in that order).
  3. 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.
  4. 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.

Latest root