Skip to main content

Client Initialization

import { KaleidoClient } from 'kaleidoswap-sdk';

const client = KaleidoClient.create({
  baseUrl: 'https://api.regtest.kaleidoswap.com',
  nodeUrl: 'http://localhost:3001',  // optional
  apiKey: 'your-api-key',           // optional
  timeout: 30,                       // optional, seconds
  maxRetries: 3,                     // optional
  cacheTtl: 60,                      // optional, seconds
});

client.hasNode();  // boolean -- check if nodeUrl is configured
client.maker;      // MakerClient instance
client.rln;        // RlnClient instance

MakerClient (client.maker)

All market, order, swap, and LSPS1 operations are accessed via client.maker.

Market Operations

listAssets / list_assets

List all available assets.
const response = await client.maker.listAssets();
// Returns: MarketListAssetsResponse

listPairs / list_pairs

List all available trading pairs with min/max limits and supported layers.
const response = await client.maker.listPairs();
// Returns: ListPairsResponse

getQuote / get_quote

Get a price quote for a swap.
const quote = await client.maker.getQuote({
  from_asset: { asset_id: 'BTC', layer: 'BTC_LN', amount: 100000 },
  to_asset: { asset_id: 'USDT', layer: 'RGB_LN' }
});
// Returns: GetQuoteResponse

getPairRoutes / get_pair_routes

Get available routes for a trading pair.
const routes = await client.maker.getPairRoutes({ /* GetPairRoutesRequest */ });
// Returns: GetPairRoutesResponse

getMarketRoutes / get_market_routes

Discover routes across the market.
const routes = await client.maker.getMarketRoutes({ /* DiscoverRoutesRequest */ });
// Returns: DiscoverRoutesResponse

Swap Order Operations

createSwapOrder / create_swap_order

Create a new swap order from a quote.
const order = await client.maker.createSwapOrder({
  rfq_id: quote.rfq_id,
  from_asset: { asset_id: 'BTC', layer: 'BTC_LN', amount: 100000 },
  to_asset: { asset_id: 'USDT', layer: 'RGB_LN', amount: 9500 },
  receiver_address: 'lnbc1...',
  min_onchain_conf: 1
});
// Returns: CreateSwapOrderResponse (order_id, deposit_address, status)

getSwapOrderStatus / get_swap_order_status

Get the current status of a swap order.
const status = await client.maker.getSwapOrderStatus({ order_id: 'order-123' });
// Returns: GetSwapOrderStatusResponse

getOrderHistory / get_order_history

Get order history with optional filters.
const history = await client.maker.getOrderHistory({
  status: 'FILLED',
  limit: 10,
  skip: 0
});
// Returns: GetOrderHistoryResponse

getOrderAnalytics / get_order_analytics

Get order statistics and analytics.
const stats = await client.maker.getOrderAnalytics();
// Returns: GetOrderStatsResponse

submitRateDecision / submit_rate_decision

Accept or reject a rate change on a pending order.
const result = await client.maker.submitRateDecision({
  order_id: 'order-123',
  accept_new_rate: true
});
// Returns: SwapOrderRateDecisionResponse

waitForSwapCompletion / wait_for_swap_completion

Poll an order until it reaches a final state.
const completed = await client.maker.waitForSwapCompletion('order-123', {
  timeout: 300,        // seconds
  pollInterval: 10,    // seconds
  onStatusUpdate: (status) => console.log(`Status: ${status}`)
});
// Returns: SwapOrder

Atomic Swap Operations

These methods support the lower-level atomic swap protocol for direct node-to-node swaps.

initSwap / init_swap

Initiate an atomic swap.
const result = await client.maker.initSwap({ /* InitiateSwapRequest */ });

executeSwap / execute_swap

Execute/confirm an atomic swap.
const result = await client.maker.executeSwap({ /* ConfirmSwapRequest */ });

getAtomicSwapStatus / get_atomic_swap_status

Get atomic swap status.
const status = await client.maker.getAtomicSwapStatus({ /* GetSwapStatusRequest */ });

getSwapNodeInfo / get_swap_node_info

Get node information for swaps.
const info = await client.maker.getSwapNodeInfo();

LSPS1 Operations

getLspInfo / get_lsp_info

Get LSP (Lightning Service Provider) information.
const info = await client.maker.getLspInfo();

getLspNetworkInfo / get_lsp_network_info

Get LSP network information.
const networkInfo = await client.maker.getLspNetworkInfo();

createLspOrder / create_lsp_order

Create an LSPS1 channel order.
const order = await client.maker.createLspOrder({ /* CreateLspOrderRequest */ });

getLspOrder / get_lsp_order

Get LSPS1 order status.
const order = await client.maker.getLspOrder({ order_id: 'lsp-order-123' });

estimateLspFees / estimate_lsp_fees

Estimate fees for an LSPS1 channel order.
const fees = await client.maker.estimateLspFees({ /* CreateLspOrderRequest */ });

submitLspRateDecision / submit_lsp_rate_decision

Accept or reject a rate change on an LSP order.
const result = await client.maker.submitLspRateDecision({ /* LspRateDecisionRequest */ });

retryAssetDelivery / retry_asset_delivery

Retry asset delivery for a failed order.
const result = await client.maker.retryAssetDelivery({ /* RetryDeliveryRequest */ });

WebSocket Operations

enableWebSocket / enable_websocket

Enable WebSocket for real-time quote streaming.
const ws = client.maker.enableWebSocket('wss://api.kaleidoswap.com/ws/my-client-id');
// Returns: WSClient

streamQuotes / stream_quotes

