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, per source.
  • 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 source states there are exactly two or three outputs, but does not define the optional third output. Do not invent change behavior; see Validation Gaps.

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.
The source does not document the final witness stack for the timelock refund path. Confirm with the current implementation 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