---
title: "Verify the ledger"
method: GET
path: "/api/v1/ledger/verify"
tags: ["Ledger"]
---

# Verify the ledger

`GET /api/v1/ledger/verify`

## Request

- Base URL: `https://www.vestiarion.xyz`
- URL: `https://www.vestiarion.xyz/api/v1/ledger/verify`
- Auth: HTTP bearer

Replays signatures, body hashes and hash-chain continuity for the workspace the calling key belongs to.

`valid` has three values, not two. `true` verified and `false` broken are findings about the chain; `null` means no verdict was produced, because there was no key to check authorship against. `reason` says which case it is. A key that is stored but cannot be read is a configuration problem, reported in `warnings`, not a finding about the chain.

## Response `200`

OK

- VerifyLedgerResponse
  - `data` object, required: The verdict of replaying the workspace's ledger: signatures, body hashes and hash continuity.
    - `valid` boolean, nullable, required: `true` verified, `false` broken, and `null` not checked, which is a third answer, not a soft failure. A workspace holding no public key has produced no evidence either way.
    - `checkedEntries` number, required
    - `brokenAt` number: The `seq` of the first entry that failed. Absent unless `valid` is `false`.
    - `reason` string: Why the verdict is what it is, when it is not a plain `true`.
    - `warnings` string[]: Configuration problems found on the way to this verdict; not about the chain.

## Other responses

- `401`: unauthorized
- `403`: forbidden
- `500`: internal

---

[API](https://skmtc.dev/vestiarion/apis/vestiarion-api.md) · [All operations](https://skmtc.dev/vestiarion/apis/vestiarion-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vestiarion/apis/vestiarion-api/revisions/fd2f589dac9b?raw)
