ExchainDocs
DocsAPI

APIPublicList journal roots

List journal roots

Signed journal roots by wallet and time.

GET
/v1/journal/roots

Signed Merkle roots of wallets’ decisions, published hourly. Each root is signed by the journal publisher key, and Exchain anchors the roots on Cardano mainnet once a day; anchor is set on the root an anchor covers. No credential needed.

Query Parameters

from?string

Start of the window, RFC 3339, inclusive.

Formatdate-time
to?string

End of the window, RFC 3339, exclusive.

Formatdate-time
walletId?string

Only roots of this wallet.

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

Response Body

Roots.

application/json
  1. response
items*array<>
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/journal/roots'
Example Response
{  "items": [    {      "schemaVersion": "1.1",      "walletId": "wal_01J9XK3M4N5P6Q7R8S9T0V1W2Z",      "epoch": 1442,      "fromSeq": 3391,      "toSeq": 3624,      "count": 233,      "root": "d0f00b4eb5f17f017601f89a576ae672a90a665216d2749b7ac4e795cb2de471",      "from": "2026-11-05T14:00:00Z",      "to": "2026-11-05T15:00:00Z",      "publishedAt": "2026-11-05T15:00:00Z",      "publisherKeyHash": "9f5b2c1d0e3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e",      "signature": "566fba3ffe3864aa1a5714fe4841960063f8ac44c70119f188ede719b8a5672a88237f3bc90afa805668d34003fb6e1f33e31d6fad59992c3bd271b3f01f1c9f",      "anchor": null,      "auditHead": {        "requests": {          "seq": 88123,          "hash": "32b656bb67ef55c6709c707095ae5f7563d7e8bbaf5e992000900ca97434193f"        },        "signer": {          "seq": 40211,          "hash": "17a171adbb483bb1509f5120f4351bd080dcba3779cef07555e1ae5c0c233058"        },        "admin": {          "seq": 312,          "hash": "39bdb676f04f4610e375710c26c2df20bfe861f056d3d390f4c0f384400693c9"        },        "fees": {          "seq": 57,          "hash": "a53ad5807db71f756556cb6e4523c454d1586963790b99922eef77ca31d1de4f"        },        "records": {          "seq": 9124,          "hash": "23c0432e62036c24373e2e20c5e947323418b8a4231ca54b5239dbd5fa9162e4"        }      }    },    {      "schemaVersion": "1.1",      "walletId": "wal_01J9XK3M4N5P6Q7R8S9T0V1W2Z",      "epoch": 1441,      "fromSeq": 3102,      "toSeq": 3390,      "count": 289,      "root": "018c36d16e8ee902a1b920ecdcca39c2f5b90149794a911b7a669d001fd6f1c7",      "from": "2026-11-05T13:00:00Z",      "to": "2026-11-05T14:00:00Z",      "publishedAt": "2026-11-05T14:00:00Z",      "publisherKeyHash": "9f5b2c1d0e3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e",      "signature": "40688e04ace8546b7f9818c894d7043c1a7582878d7a10ca845e182ef160c642ce139d6a82780e484da85be2ca2dbfcd19e9946f1f74fa6705ea5eab6fa92b22",      "anchor": {        "txHash": "35a9627e952eb1950ce3cfaa45c40640b4e84eb5e3ecb38c098f2219c6a3c2ad",        "slot": 172604183      }    }  ],  "asOf": "2026-11-05T14:22:07.318Z",  "schemaVersion": "1.1",  "chainTip": {    "slot": 104118120,    "blockHash": "9a301ac2e5747e7ebeeecececd2f114f55695614277514e085211c5417d04c26"  }}

Errors

StatusCodeMeaning
400bad_requestA query parameter is invalid.

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