Overview
This guide walks through swapping native on-chain Bitcoin to tBTC on Ethereum or Arbitrum. The flow is:- Create swap: get a Taproot (P2TR) HTLC address to send BTC to
- Send BTC: fund the HTLC with an on-chain transaction
- Claim tBTC: receive tBTC on the EVM chain once the BTC confirms
On-chain swaps require waiting for Bitcoin confirmations (typically 1–6 blocks) before the server funds the EVM side. For instant swaps, consider using Lightning or Arkade as the source instead.
wei-style units rather than sats.
Create Swap
First create a client (see Setup & Initialization), then create the swap. UseAsset.TBTC_ETHEREUM or Asset.TBTC_ARBITRUM as the target:
- Ethereum
- Arbitrum
Send BTC
Send on-chain Bitcoin to the HTLC address returned in the response:Monitor Swap Status
After broadcasting the BTC transaction, wait for it to confirm and for the server to fund the EVM HTLC. You can either subscribe to real-time updates or poll:- WebSocket (recommended)
- Polling
Claim tBTC
Once the status isserverfunded, claim your tBTC. Claiming is gasless on both Ethereum and Arbitrum via EIP-712 signatures.
Verify Completion
Full example
Full example