
Deposit Flow
The complete process for depositing Bitcoin from Layer 1 into your Spark wallet:1
Generate Deposit Address
Create a static deposit address that can be reused for multiple deposits.
2
Send Bitcoin
Send Bitcoin from any wallet to your deposit address.
3
Monitor Transaction
Wait for the transaction to be confirmed on the blockchain.
4
Claim Deposit
Claim the deposit once it has 3 confirmations.
Generate Static Deposit Address
For Bitcoin deposits on L1, Spark generates P2TR addresses. These addresses start withbc1p for mainnet and can be used to receive Bitcoin from any wallet.
Static deposit addresses are reusable, allowing the same address to receive multiple deposits. This approach is user-friendly, minimizes operational overhead, and is ideal for production applications.
Currently, Spark supports one static deposit address per wallet. Creating a second static address will return your existing address instead of generating a new one.
bc1p5d7rjq7g6rdk2yhzks9smtbqtedr4dekq08ge8ztwac72sfr9rusxg3297
Deposit Bitcoin
Mainnet Deposits
To deposit Bitcoin on the mainnet, send funds to your static deposit address.Regtest Deposits
For testing purposes on the Regtest network, use the faucet to fund your Spark wallet without using real Bitcoin.Monitor for Deposit Transactions
After sending Bitcoin to your deposit address, you’ll need to monitor for incoming transactions using a blockchain explorer or your own infrastructure.Since static addresses can receive multiple deposits, you need to actively monitor the address for new transactions.
Claiming Deposits
Once a deposit is found on the blockchain, you can claim it by providing the transaction ID.You can call
getClaimStaticDepositQuote anytime after the deposit transaction is made, but claimStaticDeposit will only succeed after the deposit transaction has 3 confirmations.Refunding Static Deposits
If you need to recover funds from a static deposit address without bringing them into Spark, you can refund the deposit back to a Bitcoin address:- You don’t like the quote from
getClaimStaticDepositQuote - You prefer to avoid the double-fee scenario (claim fee + cooperative exit fee)
- You want to send funds to a different address without using Spark
Confirmation Requirements
- Deposits require 3 confirmations on L1
- Funds will be available in your Spark wallet after claiming
- Static deposits require manual claiming after confirmation
Best Practices
- Start with a small test amount for your first deposit
- Keep track of your deposit transaction IDs
- Wait for the required confirmations before considering the deposit complete
- Save your static deposit address for easy reuse across multiple deposits
- When refunding deposits, ensure your fee is at least 300 sats
- Monitor your deposit address using reliable blockchain infrastructure
