Skip to main content

Overview

The SDK ships generated API models plus a thin handwritten client layer.
  • TypeScript exports its request and response types from kaleido-sdk
  • Python exports Pydantic models from kaleido_sdk

Client Config

TypeScript

import type { KaleidoConfig } from 'kaleido-sdk';

const config: KaleidoConfig = {
  baseUrl: 'https://api.regtest.kaleidoswap.com',
  nodeUrl: 'http://localhost:3001',
  apiKey: process.env.KALEIDO_API_KEY,
  timeout: 30,
  logLevel: 'info',
  logger: console,
};
KaleidoConfig currently supports:
  • baseUrl?
  • nodeUrl?
  • apiKey?
  • timeout?
  • logLevel?
  • logger?

Python

Python does not expose a separate constructor object for normal use. Configure the client via KaleidoClient.create(...):
import logging
from kaleido_sdk import KaleidoClient

client = KaleidoClient.create(
    base_url="https://api.regtest.kaleidoswap.com",
    node_url="http://localhost:3001",
    api_key=None,
    timeout=30.0,
    max_retries=3,
    cache_ttl=60,
    log_level=logging.INFO,
)

Common Enums and Models

import type {
  Asset,
  CreateSwapOrderRequest,
  PairQuoteRequest,
  PairQuoteResponse,
  SwapOrderStatusRequest,
  TradingPair,
} from 'kaleido-sdk';
import { Layer, ReceiverAddressFormat } from 'kaleido-sdk';

Layers

The SDK uses the shared Layer enum for routing assets across supported networks.
import { Layer } from 'kaleido-sdk';

const fromLayer = Layer.BTC_LN;
const toLayer = Layer.RGB_LN;

Receiver Address Formats

Use ReceiverAddressFormat when creating order-based swaps that need a destination.
import { ReceiverAddressFormat } from 'kaleido-sdk';

const format = ReceiverAddressFormat.BOLT11;

Quote Models

import type { PairQuoteRequest, PairQuoteResponse } from 'kaleido-sdk';

const request: PairQuoteRequest = {
  from_asset: { asset_id: 'BTC', layer: Layer.BTC_LN, amount: 100000 },
  to_asset: { asset_id: 'USDT', layer: Layer.RGB_LN },
};

const response: PairQuoteResponse = await client.maker.getQuote(request);

Order Models

import type {
  CreateSwapOrderRequest,
  SwapOrder,
  SwapOrderStatusRequest,
  SwapOrderStatusResponse,
} from 'kaleido-sdk';
Notable fields used by the current client implementations:
  • CreateSwapOrderRequest: rfq_id, from_asset, to_asset, receiver_address, min_onchain_conf?
  • CreateSwapOrderResponse: id, rfq_id, status, access_token, deposit_address?
  • SwapOrderStatusRequest: order_id, access_token?

Utility Types

TypeScript also exports WebSocket and logging-related types from the package root:
import type { QuoteResponse, LogLevelValue, SdkLogger, SwapCompletionOptions } from 'kaleido-sdk';
Python exposes the polling helper type used by wait_for_swap_completion(...):
from kaleido_sdk import SwapCompletionOptions