Skip to main content

Client + config

import { BridgeSDK } from "@satsterminal-sdk/bridge";
// or via suite: const { bridge } = createClient({ apiKey, bridge: true });

const bridge = new BridgeSDK({ apiKey, baseUrl }); // baseUrl optional; defaults to core API
  • Amounts: strings (u64) to avoid precision loss.
  • Payloads map camelCase params to snake_case bodies (e.g., userPublicKey -> user_public_key).
  • Namespace: bridge.spark.runes (top-level methods remain for Runes).

Methods

bridge.spark.runes.getBTCDepositAddress(params)

Issue a BTC deposit address for bridging Runes to Spark.
ParamTypeNotes
userPublicKeystringUser pubkey used to derive the multisig
runeIdstringRune identifier (e.g., 840000:3)
amountstringRequested amount (u64 string)
Returns: { address: string } Also available as bridge.getBTCDepositAddress(...).

bridge.spark.runes.bridgeRunes(params)

Submit a proof of BTC deposit to kick off minting on Spark.
ParamTypeNotes
btcAddressstringUser’s BTC address used for the deposit
bridgeAddressstringBridge-issued BTC deposit address (from getBTCDepositAddress)
txidstringDeposit transaction id
voutnumberOutput index with the rune deposit
Returns: { requestId: string } Also available as bridge.bridgeRunes(...).

bridge.spark.runes.getActivity(userPublicKey)

Fetch bridge activity for a user. Returns: SparkRunesBridgeActivity[] Also available as bridge.getActivity(...).

bridge.spark.runes.getTransaction(txid)

Fetch a single bridge activity by transaction id. Returns: SparkRunesBridgeActivity Also available as bridge.getTransaction(...).

Activity shape

FieldTypeNotes
runeIdstringRune identifier
amountstringRequested amount
normalizedAmountstringNormalized u64 amount
btcDepositAddressstringAddress used for BTC-side deposit
sparkBridgeAddress?stringSpark-side deposit address (wRunes exit)
status"failed" | "pending" | "address_issued" | "waiting_for_confirmations" | "ready_for_mint" | "spent" | "minted"Lifecycle state
confirmations?numberBTC confirmations seen
txid?stringDeposit transaction id
vout?numberDeposit output index
wruneMetadata?anyToken metadata, if available
Use getActivity to poll until minted (Runes -> Spark) or spent (Spark -> Runes) depending on direction.

Status reference

StatusMeaning
pendingRequest registered, awaiting deposit info
address_issuedDeposit/exit address generated
waiting_for_confirmationsDeposit detected; waiting for BTC confs or Spark balance check
ready_for_mintVerification passed; mint/burn in progress
mintedSpark mint completed (Runes -> Spark)
spentBTC payout built/sent (Spark -> Runes)
failedTerminal failure; retry by requesting a new address