Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

order info

commandorder.info
KindRequest (read-only)
NeedsMOSTRO_PUBKEY, RELAYS, an existing identity (read only)
PublishesOne request signed with the identity key
Local writeNone; never reserves a trade index
Statusesok, error (never uncertain: repeating it is safe)
Schemasschemas/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

OptionRequiredRule
--orderyes, repeatableA 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

FieldTypeMeaning
node_pubkeyhex64The node asked
ordersarray of OrderRecordReturned orders, in request order, each once
not_returnedarray of uuidRequested 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

CasestatuscodeStages (publication / daemon / persistence)
Answeredokpublished / accepted / not_applicable
Local failure (arguments, configuration, identity, protocol, PoW)errorits codenot_attempted / unknown / not_applicable
Every relay refused the eventerrorrequest_rejectednot_attempted / unknown / not_applicable
A relay failed ambiguouslyerrorrequest_rejectedunknown / unknown / not_applicable
No answer, unusable answer, relay dropped the waiterrorreply_timeout, reply_malformed, relay_read_failedpublished / unknown / not_applicable
Refusederrornode_refused + reasonpublished / 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.