> For the complete documentation index, see [llms.txt](https://help.tpwallet.io/cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.tpwallet.io/cn/faq/btcwallet/utxo.md).

# 什么是UTXO

UTXO是“未花费的交易输出”的缩写。自定义UTXO即在发送交易时，可以选择优先使用哪些UTXO，使用更加经济的UTXO组合或者指定特定的UTXO进行交易。此外，TokenPocket还支持较低的矿工费设置。通过矿工费设置和自定义UTXO的组合，用户可以不用担心“矿工费不足”的问题。用户可以转移剩余的比特币。任何数量比特币都不会在日常交易或最后一笔交易中浪费。

例如：&#x20;

A 向 B 转账 1BTC

C 向 B 转账 0.5BTC&#x20;

此时 B 的BTC地址上有2个UTXO，B的余额就是1.5BTC，B的钱包中有2个UTXO可以使用，分别是：

UTXO1：1BTC

UTXO2：0.5BTC

如果采用的是账户/余额模型，比如以太坊在账户中存储的是一个汇总的ETH余额，即1.5ETH。

UTXO类似于我们的钱包中不同面额的纸币，例如5张100元、6张50元......钱包中有多少钱，无非就是把这些不同面额的纸币加起来后的一个总金额。

当明白了UTXO的概念后，使用UTXO转账的过程就容易理解了，当要进行转账时，支付的就是UTXO或UTXO组合。其实，使用UTXO转账的过程，和我们平时拿纸币去购物支付的过程是一样的。

例如，在上例中，B的地址中有两笔UTXO，分别为 1BTC 和 0.5BTC，现在，B 要向 D 转账0.3BTC，那么，理论上来说 B 有两种转账方案（为了便于理解，转账费用暂不考虑）：

第一种方案：B 使用1BTC的UTXO给D转账0.3BTC，会收到0.7BTC的找零；

第二种方案：B 使用0.5BTC的UTXO给 D 转账0.3BTC，会收到0.2BTC找零；

如果 B 向 D 转账1.4 BTC，则需要这两笔 UTXO 都花费出去，然后会收到 0.1BTC 的找零。（为了方便解释，以上案例忽略了矿工费）

矿工费的多少与钱包的类型，花费UTXO的数量，以及输出新UTXO的数量有关。

TokenPocket 的 BTC 钱包是支持自定义 UTXO 功能的，即在转账交易时可以自主选择具体使用哪个/哪些UTXO，从而使用更加经济的UTXO组合或者指定花费特定 UTXO 来进行交易，以达到节省矿工费等目的。
