Frequently Asked Questions
TypeScript or Python — which should I use?
TypeScript or Python — which should I use?
Whichever matches your stack. Both are standalone implementations that generate their types from the same OpenAPI specifications, so the API shape, the sub-clients, and the error hierarchy are identical across the two. Every example in these docs shows both.Runtime requirements: Node.js 18+ for TypeScript, Python 3.10+ for Python. A Rust core is in progress.
What is the difference between client.maker and client.rln?
What is the difference between client.maker and client.rln?
They are the two halves of a swap, and most flows use both.
A typical atomic swap quotes and initialises through
client.maker, whitelists the swapstring on client.rln, then executes back through client.maker. See How to Swap.Do I need to run an RGB Lightning Node?
Do I need to run an RGB Lightning Node?
For the atomic swap path, yes. The taker’s node is what holds the keys, whitelists the
swapstring, and routes the HTLC. That is precisely why the maker never takes custody — there is no step where it could.You can run the node locally or point the SDK at a remote one you control. See Node Hosting for the deployment options.Does the SDK hold keys or take custody?
Does the SDK hold keys or take custody?
No. The SDK is a typed client over two HTTP APIs. Keys live in the RGB Lightning Node you point it at, and signing happens there. Nothing in the SDK can move funds that your node has not authorised.
Which networks can I build against?
Which networks can I build against?
Regtest and Signet (MutinyNet) are live today; mainnet is coming soon.
- Regtest —
https://api.regtest.kaleidoswap.com, instant blocks, best for unit tests - Signet —
https://api.signet.kaleidoswap.com, realistic conditions, best before mainnet
baseUrl / base_url; the SDK appends /api/v1 itself. Full list in Available Environments.How do I know which SDK version works with which API?
How do I know which SDK version works with which API?
Two separate compatibility surfaces:
- Maker API Compatibility — the SDK tracks the latest Maker API release, so there is no version pairing to manage
- RLN API Compatibility — the SDK is generated against a specific RGB Lightning Node API version
Why are my amounts off by orders of magnitude?
Why are my amounts off by orders of magnitude?
The API works in raw integer amounts, not decimals. An asset’s precision decides the conversion, and it differs per asset — BTC and USDT do not share one.Use the helpers rather than doing the arithmetic yourself:See Utilities for the full set, including asset mapping.
Do I have to use WebSocket?
Do I have to use WebSocket?
No. WebSocket is for streaming live quotes with automatic reconnection, which matters if you are showing a moving price or reacting to one. A single quote over REST is enough for a one-off swap.See WebSocket for the streaming API.
Can I call the SDK directly from a browser?
Can I call the SDK directly from a browser?
Not against the maker API. CORS is disabled on most endpoints, so a browser-based app needs its own backend to proxy the calls. Keep the SDK server-side and expose only what your frontend needs.
How should I handle errors and retries?
How should I handle errors and retries?
Every SDK exception extends
KaleidoError, so catching that one type covers the whole hierarchy. Each error exposes isRetryable() / is_retryable(), which tells you whether retrying is safe — do not retry blindly, since some failures will never succeed on a second attempt.See Error Handling for the full hierarchy and the retry-with-backoff pattern, and Best Practices for how it fits a production client.Get Help
Check the Troubleshooting for errors rather than questions. For anything else, report a problem through your preferred channel from the options below, including:- SDK version (
getVersion()/get_version()) - Language and runtime version (Node.js / Python)
- Error message and stack trace
- Minimal code to reproduce
- Environment (Regtest / Signet / Mainnet)
Telegram Community
Ask the community.
GitHub Issues
Report a bug on the relevant repository.
Email Support
Direct support for urgent issues.