APIReadsList decisions
List decisions
List the wallet’s decisions, newest first.
- Auth Node Token or read token
- Guide Verify a decision
The wallet’s decisions, newest first. Page with cursor: pass the previous page’s nextCursor until it is null.
AuthorizationBearer <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.
walletId*stringWallet id returned at registration: wal_ and 26 Crockford base32 characters.
^wal_[0-9A-HJKMNP-TV-Z]{26}$from?stringStart of the window, RFC 3339, inclusive.
date-timeto?stringEnd of the window, RFC 3339, exclusive.
date-timeoutcome?stringallowed, denied, or security for alarm refusals.
"allowed""denied""security"cursor?stringOpaque cursor from the previous page’s nextCursor.
limit?integerItems per page, 1 to 200.
1 <= value <= 20050One page of decisions.
application/json- response
items*array<>nextCursor*string|nullasOf*string^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}Z$date-timeschemaVersion*stringWire schema version, "1.1" today.
"1.0""1.1"chainTip*|nullcurl -X GET 'https://cosign.exchain.network/v1/wallets/wal_01J9XK3M4N5P6Q7R8S9T0V1W2Z/decisions'{ "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
| Status | Code | Meaning |
|---|---|---|
400 | bad_request | A query parameter is invalid: from/to not RFC 3339, limit outside 1–200, or a bad cursor. |
401 | unauthorized | The bearer credential is missing, unknown or revoked. |
404 | not_found | The 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.