Skip to Content
BuildThe Lombard SDKConceptsBTC Deposit Addresses

BTC Deposit Addresses

Each combination of destination chain, recipient address, and Partner ID receives a unique Bitcoin deposit address. These addresses are generated through the SDK and support multiple deposits.


Key Characteristics

  • Bound to specific destination chains, partner IDs, and recipients
  • Support multiple deposits — each processed independently
  • Connected to authorization signatures on Ethereum Mainnet
  • Addresses never expire (but fee authorization signatures may)

Generating a Deposit Address

const sdk = createLombardSDK(config); const stake = sdk.chain.btc.stake({ destChain: Chain.ETHEREUM, assetOut: AssetId.LBTC, }); await stake.prepare({ amount: '0.1', recipient: '0x1234567890abcdef1234567890abcdef12345678', }); await stake.authorize(); const depositAddress = await stake.generateDepositAddress(); // depositAddress: 'bc1q...'

Checking Existing Addresses

Use the API to check if a deposit address already exists:

const existingAddress = await sdk.api.depositAddress( recipientAddress, chainId );

This helps avoid unnecessary regeneration for returning users.


Address Reusability

Once generated, a single deposit address can receive multiple deposits. Each deposit is processed independently, eliminating the need to create new addresses for subsequent transactions.


Signature Expiration

While deposit addresses persist indefinitely, fee authorization signatures for Ethereum Mainnet may expire after a defined period. When expiration occurs, re-authorization becomes necessary before generating a replacement address.


Multi-Chain Support

Different destination chains require separate deposit addresses. Execute the generation workflow independently for each target blockchain.

Last updated on