SDK v0.1.17 (Current)
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.8.0Fixed
- TypeScript
listSwaps()no longer loses precision on RGB swap quantities aboveNumber.MAX_SAFE_INTEGER—qty_from/qty_toare preserved verbatim (typedstring | number; read them withBigInt(...)).JSON.parsesilently rounded them before, misreporting large swaps.
SDK v0.1.16
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.8.0Added
- TypeScript
nodeApiKeyonKaleidoConfig— a bearer token applied to RLN node requests (includingenableNodeClient()), kept separate from the makerapiKeyso credentials are never sent cross-service.
Fixed
- TypeScript a credential intended for an authenticated RLN node was silently dropped —
apiKeywas only ever attached to the maker client, so all node calls went out unauthenticated.
SDK v0.1.15
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.8.0Fixed
- Completes the 0.1.14 release, which published to npm only (the PyPI job was skipped after a stale decode-invoice unit test failed). No functional change versus 0.1.14.
SDK v0.1.14
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.8.0Changed
- Synced the vendored RGB Lightning Node OpenAPI spec to RLN v0.8.0 and regenerated the node models (Python + TypeScript).
- The
/refreshtransfersendpoint now returns aRefreshResponse({ transfers }) instead of an empty body. The SDK methodsrefreshTransfers()/refresh_transfers()still returnvoid/None.
Added
- New RLN endpoints from v0.8.0:
/getconsignment,/provideoutofbandack,/provideoutofbandconsignment(out-of-band consignment transfer), plus their request/response types. - New transfer status
WaitingBroadcast. Utxogainsexistsandderivation_index;Unspentgainspending_blinded.
Breaking changes
RgbInvoiceRequestnow requiresexpiration_timestampandtransport_endpoints(previously optional/absent in RLN 0.7.1). Callers ofcreateRgbInvoice/create_rgb_invoicemust supply both.SendRgbRequestnow requiresexpiration_timestampforsendRgb/send_rgb.TransferTransportEndpoint.proxy_endpointwas removed.
SDK v0.1.13
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.7.1Removed
- Order-based swap flow. The maker API’s
/api/v1/swaps/orders/*endpoints were retired, so the SDK no longer ships the order-based surface: methodscreateSwapOrder/create_swap_order,getSwapOrderStatus/get_swap_order_status,getOrderHistory/get_order_history,getOrderAnalytics/get_order_analytics, the swap-order rate-decision method, andwaitForSwapCompletion/wait_for_swap_completion(plusSwapCompletionOptions), along with theSwapOrder*,OrderHistory*, andOrderStats*types. (The LSPS1submitLspRateDecision+RateDecisionRequest/RateDecisionResponseare unaffected.)
Breaking changes
- Migrate from the removed order-based methods to the atomic swap flow:
initSwap/init_swap→ whitelist the swapstring on your RLN node →executeSwap/execute_swap, with status viagetAtomicSwapStatus/get_atomic_swap_status. LSPS1 channel orders (createLspOrder/getLspOrder) are unaffected.
SDK v0.1.11
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.7.1Fixed
refreshTransfers()/refresh_transfers()now sendfilter: [](refresh all pending transfers) in their default body. RLN 0.7.1 madefiltera required field onRefreshRequest(POST /refreshtransfers); the previous{skip_sync}-only default was rejected withHTTP 400 "Failed to deserialize the JSON body into the target type". Applies to both the TypeScript and Python clients.
SDK v0.1.10
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.7.1Fixed
- TypeScript
listUnspents()now sendssettled_only: falseby default, matching the Python client and RLN 0.7.1’s requiredListUnspentsRequestshape. In 0.1.9 the TS convenience method still sent the{skip_sync}-only body and was rejected by RLN 0.7.1 withHTTP 400 "Failed to deserialize the JSON body into the target type".
SDK v0.1.9
Compatible APIs: Latest Maker API · RLN (RGB Lightning Node) API v0.7.1Added
- NWC (Nostr Wallet Connect, NIP-47) client — new
kaleido-sdk/nwcsubpath.NWCClientexposesrln_*RLN extension methods and anRlnTransportseam that runs the RLN client over an NWC connection (NIP-44 encryption, NIP-04 fallback). LN-invoice decode, send-BTC and list-payments are mapped over the NWC transport. - RLN client methods + models for
POST /sendrgb,POST /inflate,POST /issueassetifa, and Inflatable Fungible Asset (IFA) types.
Changed
- Regenerated the RLN models against
kaleidoswap/rgb-lightning-nodev0.7.1.
Breaking changes
ListUnspentsRequestnow requiressettled_only. RLN 0.7.1 rejects the old{skip_sync}-only body withHTTP 400 "Failed to deserialize the JSON body into the target type". Thelist_unspents()convenience method defaultssettled_only=False; callers that build the request directly must set it.POST /sendassetwas renamed toPOST /sendrgb(SendAssetRequest/SendAssetResponse→SendRgbRequest/SendRgbResponse).
Versions 0.1.6–0.1.8 are omitted here; see the full CHANGELOG in the SDK repository.
SDK v0.1.5
Compatible APIs: Latest Maker API and Latest RLN APIThis entry describes the surface as it shipped in 0.1.5. The order-based swap methods and
waitForSwapCompletion listed below were later removed in 0.1.13 — see that entry for the migration path.What’s included
Maker API Client (client.maker)
Market data, quotes, swap orders, atomic swap protocol, LSPS1 channel ordering, and WebSocket streaming:
- Market operations: asset and pair listing with caching
- Quote endpoints: single and bulk quote requests with real-time streaming
- Swap order management: create, list, and monitor order-based swaps
- Atomic swap protocol: HTLC-based swaps for desktop and direct node interactions
- LSPS1 channel ordering: liquidity and channel provisioning
- WebSocket streaming:
streamQuotesByTicker/streamQuotesForAllRouteswith automatic route discovery and reconnection
RLN API Client (client.rln)
Full RGB Lightning Node operations for wallet management, Lightning channels, and asset operations:
- Wallet management: BTC and RGB asset operations with balance tracking
- Channel management: open, monitor, and close Lightning channels
- Invoice operations: create, list, and monitor Lightning invoices
- Payment execution: pay invoices and coordinate node-to-node swaps
- Node info and health: retrieve node configuration and pubkey information
SDK Features
KaleidoClient.create()— synchronous factory for both TypeScript and PythonwaitForSwapCompletion— built-in polling helper with configurable timeout and status callbackPrecisionHandlerandAssetPairMapperutilities for amount conversion and pair lookups- Full error hierarchy:
KaleidoError,NetworkError,ValidationError,APIError,QuoteExpiredError,NodeNotConfiguredError - Auto-generated types from OpenAPI specs (TypeScript:
openapi-fetch; Python: Pydantic models)
API v1
Status: Stable. No breaking changes planned for v1. For the Maker API endpoint groups see Maker API Compatibility, and for the node-side surface see RLN API Compatibility. Live environments and their WebSocket URLs are listed in Getting Started.Roadmap
- Mainnet launch — production environment for real BTC and RGB assets.
- Additional Layer support — Spark, Arkade, and Liquid protocol adapters in the KaleidoSwap Extension.