ExchainDocs
DocsAPI

APIReadsList decisions

List decisions

List the wallet’s decisions, newest first.

GET
/v1/wallets/{walletId}/decisions

The wallet’s decisions, newest first. Page with cursor: pass the previous page’s nextCursor until it is null.

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}$

Query Parameters

from?string

Start of the window, RFC 3339, inclusive.

Formatdate-time
to?string

End of the window, RFC 3339, exclusive.

Formatdate-time
outcome?string

allowed, denied, or security for alarm refusals.

Value in"allowed""denied""security"
cursor?string

Opaque cursor from the previous page’s nextCursor.

limit?integer

Items per page, 1 to 200.

Range1 <= value <= 200
Default50

Response Body

One page of decisions.

application/json
  1. response
items*array<>
nextCursor*string|null
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/decisions'
Example Response
{  "items": [    {      "decisionId": "dec_01J9XK3M4N5P6Q7R8S9T0V1W2X",      "at": "2026-11-05T14:22:07.318Z",      "outcome": "allowed",      "batchSize": 2,      "admitted": 2,      "denied": 0,      "alarm": false,      "txBodyHash": "blake2b_256:f13f1c9731cd0d3aae2abf45e553c1fd7c94d48ba42c7515eb218aa23c247f18",      "members": [        {          "purchaseId": "pur_01J9XK3M4N5P6Q7R8S9T0V1A01",          "outputIndex": 0,          "verdict": "allowed",          "amount": "199000000",          "asset": "lovelace",          "counterparty": "sellerVkeyHash:012fde0a6fa2c5f3233b3cf1a9f4281fc3c766da7feea4310c00718b",          "jobHash": "blake2b_256:37668cb91fb17ce799389b9f893019fbd0f5dbf6b78786547eead93520f732fe",          "agentIdentifier": "67ab0c92c4ac1610895a1c965ee50aba41a8f1513b15240723b3bd0b6167656e742d7265736561726368"        },        {          "purchaseId": "pur_01J9XK3M4N5P6Q7R8S9T0V1A02",          "outputIndex": 1,          "verdict": "allowed",          "amount": "150000000",          "asset": "lovelace",          "counterparty": "sellerVkeyHash:ef9969491574b01a531d6c7296723a22af5c3da7ec4cbcd74cc9a1a3",          "jobHash": "blake2b_256:66d1207a6ae47ef778fcd2f80f009c6374b0c7b174022d3afaf10f4c603ea5a2",          "agentIdentifier": "67ab0c92c4ac1610895a1c965ee50aba41a8f1513b15240723b3bd0b6167656e742d7265736561726368"        }      ]    },    {      "decisionId": "dec_01J9XK3M4N5P6Q7R8S9T0V1W2W",      "at": "2026-11-05T13:58:02.007Z",      "outcome": "denied",      "batchSize": 1,      "admitted": 0,      "denied": 1,      "alarm": false,      "txBodyHash": "blake2b_256:7456f31bd43c98a45803b2909ecdb4ba8acf7bea4b6bce958e5c3e7a8b5795e4",      "members": [        {          "purchaseId": "pur_01J9XK3M4N5P6Q7R8S9T0V19ZZ",          "outputIndex": 0,          "verdict": "denied",          "denied": "per_tx_cap",          "reasonEnglish": "A single payment of 250 tADA exceeds the per-payment cap of 200 tADA.",          "bound": "200000000",          "used": "0",          "attempted": "250000000",          "amount": "250000000",          "asset": "lovelace",          "counterparty": "sellerVkeyHash:c0cae355f89f5e672aa14f659fd13153587c43f31cd358b14115c5b8",          "jobHash": "blake2b_256:37668cb91fb17ce799389b9f893019fbd0f5dbf6b78786547eead93520f732fe",          "agentIdentifier": "67ab0c92c4ac1610895a1c965ee50aba41a8f1513b15240723b3bd0b6167656e742d7265736561726368"        }      ]    }  ],  "nextCursor": "4812",  "asOf": "2026-11-05T14:22:07.318Z",  "schemaVersion": "1.1",  "chainTip": {    "slot": 104118120,    "blockHash": "9a301ac2e5747e7ebeeecececd2f114f55695614277514e085211c5417d04c26"  }}

Errors

StatusCodeMeaning
400bad_requestA query parameter is invalid: from/to not RFC 3339, limit outside 1–200, or a bad cursor.
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.