ExchainDocs
DocsAPI

APIReadsGet wallet health

Get wallet health

Quorum reachability, attestation age and PCR0.

GET
/v1/wallets/{walletId}/health

Whether the wallet can be co-signed now: each enclave’s reachability, attestation age and PCR0, the wallet’s threshold, the last co-sign and its latency, and any degraded components.

Authorization

headerAuthorizationBearer <token>

Node Token from the Exchain console. Works for wallets this node registered; the node’s network (preprod or mainnet) decides the network of the request. Use a preprod token in the playground.

Path Parameters

walletId*string

Wallet id returned at registration: wal_ and 26 Crockford base32 characters.

Match^wal_[0-9A-HJKMNP-TV-Z]{26}$

Response Body

Health.

application/json
  1. response
backend*string
Value in"software""enclave"
quorum*
lastCosignAt*|
Formatdate-time
lastCosignLatencyMs*|
Range0 <= value
degraded*array<string>
network*string
Value in"preprod""mainnet"
asOf*string
Match^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}Z$
Formatdate-time
schemaVersion*string

Wire schema version, "1.1" today.

Value in"1.0""1.1"
chainTip*|null
Example Request
curl -X GET 'https://cosign.exchain.network/v1/wallets/wal_01J9XK3M4N5P6Q7R8S9T0V1W2Z/health'
Example Response
{  "backend": "enclave",  "quorum": {    "members": [      {        "id": "exchain-eu-1a",        "reachable": true,        "attestationAgeSec": 412,        "pcr0": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"      },      {        "id": "exchain-eu-1b",        "reachable": true,        "attestationAgeSec": 388,        "pcr0": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"      },      {        "id": "exchain-eu-1c",        "reachable": true,        "attestationAgeSec": 405,        "pcr0": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"      }    ],    "threshold": 3,    "reachable": 3  },  "lastCosignAt": "2026-11-05T14:22:07.318Z",  "lastCosignLatencyMs": 1412,  "degraded": [],  "network": "preprod",  "asOf": "2026-11-05T14:22:07.318Z",  "schemaVersion": "1.1",  "chainTip": {    "slot": 104118120,    "blockHash": "9a301ac2e5747e7ebeeecececd2f114f55695614277514e085211c5417d04c26"  }}

Errors

StatusCodeMeaning
401unauthorizedThe bearer credential is missing, unknown or revoked.
404not_foundThe wallet does not exist, this node did not register it, or the read token is for another wallet.

Every code and what to do about it: Errors and codes.