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

# Maker Compatibility

> Which Swap SDK capabilities the KaleidoSwap maker serves, which upstream Boltz routes it does not, and what that means when you point the SDK at another maker

The Swap SDK speaks the Boltz `/v2` protocol and keeps compatibility with upstream Boltz through an explicit base URL. The KaleidoSwap maker serves a subset of the Boltz public API and adds routes of its own. An exported SDK method does not by itself mean a given maker serves the route it needs.

The [API Reference](https://docs.kaleidoswap.com/api-reference/introduction.md) lists every route the KaleidoSwap maker serves. `swapAuth` and its recovery, atomic swaps, pay-through, and the Arkade corridor are KaleidoSwap additions that upstream Boltz does not serve.

## Not served by the KaleidoSwap maker

These upstream Boltz capabilities stay in the Rust core so you can use them against a compatible maker. They are not exported to the TypeScript, Python, or React Native bindings, and the KaleidoSwap public maker does not register their routes.

| Capability | Upstream route | Where it exists in the SDK |
| - | - | - |
| Submarine server-claim co-signing | `GET`/`POST /v2/swap/submarine/{id}/claim` | Rust raw helpers; native `submarine_cooperative_claim` |
| Maker-mediated raw broadcast | `POST /v2/chain/{BTC,L-BTC}/transaction` | Rust `broadcast_tx` |
| Boltz-shaped BOLT12 offers | `/v2/lightning/BTC/bolt12*` | Five Rust methods |

To broadcast, use your own chain backend: `BtcLikeTransaction.broadcast` in TypeScript, `ChainClient.broadcast_tx` natively.

WASM's `constructCooperativeClaim` is a **chain**-swap claim constructor. It does not expose submarine co-signing.

## Pointing the SDK at another maker

Pass the maker's base URL explicitly (see [Networks](https://docs.kaleidoswap.com/sdk/networks.md#another-maker)). Then:

* Read its pair catalogues at runtime instead of assuming routes.
* Expect `swapAuth` to be absent on an upstream Boltz maker. Methods that take it accept `undefined` for a maker that issues none.
* The SDK's create-time checks reject a response that differs from the protocol: an inexact timeout height, a non-minimal timelock encoding, or a lockup that does not match your keys. A maker that diverges from Boltz there will fail those checks by design.


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