Skip to main content
Bitcoin settlement uses Taproot (P2TR) outputs and BIP 174 PSBTs. No smart contract is deployed on Bitcoin.

HTLC lock output

Every deposit locks funds to a unique Taproot output with three script leaves:
  • secretHash is double SHA-256 of the 32-byte secret.
  • The internal key may be a NUMS point or a resolver-selected key. RGB USDT swaps use a NUMS internal key; see RGB USDT in Utexo Swap.
  • The resolver returns the refund and fast-refund control blocks to Utexo and keeps the withdraw control block internally.

Deposit transaction

Intent tagging

Every deposit contains an OP_RETURN output that tags the intent:

PSBT inputs

Outputs

The deposit transaction has two or three outputs. Confirm the purpose of the optional third output with Utexo before adding change outputs.

Spend paths

Key-spend path

Used for deposit input signing, fulfillment, and native transfers. Witness:

Resolver withdraw (script-path)

Witness:

Fast refund (script-path)

Cooperative script-path spend co-signed by the protocol and the resolver.

Timelock refund

Script-path refund after deadline.
Confirm the final witness stack for the timelock refund path with Utexo before constructing this witness.

Fee model

The resolver computes fees from a header plus per-input and per-output costs:
Default fee rate: 3 sat/vB.

Size table