Skip to main content
Send Bitcoin to any on-chain Bitcoin address.
Withdraw to L1

Withdrawal Flow

The complete process for sending Bitcoin to an on-chain Bitcoin address:
1

Get Fee Quote

Request a fee quote for your withdrawal with different speed options.
2

Initiate Withdrawal

Start the withdrawal process using the fee quote.
3

Monitor Status

Track the withdrawal status until completion.
If you have custom L1 requirements like fee control, transaction chaining, or specific broadcast behavior, talk to our team. We can expose lower-level controls to fit your infrastructure needs.

Get Withdrawal Fee Quote

Request fee quotes for different withdrawal speeds before initiating a withdrawal. getWithdrawalFeeQuote(params) Gets a fee quote for a cooperative exit (on-chain withdrawal). The quote includes options for different speeds and an expiry time and must be passed to withdraw before it expires.

Initiate Withdrawal

Start the withdrawal process using a fee quote. withdraw(params) Initiates a cooperative exit to withdraw Bitcoin from Spark to Layer 1.

Monitor Withdrawal Status

Track the status of your withdrawal request. getCoopExitRequest(id) Gets a cooperative exit request by ID to check withdrawal status.

Real-time Withdrawal Monitoring

Monitor withdrawal status by polling getCoopExitRequest().
Withdrawals don’t emit events. Poll the status using getCoopExitRequest() with the withdrawal ID returned from withdraw().