order info
command | order.info |
| Kind | Request (read-only) |
| Needs | MOSTRO_PUBKEY, RELAYS, an existing identity (read only) |
| Publishes | One request signed with the identity key |
| Local write | None; never reserves a trade index |
| Statuses | ok, error (never uncertain: repeating it is safe) |
| Schemas | schemas/order.info.input.json, schemas/order.info.output.json |
Asks the node for the current state of one or more orders. Returns the private view (trade keys, expiry) that the public book does not show.
Invocation
mostro-cli --output json order info --order UUID [--order UUID ...]
Replaces ordersinfo --orderids ....
Input
| Option | Required | Rule |
|---|---|---|
--order | yes, repeatable | A UUID in any letter case; reported lowercase. A repeated id is asked once. No count limit in the CLI (the node may refuse large requests) |
Behavior
Validates arguments → reads configuration → reads the identity (read-only) → connects
(10 s) → probes the node’s protocol version and PoW (3 s, best effort) → publishes one
request → waits for the reply correlated by request id (15 s) → cleans up (1 s).
Nothing is retried. The node answers only about orders it is willing to show to this
identity; others come back in not_returned without a reason.
Success data: OrderInfoData
| Field | Type | Meaning |
|---|---|---|
node_pubkey | hex64 | The node asked |
orders | array of OrderRecord | Returned orders, in request order, each once |
not_returned | array of uuid | Requested ids missing from the reply, in request order |
Invariant: every distinct requested id is in exactly one of orders[].id and
not_returned. The node’s not_found answer is a success with every id in
not_returned and the orders_not_returned warning.
Outcomes
| Case | status | code | Stages (publication / daemon / persistence) |
|---|---|---|---|
| Answered | ok | published / accepted / not_applicable | |
| Local failure (arguments, configuration, identity, protocol, PoW) | error | its code | not_attempted / unknown / not_applicable |
| Every relay refused the event | error | request_rejected | not_attempted / unknown / not_applicable |
| A relay failed ambiguously | error | request_rejected | unknown / unknown / not_applicable |
| No answer, unusable answer, relay dropped the wait | error | reply_timeout, reply_malformed, relay_read_failed | published / unknown / not_applicable |
| Refused | error | node_refused + reason | published / rejected / not_applicable |
Errors
invalid_arguments, configuration_missing, configuration_invalid,
relay_connection_failed, relay_read_failed, internal_error, identity_missing,
identity_unreadable, protocol_unsupported, pow_required, request_rejected,
reply_timeout, node_refused, reply_malformed.
Warnings
orders_not_returned, invalid_order_timestamp, invalid_event_timestamp,
cleanup_incomplete.
Examples
The node knows none of the ids: still ok, with a warning
order.info/not_found_success · status ok · exit 0 · fixture
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001 --order 00000000-0000-0000-0000-000000000002
{
"schema_version": "1",
"command": "order.info",
"status": "ok",
"data": {
"node_pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"orders": [],
"not_returned": [
"00000000-0000-0000-0000-000000000001",
"00000000-0000-0000-0000-000000000002"
]
},
"error": null,
"warnings": [
{
"code": "orders_not_returned",
"message": "Some requested orders were not returned by the node."
}
],
"meta": {
"publication": "published",
"daemon_acceptance": "accepted",
"persistence": "not_applicable",
"snapshot": null
}
}
One of your own orders mid-trade, with both trade keys known
order.info/own_trade_in_progress · status ok · exit 0 · authored
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "ok",
"data": {
"node_pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"orders": [
{
"id": "00000000-0000-0000-0000-000000000001",
"side": "sell",
"status": "fiat-sent",
"sats_amount": "15000",
"fiat_currency": "USD",
"fiat_amount": "15",
"fiat_amount_min": null,
"fiat_amount_max": null,
"payment_method": "bank transfer",
"premium_percent": "1",
"buyer_trade_pubkey": "e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13",
"seller_trade_pubkey": "c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5",
"created_at": "2026-11-02T09:00:00Z",
"created_at_unix": "1793610000",
"expires_at": "2026-11-03T09:00:00Z",
"expires_at_unix": "1793696400"
}
],
"not_returned": []
},
"error": null,
"warnings": [],
"meta": {
"publication": "published",
"daemon_acceptance": "accepted",
"persistence": "not_applicable",
"snapshot": null
}
}
Two of three orders returned; the third is listed in not_returned
order.info/subset_success · status ok · exit 0 · fixture
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001 --order 00000000-0000-0000-0000-000000000002 --order 00000000-0000-0000-0000-000000000003
{
"schema_version": "1",
"command": "order.info",
"status": "ok",
"data": {
"node_pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"orders": [
{
"id": "00000000-0000-0000-0000-000000000001",
"side": "sell",
"status": "active",
"sats_amount": "15000",
"fiat_currency": "USD",
"fiat_amount": "15",
"fiat_amount_min": null,
"fiat_amount_max": null,
"payment_method": "bank transfer",
"premium_percent": "1",
"buyer_trade_pubkey": null,
"seller_trade_pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"created_at": "2026-10-16T00:00:00Z",
"created_at_unix": "1792108800",
"expires_at": "2026-10-17T00:00:00Z",
"expires_at_unix": "1792195200"
},
{
"id": "00000000-0000-0000-0000-000000000003",
"side": "buy",
"status": "pending",
"sats_amount": "0",
"fiat_currency": "EUR",
"fiat_amount": "0",
"fiat_amount_min": "10",
"fiat_amount_max": "20",
"payment_method": "face to face",
"premium_percent": "-5",
"buyer_trade_pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"seller_trade_pubkey": null,
"created_at": "2026-10-16T00:00:00Z",
"created_at_unix": "1792108800",
"expires_at": null,
"expires_at_unix": null
}
],
"not_returned": [
"00000000-0000-0000-0000-000000000002"
]
},
"error": null,
"warnings": [
{
"code": "orders_not_returned",
"message": "Some requested orders were not returned by the node."
}
],
"meta": {
"publication": "published",
"daemon_acceptance": "accepted",
"persistence": "not_applicable",
"snapshot": null
}
}
No local identity: nothing was sent
order.info/identity_missing · status error · identity_missing · exit 1 · fixture
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "identity_missing",
"message": "No local identity exists."
},
"warnings": [],
"meta": {
"publication": "not_attempted",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
Identity checked before any network access
order.info/identity_missing_captured · status error · identity_missing · exit 1 · captured
mostro-cli --output json --mostro-pubkey 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 --relays ws://127.0.0.1:1 order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "identity_missing",
"message": "No local identity exists."
},
"warnings": [],
"meta": {
"publication": "not_attempted",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
The node refused with reason too_many_requests
order.info/node_refused · status error · node_refused · exit 1 · fixture
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "node_refused",
"message": "The node refused the request.",
"reason": "too_many_requests"
},
"warnings": [],
"meta": {
"publication": "published",
"daemon_acceptance": "rejected",
"persistence": "not_applicable",
"snapshot": null
}
}
The node asks for more proof of work than –pow / POW
order.info/pow_required · status error · pow_required · exit 1 · authored
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "pow_required",
"message": "The node requires more proof of work than is configured."
},
"warnings": [],
"meta": {
"publication": "not_attempted",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
The node advertises protocol v1 (gift wrap): nothing is published
order.info/protocol_unsupported · status error · protocol_unsupported · exit 1 · authored
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "protocol_unsupported",
"message": "The node speaks a protocol version this program does not support."
},
"warnings": [],
"meta": {
"publication": "not_attempted",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
A correlated answer with an unusable payload
order.info/reply_malformed · status error · reply_malformed · exit 1 · authored
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "reply_malformed",
"message": "The reply from the node could not be used."
},
"warnings": [],
"meta": {
"publication": "published",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
Published, no answer within 15 s: an error (a read is safe to repeat)
order.info/reply_timeout · status error · reply_timeout · exit 1 · fixture
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "reply_timeout",
"message": "The node did not answer before the deadline."
},
"warnings": [],
"meta": {
"publication": "published",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
No relay confirmed the event and one failed ambiguously: publication unknown (still an error, a read is safe to repeat)
order.info/request_rejected_ambiguous · status error · request_rejected · exit 1 · authored
mostro-cli --output json order info --order 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "request_rejected",
"message": "No relay confirmed accepting the request."
},
"warnings": [],
"meta": {
"publication": "unknown",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
An –order value that is not a UUID
order.info/invalid_arguments · status error · invalid_arguments · exit 2 · fixture
mostro-cli --output json order info --order not-a-uuid
{
"schema_version": "1",
"command": "order.info",
"status": "error",
"data": null,
"error": {
"code": "invalid_arguments",
"message": "The command arguments are invalid."
},
"warnings": [],
"meta": {
"publication": "not_attempted",
"daemon_acceptance": "unknown",
"persistence": "not_applicable",
"snapshot": null
}
}
The removed ordersinfo spelling: unresolved command, command is null
order.info/removed_spelling · status error · invalid_arguments · exit 2 · fixture
mostro-cli --output json ordersinfo --orderids 00000000-0000-0000-0000-000000000001
{
"schema_version": "1",
"command": null,
"status": "error",
"data": null,
"error": {
"code": "invalid_arguments",
"message": "The command arguments are invalid."
},
"warnings": [],
"meta": {
"publication": "not_attempted",
"daemon_acceptance": "unknown",
"persistence": "not_attempted",
"snapshot": null
}
}
Next
order info is the tool to check before retrying after an uncertain write: see
Recovering from uncertain outcomes.