mostro-webtool 0.1.0

A web-based tool for generating deterministic keys and building Mostro protocol messages.
Documentation
# Request order details

Clients can request detailed information for existing orders by sending a nip59 Gift wrap message with the action `orders`. This is useful for refreshing stale UI state or restoring a session from the mnemonic seed on a new device.

## Request message

The client sends a message where the payload object includes an `ids` array of order IDs. At least one ID must be provided, and Mostro may reject the request if the array exceeds its configured limits.

```json
{
  "order": {
    "version": 1,
    "request_id": 8721,
    "action": "orders",
    "payload":  {
      "ids": [
        "c7dba9db-f13f-4c3f-a77f-3b82e43c2b1a",
        "751bc178-801a-4cc4-983c-68682e6fb6af"
      ]
    }
  }
}
```

Field:
- `ids`: Array of order ids exactly as published in the order event `d` tag.

The client only can request their own orders; mostrod will not provide information about any ID if it does not belong to the requesting party.

## Mostro response

Mostro replies with the same action and includes a structured payload describing each order that could be resolved, here is how the message look like:

```json
{
  "order": {
    "version": 1,
    "request_id": 8721,
    "action": "orders",
    "payload": {
      "orders": [
        {
          "order": {
            "id": "c7dba9db-f13f-4c3f-a77f-3b82e43c2b1a",
            "kind": "sell",
            "status": "active",
            "amount": 3307,
            "fiat_code": "ARS",
            "min_amount": 1000,
            "max_amount": 5000,
            "fiat_amount": 5000,
            "payment_method": "Mercado Pago,Lemon",
            "premium": 2,
            "buyer_trade_pubkey": "<trade pubkey>",
            "seller_trade_pubkey": "<trade pubkey>",
            "created_at": 1758889527,
            "expires_at": 1758975927
          }
        },
        {
          "order": {
            "id": "751bc178-801a-4cc4-983c-68682e6fb6af",
            "kind": "sell",
            "status": "fiat-sent",
            "amount": 1201,
            "fiat_code": "ARS",
            "min_amount": null,
            "max_amount": null,
            "fiat_amount": 2000,
            "payment_method": "MODO",
            "premium": 0,
            "buyer_trade_pubkey": "<trade pubkey>",
            "seller_trade_pubkey": "<trade pubkey>",
            "created_at": 1759168820,
            "expires_at": 1759255220
          }
        },
      ]
    }
  }
}
```

Orders that are missing or unauthorized for the requesting user are not listed in the orders array.

## Limits and rate control

Mostrod enforces per-request limits to protect the daemon. Common policies include a `max_orders_per_response` cap (for example, 20 orders) and a rolling request quota per pubkey.

When a response is truncated because too many ids were requested, Mostrod returns only the first allowed ids. Clients should re-issue the call with the remaining ids after respecting the rate limits.

When a user exceeds the allowed request rate, Mostrod can answer with an error action such as `too-many-requests`. Implementations should surface these conditions to the user and back off accordingly.