Skip to main content

Documentation Index

Fetch the complete documentation index at: https://utexo-e7ed9bd0-feat-faucet-bot.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through converting native Bitcoin (BTC) into an RGB asset (such as RGB USDT) using the Utexo swap interface and Tribe Wallet. By the end you will have:
  • Sent BTC from your Bitcoin wallet to a Utexo-generated deposit address
  • Received the equivalent RGB asset in your Tribe Wallet
  • Confirmed the transaction status in both interfaces
Looking to go the other direction? See Swap RGB to BTC.

How It Works

Every BTC to RGB swap runs through the HotPot protocol lifecycle:
  1. Quote - Utexo fetches a time-limited quote for the BTC amount and target RGB asset. Quotes expire and must be executed before the expiry timestamp.
  2. Intent - A signed swap intent is created off-chain, committing to the quoted conditions.
  3. HTLC - A P2TR Hash Time-Locked Contract is constructed. You fund the deposit address with the exact BTC amount shown.
  4. Execution - A resolver pays the corresponding RGB-LN invoice off-chain. The HTLC is claimed using the payment preimage on successful delivery.
  5. Settlement - The RGB asset is delivered to the blinded invoice your Tribe Wallet provided. If execution times out, a refund PSBT is generated so you can recover your BTC.
The swap is non-custodial on the RGB side. Utexo does not hold your RGB assets at any point.

Prerequisites

Before you start:
  • Tribe Wallet (mobile app) installed and set up with a funded RGB wallet
  • A Bitcoin wallet with a BTC balance to send (any standard Bitcoin wallet works)
  • UTXOs created in Tribe Wallet before generating an RGB invoice (see Create Wallet)
Always create UTXOs in Tribe Wallet before generating an invoice. Without dedicated UTXOs, RGB asset delivery will fail.

Step 1: Enter the Transfer Details in Utexo

In the Utexo swap interface:
  1. Set You send to BTC (Bitcoin)
  2. Set You receive to the RGB asset you want (for example, RGB USDT)
  3. Enter the amount of BTC you want to send
  4. Click Swap to proceed to the invoice step
The interface shows the estimated RGB amount you will receive after fees, along with the quote expiry time. Proceed before the quote expires.

Step 2: Generate an RGB Invoice in Tribe Wallet

Utexo needs an RGB invoice from your Tribe Wallet to know where to deliver the asset. In Tribe Wallet:
  1. Open Other assets (bottom navigation)
  2. Tap the + icon (top right)
  3. Tap Receive Asset
  4. Select the asset you are receiving (for example, RGB USDT)
  5. Generate an invoice for the expected amount
  6. Select a blinded invoice, then copy it
Always use a blinded invoice. A non-blinded invoice exposes your UTXO to the sender. Tribe Wallet generates blinded invoices by default - confirm this before copying.

Step 3: Paste the Invoice and Confirm

Back in the Utexo interface:
  1. Paste the blinded invoice from Tribe Wallet into the RGB invoice field
  2. Review the swap summary - confirm the asset, amount, and estimated fees
  3. Click Confirm to proceed
Utexo will now display a BTC payment address and QR code for you to fund the HTLC.

Step 4: Pay the BTC Deposit Address

In your Bitcoin wallet:
  1. Scan the QR code shown in Utexo, or copy the BTC payment address manually
  2. Scanning the QR code will auto-fill the recipient address and amount
  3. If pasting manually, paste the payment address and enter the exact BTC amount shown
  4. Review the transaction details, then Swipe to broadcast (or confirm via your wallet’s send flow)
Send exactly the BTC amount shown in Utexo. Sending a different amount may result in a failed or partial swap. The deposit address is tied to a P2TR HTLC - only the exact amount resolves correctly.

Step 5: Track Swap Status

After broadcasting the BTC transaction, monitor progress in both interfaces:
StatusMeaning
InitiatedSwap created; awaiting your BTC deposit
ApprovalAddedHTLC signed; BTC payment pending on-chain
AcceptedResolver accepted the intent and is preparing execution
UserDepositedBTC confirmed on-chain; resolver executing the RGB delivery
FulfilledRGB asset delivered to your Tribe Wallet
ExpiredThe intent expired before execution; a refund PSBT has been generated
RefundRequestedRefund has been initiated
RefundedBTC returned to your refund address
  • In Utexo: the swap status updates through the lifecycle above. Refresh the page to see the latest status.
  • In Tribe Wallet: once status reaches Fulfilled, your balance under Other assets will show the received RGB asset.
On testnet, a new Bitcoin block arrives every 1-10 minutes. On mainnet, expect 10-30 minutes for 1-3 confirmations.

Troubleshooting

IssueLikely causeFix
RGB asset not received after Fulfilled statusInvoice was not blinded, or UTXOs not set upRegenerate a blinded invoice; ensure UTXOs exist in Tribe Wallet
Swap stuck at ApprovalAdded or AcceptedBTC transaction not yet confirmedWait for Bitcoin confirmations; check your tx on a block explorer
Status shows ExpiredIntent expired before BTC was confirmedUse the refund PSBT to recover your BTC; start a new swap
Invoice rejected by UtexoInvoice has expiredGenerate a new invoice in Tribe Wallet and retry
Wrong amount receivedSent a different BTC amount than shownContact Utexo support with your transaction ID

Next Steps