WDK logoWDK documentation

Wallet Spark Configuration

Configuration options and settings for @tetherto/wdk-wallet-spark

Configuration

Wallet Configuration

const config = {
  network: 'MAINNET', // 'MAINNET', 'SIGNET', or 'REGTEST'
  sparkscan: {
    apiKey: 'your-api-key-here'
  },
  syncAndRetry: true
}

const wallet = new WalletManagerSpark(seedPhrase, config)

Account Creation

// WalletAccountSpark is created by the WalletManagerSpark
// It does not take configuration parameters directly
const account = await wallet.getAccount(0) // Get account at index 0

Configuration Options

Network

The network option specifies which Spark network to use.

Type: string

Values:

  • "MAINNET" - Spark mainnet (production)
  • "SIGNET" - Spark signet (testing)
  • "REGTEST" - Spark regtest (local development) - Get test funds

Default: "MAINNET"

Example:

const config = {
  network: 'REGTEST' // Use REGTEST for development
}

SparkScan Balance Polling

The sparkscan option configures SparkScan-backed balance polling for getBalance().

Type: SparkScanConfig (optional)

Fields:

  • baseUrl - Optional SparkScan URL, default: https://api.sparkscan.io
  • network - Optional Spark network. SparkScan supports MAINNET and REGTEST
  • apiKey - Optional SparkScan API key

Example:

const config = {
  network: 'MAINNET',
  sparkscan: {
    apiKey: 'your-api-key-here'
  }
}

When sparkscan is configured, getBalance() returns SparkScan's soft balance from btcSoftBalanceSats.

Automatic Retry

The syncAndRetry option tells sendTransaction() and payLightningInvoice() to sync wallet state and retry once after a failure.

Type: boolean (optional)

Default: false

Example:

const config = {
  network: 'MAINNET',
  syncAndRetry: true
}

You can also call syncWalletBalance() directly when you want to reconcile wallet state before retrying an operation.

Network Configuration

The wallet can be configured for different Spark networks:

// Mainnet configuration
const mainnetConfig = {
  network: 'MAINNET'
}



// Regtest configuration
const regtestConfig = {
  network: 'REGTEST'
}

BIP-44 Derivation Path

Spark uses the BIP-44 coin type 998, resulting in derivation paths like:

  • m/44'/998'/0'/0/0 for MAINNET account index 0
  • m/44'/998'/0'/0/1 for MAINNET account index 1
  • m/44'/998'/2'/0/0 for SIGNET account index 0
  • m/44'/998'/3'/0/0 for REGTEST account index 0

The path follows the pattern m/44'/998'/{networkNumber}'/0/{index} where:

  • 998 is the coin type for Spark
  • networkNumber is 0 for MAINNET, 2 for SIGNET, or 3 for REGTEST
  • index is the account index

This ensures compatibility with standard BIP-44 wallets while using Spark's unique coin type identifier.

Complete Configuration Example

import WalletManagerSpark from '@tetherto/wdk-wallet-spark'

// Create wallet manager with configuration
const seedPhrase = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'
const wallet = new WalletManagerSpark(seedPhrase, {
  network: 'MAINNET',
  sparkscan: {
    apiKey: 'your-api-key-here'
  },
  syncAndRetry: true
})

// Get accounts (no additional configuration needed)
const account0 = await wallet.getAccount(0)
const account1 = await wallet.getAccount(1)

// Clean up when done
wallet.dispose()

Need Help?

On this page