Learn about the process of withdrawing BTKN tokens from Spark to Bitcoin L1
This feature is currently under development and will be available in a future
release of Spark.
Users can withdraw their tokens to L1 Bitcoin at any time - Withdrawals
follow Spark’s unilateral exit mechanism - Token metadata is preserved during
the withdrawal process
When a receiver wants to withdraw their funds to L1 they must create a Bitcoin transaction with the TTXO they want to withdraw and an L1 UTXO as an input to cover newtork fees and the required withdrawalBond in Sats. All output addresses must be P2TR with following conditions:
Can be spent instantly either by using revocation secret (as key-spend path) or
With receiver signature after timelockForSpendingOfWithdrawedFunds timelock (as script-spend path).
What prevents a Wallet from Broadcasting a Transaction with a Different Revocation Commitment, Script, or Bond?This is a valid concern. Any TTXO Owner could broadcast an L1 transaction with unexpected parameters that the Bitcoin Network would consider valid and include in a block.However, this is where the BTKN Node network comes into play. While this document doesn’t go deep into the BTKN network, BTKN nodes are essential for providing final confirmation of the current state of token holdings on both the Spark Network and on Bitcoin L1.If a modified/unexpected transaction is broadcast (with different withdrawal bonds, revocation public keys, scripts, etc.), it would still be confirmed on-chain but the BTKN nodes would recognize that the transaction does not meet the required criteria and would mark this transaction as ‘invalid’ and not consider the funds moved.Any BTKN-enabled L1 wallet can communicate with a trusted BTKN node in order to distinguish valid BTKN exit transactions from invalid transactions.