ExchainDocs
DocsAPI

APIPartnersMint a partner read token

Mint a partner read token

Read token and embed URL for one wallet.

POST
/v1/partner/wallets/{walletId}/read-token

Mint a 15-minute read token for a wallet of one of your nodes, with the URL of the embeddable wallet page. Send no body. Refresh it before it expires; the page asks its parent for a new token.

Authorization

partnerKey
headerAuthorizationBearer <token>

Partner key delivered by a one-time link. Works on /v1/partner/* only.

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

Minted.

application/json
  1. response
token*string

Opaque base64url string: wallet id, expiry and an HMAC. Send it as a bearer token.

Length16 <= length
expiresAt*DateTime
Formatdate-time
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
url*string
Example Request
curl -X POST 'https://cosign.exchain.network/v1/partner/wallets/wal_01J9XK3M4N5P6Q7R8S9T0V1W2Z/read-token'
Example Response
{  "url": "https://cosign.exchain.network/protected/wal_01J9XK3M4N5P6Q7R8S9T0V1W2Z?t=d2FsXzAxSjlYSzNNNE41UDZRN1I4UzlUMFYxVzJaAAAAAGrslJPL4dZ4S7eR6i1xMIX-4z8HD9XK4FwyuA-K7Ln5fJz0lA",  "token": "d2FsXzAxSjlYSzNNNE41UDZRN1I4UzlUMFYxVzJaAAAAAGrslJPL4dZ4S7eR6i1xMIX-4z8HD9XK4FwyuA-K7Ln5fJz0lA",  "expiresAt": "2026-11-05T14:37:07Z",  "asOf": "2026-11-05T14:22:07.318Z",  "schemaVersion": "1.1",  "chainTip": null}

Errors

StatusCodeMeaning
401unauthorizedA partner key is required: the bearer is missing, unknown, reset or revoked.
404not_foundThe wallet does not belong to one of your nodes.
413payload_too_largeThe request body is larger than 64 KiB.
429rate_limitedOver the limit; retry after Retry-After seconds (also in retryAfterSec).

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