Stream real-time quotes for a specific route.
const unsubscribe = await client.maker.streamQuotes(
  'BTC',           // from_asset
  'USDT',          // to_asset
  100000,          // from_amount
  'BTC_LN',        // from_layer
  'RGB_LN',        // to_layer
  (quote) => {
    console.log(`Price: ${quote.price}`);
  }
);
// Call unsubscribe() to stop streaming

streamQuotesByTicker / stream_quotes_by_ticker

Stream quotes by ticker with auto-discovered routes.
const unsubscribe = await client.maker.streamQuotesByTicker(
  'BTC',           // fromTicker
  'USDT',          // toTicker
  100000,          // amount
  (quote) => console.log(`Quote: ${quote.price}`),
  { preferredFromLayer: 'BTC_LN', preferredToLayer: 'RGB_LN' }
);

streamQuotesForAllRoutes / stream_quotes_for_all_routes

Stream quotes for all available routes between two assets.
const unsubscribers = await client.maker.streamQuotesForAllRoutes(
  'BTC', 'USDT', 100000,
  (route, quote) => console.log(`${route}: ${quote.price}`)
);
// Returns: Map<string, () => void>

getAvailableRoutes / get_available_routes

Get available routes for a trading pair.
const routes = await client.maker.getAvailableRoutes('BTC', 'USDT');
// Returns: Array<{ from_layer: string; to_layer: string }>

Convenience Methods

toRaw / to_raw

Convert a display amount to raw (smallest unit) amount.
const raw = client.maker.toRaw(0.001, 8);  // 100000

toDisplay / to_display

Convert a raw amount to display amount.
const display = client.maker.toDisplay(100000, 8);  // 0.001

RlnClient (client.rln)

All RGB Lightning Node operations are accessed via client.rln. Requires nodeUrl / node_url to be configured.

Wallet Management

Method (TS)Method (Python)Description
getNodeInfo()get_node_info()Get node information (pubkey, alias, etc.)
getNetworkInfo()get_network_info()Get network information
initWallet(body)init_wallet(body)Initialize a new wallet
unlockWallet(body)unlock_wallet(body)Unlock the wallet
lockWallet()lock_wallet()Lock the wallet
changePassword(body)change_password(body)Change wallet password
backup(body)backup(body)Backup node data
restore(body)restore(body)Restore from backup
shutdown()shutdown()Shut down the node

BTC Operations

Method (TS)Method (Python)Description
getAddress()get_address()Get a Bitcoin address
getBtcBalance(skipSync?)get_btc_balance(skip_sync?)Get BTC balance
sendBtc(body)send_btc(body)Send BTC on-chain
listTransactions(request?)list_transactions(request?)List transactions
listUnspents()list_unspents()List unspent outputs
createUtxos(body)create_utxos(body)Create UTXOs
estimateFee(body)estimate_fee(body)Estimate transaction fee

RGB Asset Operations

Method (TS)Method (Python)Description
listAssets(filter?)list_assets(filter?)List RGB assets
getAssetBalance(body)get_asset_balance(body)Get asset balance
getAssetMetadata(body)get_asset_metadata(body)Get asset metadata
getAssetMedia(body)get_asset_media(body)Get asset media
issueAssetNIA(body)issue_asset_nia(body)Issue NIA asset
issueAssetCFA(body)issue_asset_cfa(body)Issue CFA asset
issueAssetUDA(body)issue_asset_uda(body)Issue UDA asset
sendAsset(body)send_asset(body)Send RGB asset
listTransfers(body)list_transfers(body)List transfers
refreshTransfers(body?)refresh_transfers(body?)Refresh transfer status
failTransfers(body)fail_transfers(body)Fail pending transfers

Lightning Channels

Method (TS)Method (Python)Description
listChannels()list_channels()List all channels
openChannel(body)open_channel(body)Open a new channel
closeChannel(body)close_channel(body)Close a channel
getChannelId(body)get_channel_id(body)Get channel ID

Lightning Peers

Method (TS)Method (Python)Description
listPeers()list_peers()List connected peers
connectPeer(body)connect_peer(body)Connect to a peer
disconnectPeer(body)disconnect_peer(body)Disconnect a peer

Invoices and Payments

Method (TS)Method (Python)Description
createLNInvoice(body)create_ln_invoice(body)Create Lightning invoice
createRgbInvoice(body)create_rgb_invoice(body)Create RGB invoice
decodeLNInvoice(body)decode_ln_invoice(body)Decode Lightning invoice
decodeRgbInvoice(body)decode_rgb_invoice(body)Decode RGB invoice
getInvoiceStatus(body)get_invoice_status(body)Get invoice status
sendPayment(body)send_payment(body)Send Lightning payment
keysend(body)keysend(body)Send keysend payment
listPayments()list_payments()List payments
getPayment(body)get_payment(body)Get payment details

Swap Operations (Node-Level)

Method (TS)Method (Python)Description
getTakerPubkey()get_taker_pubkey()Get taker public key
whitelistTrade(body)whitelist_swap(body)Whitelist a trade
makerInit(body)maker_init(body)Initialize maker swap
makerExecute(body)maker_execute(body)Execute maker swap
listSwaps()list_swaps()List all swaps
getSwap(body)get_swap(body)Get swap details

Utility Methods

Method (TS)Method (Python)Description
signMessage(body)sign_message(body)Sign a message
sendOnionMessage(body)send_onion_message(body)Send an onion message
checkIndexerUrl(body)check_indexer_url(body)Check indexer URL
checkProxyEndpoint(body)check_proxy_endpoint(body)Check proxy endpoint
revokeToken(body)revoke_token(body)Revoke auth token