Skip to main content

createClient

import { createClient } from "satsterminal-sdk";
import { ChainType } from "@satsterminal-sdk/borrow";

const { swaps, borrow, bridge } = createClient({
  apiKey: process.env.API_KEY!,
  borrow: {
    chain: ChainType.BASE,
    wallet: /* your wallet provider */
  },
  bridge: true, // omit to skip initialization
});

Swaps via suite

const quote = await swaps.swapQuote({
  amount: "0.001",
  fromToken: "BTC",
  toToken: "USDC",
  address: "bc1...",
  protocol: "runes",
  params: {}
});

Borrow via suite

const setup = await borrow.setup();
const { userStatus } = setup;

// Start a new loan wallet (advanced)
await borrow.startNewLoan();

Bridge via suite

const btcDeposit = await bridge.spark.runes.getBTCDepositAddress({
  userPublicKey: "0x...",
  runeId: "840000:3",
  amount: "1000000",
});

const { requestId } = await bridge.spark.runes.bridgeRunes({
  btcAddress: "bc1...",
  bridgeAddress: btcDeposit.address,
  txid: "<deposit-txid>",
  vout: 0,
});
Spark Stables quote (USDC -> USDB on Spark):
const quote = await bridge.spark.stables.quote({
  sourceChain: "solana",
  amount: "1000000",
  userSparkAddress: "spark1...",
});

Legacy compatibility

Existing swaps partners can keep:
import { SatsTerminal } from "satsterminal-sdk";
const swaps = new SatsTerminal({ apiKey: process.env.API_KEY! });