> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kaleidoswap.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Status stream (WebSocket)

> Upgrades to a WebSocket that streams status updates for the swaps you subscribe to. The envelope is Boltz-compatible:

```json
→ { "op": "subscribe",   "channel": "swap.update", "args": ["01J7Q..."] }
← { "event": "subscribe","channel": "swap.update", "args": ["01J7Q..."],
     "timestamp": "1716124800123" }
← { "event": "update",   "channel": "swap.update",
    "args": [ { "id": "01J7Q...", "status": "invoice.set" } ],
    "timestamp": "1716124800124" }
← { "event": "update",   "channel": "swap.update",
    "args": [ { "id": "01J7Q...", "status": "transaction.confirmed" } ],
    "timestamp": "1716124800456" }
→ { "op": "unsubscribe", "channel": "swap.update", "args": ["01J7Q..."] }
→ { "op": "ping" }
← { "event": "pong" }
```



## OpenAPI

````yaml /openapi.json get /v2/ws
openapi: 3.1.0
info:
  title: KaleidoSwap Maker API
  version: v2
  description: >-
    Public HTTP API of the KaleidoSwap maker. Wire-compatible with the Boltz
    `/v2` protocol for submarine, reverse, and chain swaps, with KaleidoSwap
    additions (RGB, atomic swaps, pay-through, LSPS1, swap credentials).
    Integrate through the Swap SDK where possible: it verifies every swap the
    maker proposes.
  contact:
    name: KaleidoSwap
    url: https://kaleidoswap.com
servers:
  - url: https://maker.signet.kaleidoswap.com
    description: Signet (Mutinynet)
security: []
tags:
  - name: Service
    description: Maker identity, version, and capabilities.
  - name: Pairs and quotes
    description: Routes the maker trades, their limits and fees, and quotes.
  - name: Submarine swaps
    description: On-chain → Lightning. You lock on chain; the maker pays your invoice.
  - name: Reverse swaps
    description: >-
      Lightning → on-chain. You pay a hold invoice; the maker locks on chain;
      you claim.
  - name: Chain swaps
    description: On-chain → on-chain. Both sides lock; you claim the maker's lockup.
  - name: Swap status
    description: Swap status over HTTP and WebSocket.
  - name: Recovery
    description: Restore swaps from an xpub and recover swap credentials.
  - name: Atomic RGB swaps
    description: BTC ↔ RGB asset swaps in a single transaction.
  - name: Pay-through
    description: Lightning payment → on-chain payout to any address.
  - name: Lightning channels (LSPS1)
    description: Buy inbound Lightning channels (LSPS1).
  - name: Chain data
    description: The maker's view of chain tips and fees.
paths:
  /v2/ws:
    get:
      tags:
        - Swap status
      summary: Status stream (WebSocket)
      description: >-
        Upgrades to a WebSocket that streams status updates for the swaps you
        subscribe to. The envelope is Boltz-compatible:


        ```json

        → { "op": "subscribe",   "channel": "swap.update", "args": ["01J7Q..."]
        }

        ← { "event": "subscribe","channel": "swap.update", "args": ["01J7Q..."],
             "timestamp": "1716124800123" }
        ← { "event": "update",   "channel": "swap.update",
            "args": [ { "id": "01J7Q...", "status": "invoice.set" } ],
            "timestamp": "1716124800124" }
        ← { "event": "update",   "channel": "swap.update",
            "args": [ { "id": "01J7Q...", "status": "transaction.confirmed" } ],
            "timestamp": "1716124800456" }
        → { "op": "unsubscribe", "channel": "swap.update", "args": ["01J7Q..."]
        }

        → { "op": "ping" }

        ← { "event": "pong" }

        ```
      operationId: ws_upgrade
      responses:
        '101':
          description: Switching Protocols — WebSocket session established.
        '400':
          description: Malformed upgrade request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.