Treeship
Hub API

GET /v1/verify/:id

Run server-side verification of an artifact and its chain.

Request

GET /v1/verify/:id
ParameterTypeDescription
:idstringThe artifact ID (e.g., art_f7e6d5c4b3a2f7e6)

No authentication required.

Response (passing)

{
  "outcome": "pass",
  "artifact_id": "art_f7e6d5c4b3a2f7e6",
  "payload_type": "application/vnd.treeship.action.v1+json",
  "signed_by": "key_8a3f...",
  "chain_length": 3,
  "chain_valid": true,
  "checks": [
    { "name": "signature", "result": "pass" },
    { "name": "id_derivation", "result": "pass" },
    { "name": "chain_integrity", "result": "pass" }
  ]
}

Response (failing)

{
  "outcome": "fail",
  "artifact_id": "art_f7e6d5c4b3a2f7e6",
  "checks": [
    { "name": "signature", "result": "fail", "reason": "signature does not match public key" },
    { "name": "id_derivation", "result": "pass" },
    { "name": "chain_integrity", "result": "skip" }
  ]
}

Response (verifier unavailable)

{
  "outcome": "error",
  "message": "verifier unavailable"
}

This happens if the treeship binary is not installed on the Hub server.

Checks performed

CheckWhat it verifies
signatureThe Ed25519 signature matches the public key embedded in the artifact
id_derivationThe artifact ID was correctly derived from the content hash
chain_integrityEvery parent reference in the chain is valid and unbroken

Errors

StatusBodyCause
404{"error": "artifact not found"}No artifact exists with this ID

Example

curl https://api.treeship.dev/v1/verify/art_f7e6d5c4b3a2f7e6

For trustless verification, use the WASM verifier at treeship.dev/verify/:id which runs entirely client-side in the browser. The server-side endpoint runs the same open-source verification code, but you are trusting Hub to report the result honestly.