> ## 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.

# List pairs

> The rate cards currently published for one swap type (`submarine`, `reverse`, or `chain`), as a map of `from → to → card`. A card carries the route's limits, fees, rate, and a `hash`. Pass that `hash` as `pairHash` when you create a swap to hold the maker to the terms you displayed.



## OpenAPI

````yaml /openapi.json get /v2/swap/{type}/pairs
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/swap/{type}/pairs:
    get:
      tags:
        - Pairs and quotes
      summary: List pairs
      description: >-
        The rate cards currently published for one swap type (`submarine`,
        `reverse`, or `chain`), as a map of `from → to → card`. A card carries
        the route's limits, fees, rate, and a `hash`. Pass that `hash` as
        `pairHash` when you create a swap to hold the maker to the terms you
        displayed.
      operationId: get_pairs_for_type
      parameters:
        - name: type
          in: path
          description: submarine | reverse | chain | atomic
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Nested `from → to → PairCard` map.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  additionalProperties:
                    type: object
                    description: One pair card.
                    required:
                      - pairId
                      - hash
                      - rate
                      - limits
                      - fees
                    properties:
                      fees:
                        $ref: '#/components/schemas/PairFees'
                        description: Fee model.
                      hash:
                        type: string
                        description: >-
                          `SHA-256` over the canonical-JSON pair config. The
                          `pairHash`

                          rate-lock.
                      limits:
                        $ref: '#/components/schemas/PairLimits'
                        description: Min / max amount limits.
                      pairId:
                        type: string
                        description: >-
                          Exact pair key `POST /v2/quote` expects. Swap creation
                          takes the

                          `from`/`to` currency symbols instead, so the maker
                          resolves them to

                          whichever implementation is the direction's current
                          default.
                      rate:
                        type: number
                        format: double
                        description: >-
                          Display rate: output units per input unit, each asset
                          counted in

                          its smallest unit — an RGB asset in its contract's
                          precision.
                  propertyNames:
                    type: string
                propertyNames:
                  type: string
        '400':
          description: Unknown swap type.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: No quoting engine configured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    PairFees:
      type: object
      required:
        - percentage
        - minerFees
      properties:
        minerFees:
          type: integer
          format: int64
          description: Miner fee in sats (per the input chain).
          minimum: 0
        percentage:
          type: number
          format: double
          description: 'Service fee as a percentage (Boltz convention: `0.5` = 50 bps).'
    PairLimits:
      type: object
      required:
        - minimal
        - maximal
        - maximalZeroConf
      properties:
        maximal:
          type: integer
          format: int64
          description: Largest swap amount accepted.
          minimum: 0
        maximalZeroConf:
          type: integer
          format: int64
          description: |-
            Largest zero-conf-accepted amount. Always `0` — the swap engine has
            no zero-conf acceptance path (every deposit waits for the configured
            confirmation target regardless of amount), so the maker must never
            advertise a non-zero value here.
          maximum: 0
          minimum: 0
        minimal:
          type: integer
          format: int64
          description: |-
            Smallest swap amount accepted, in the input asset's smallest unit
            (an RGB asset's contract units).
          minimum: 0
    ErrorResponse:
      type: object
      description: Boltz-shaped error envelope.
      required:
        - error
      properties:
        details:
          type:
            - string
            - 'null'
          description: Optional human-readable detail. Present on 4xx; absent on 5xx.
        error:
          type: string
          description: Stable machine-readable error code, e.g. `pair_hash_mismatch`.

````

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