-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Summary
A user has 3,000 sats locked in a BTC HTLC that can be refunded. The timeout has passed but the refund has not been claimed yet.
Swap Details
| Field | Value |
|---|---|
| Swap ID | kH6qIdUAyetA |
| Pair | BTC/cBTC |
| Status | transaction.refunded (cBTC side only) |
| BTC Amount | 3,000 sats |
| Lockup Address | bc1p4malv5m4jzcle5afez3j6uaqaxe3swpe98l9tjpl6jxmcsha52rqem9wd5 |
| Lockup TX | 748f1eefa69e8306bdd917d953b75647a4118d286d07ec75e5725a3faf284828 |
| Timeout Block | 933,983 |
| Current Block | ~934,069+ |
Current State
- ✅ cBTC side was refunded (TX:
0xa1f66707f2ca05eddeb23ee029b591ec81a887a92c01756c40fbee20d94f2167) - ❌ BTC side: 3,000 sats still locked - UTXO is unspent
- ✅ Timeout reached: Refund is possible
How the User Can Claim Their Refund
Option 1: Via Boltz Web Interface (Recommended)
- Go to boltz.exchange or the interface where the swap was created
- Navigate to the Refund section
- Enter the Swap ID:
kH6qIdUAyetA - The interface will detect the refundable swap and guide through the process
- Provide a BTC address to receive the refund
- Sign the refund transaction
Option 2: Via Boltz API
-
Get swap status and refund details:
curl -X GET "https://api.boltz.exchange/v2/swap/chain/kH6qIdUAyetA" -
Request refund transaction:
curl -X POST "https://api.boltz.exchange/v2/swap/chain/kH6qIdUAyetA/refund" \ -H "Content-Type: application/json" \ -d '{ "index": 0, "pubNonce": "<user_public_nonce>", "transaction": "<unsigned_refund_tx>", "address": "<btc_refund_address>" }'
Option 3: Manual Refund (Advanced)
If the user has the original swap data (keys, redeem script), they can construct and broadcast a refund transaction manually:
-
Prerequisites:
- Private key used to create the swap
- Refund public key
- Swap tree / redeem script
- Timeout block height:
933983
-
Construct refund transaction:
- Input: UTXO
748f1eefa69e8306bdd917d953b75647a4118d286d07ec75e5725a3faf284828:0 - Use the timeout path of the HTLC script
- Since current block > 933,983, the timelock condition is satisfied
- Input: UTXO
-
Sign and broadcast via any Bitcoin node or service like mempool.space
Important Notes
- ⏰ No deadline: Once the timeout is reached, the user can claim the refund at any time
- 💰 Amount: 3,000 sats (minus transaction fee for the refund TX, ~200-500 sats depending on fee rate)
- 🔐 Requirement: User needs the original key/seed used when creating the swap
Action Items
- Attempt to contact the user (check if webhook or referral data exists)
- Document this case for potential UX improvements (auto-refund notification)
- Consider implementing automatic refund reminders for stuck swaps
Detected on 2026-01-28 via debug query analysis
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels