> ## Documentation Index
> Fetch the complete documentation index at: https://cobo.com/developers/llms.txt
> Use this file to discover all available pages before exploring further.

# 估算交易费用

> 使用 WaaS 2.0 API 估算交易费用的指南，包括影响费用的因素和计算方法。

<Tip>
  即刻安装 [Cobo WaaS Skill](/developers/v2_cn/guides/overview/cobo-waas-skill)，在 Claude Code、Cursor 等 AI 开发环境中使用自然语言集成 WaaS API，显著提升开发效率 🚀
</Tip>

交易费用对于在区块链网络上处理和验证交易至关重要。它们确保网络安全，激励验证者，并保持效率。计算这些费用的方法取决于区块链的设计和当前的网络状况。Cobo 提供了特定功能来简化用户的交易费用估算。

交易费用是为了在区块链网络上处理和验证交易所需的费用，确保网络的安全性和效率。Cobo 目前提供两种方法来估算交易费用，考虑到来源、目的地以及输入和输出的数量等因素：

* 当您在 Cobo Portal 上进行转账时，您可以在界面上看到估算的交易费用。
* 您可以调用[估算交易费用](/developers/v2/api-references/transactions/estimate-transaction-fee) API 操作。

<Note>估算的交易费用是基于当前的网络状况，实际交易时可能会有所变化。</Note>

当您调用[估算交易费用](/developers/v2/api-references/transactions/estimate-transaction-fee)操作时，您需要指定以下参数：

* `request_type`：交易类型，可以是转账或合约调用。
* `source`：交易来源。
* `destination`：交易目的地。
* （仅对转账需要）`token_id`：所转移代币的 ID。
* （仅对合约调用需要）`chain_id`：智能合约部署所在链的 ID。

您将获得不同费用等级的估算交易费用，具体取决于区块链网络和使用的费用模型。

## 费用模型

每个区块链可能采用多种费用模型来计算交易费用，形成与其费用结构的一对多关系。例如，以太坊支持传统模型和 EIP-1559 模型。

大多数交易都遵循区块链的原生费用模型，但从全托管钱包（资产钱包）和交易所钱包发起的交易总是使用 [Fixed（固定费用模型）](#使用-fixed-模型的链)。如果使用这些钱包发起交易时指定使用其他费用模型，API 请求将会报错。

### EVM 链

#### EIP-1559 模型

部分 EVM 链支持 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559)，当前支持的链包括：

* Ethereum Mainnet
* Sepolia Testnet
* Scroll Mainnet
* Base
* BNB Smart Chain
* Polygon
* Sonic
* Berachain

在 EIP-1559 模型下，交易费用的预估公式为：（Base Fee Per Gas + Priority Fee Per Gas） \* Gas Limit

| 参数                   | 描述                                                                |
| -------------------- | ----------------------------------------------------------------- |
| Base Fee Per Gas     | 每使用一个 Gas Unit 在链上执行交易所需的最低费用。                                    |
| Priority Fee Per Gas | 每使用一个 Gas Unit 向矿工支付的最高额外费用，以优先处理交易。                              |
| Gas Limit            | 你愿意为执行交易或运行以太坊虚拟机 (EVM) 所支付的最大 Gas Unit 数量。不同操作会消耗不同数量的 Gas Unit。 |

<Note>对于 Legacy 和 EIP-1559 费用模型，提交交易 calldata 到 L1（Layer 1）时会额外收取费用，该费用在 API 响应中的 `reserved_fee` 字段体现。</Note>

你可以自定义以下参数的值：

* Max Fee Per Gas：每使用一个 Gas Unit 在链上执行交易所需的最高费用。
* Max Priority Fee Per Gas：每使用一个 Gas Unit 向矿工支付的最高额外费用，以优先处理交易。
* Gas Limit

请参考[估算交易费用](/developers/v2/api-references/transactions/estimate-transaction-fee) 操作的响应结果获取详细字段信息。

#### Legacy 模型

所有 EVM 链均支持 Legacy。

在 Legacy 模型下，交易费用的预估公式为：Gas Price \* Gas Limit

| 参数        | 描述                                                               |
| --------- | ---------------------------------------------------------------- |
| Gas Price | 以 wei 为单位的 Gas 价格，代表每使用一个 Gas Unit 处理交易需支付给验证者的 ETH 数量。          |
| Gas Limit | 你愿意为执行交易或运行以太坊虚拟机 (EVM) 支付的最多 Gas Unit 数量。不同操作会消耗不同数量的 Gas Unit。 |

<Note>对于 Legacy 和 EIP-1559 费用模型，提交交易 calldata 到 L1（Layer 1）时会额外收取费用，该费用在 API 响应中的 `reserved_fee` 字段体现。</Note>

你可以自定义以下参数的值：

* Gas Price
* Gas Limit

请参考[估算交易费用](/developers/v2/api-references/transactions/estimate-transaction-fee) 操作的响应结果获取详细字段信息。

### 基于 UTXO 的链

当前支持的链包括：

* Bitcoin
* Cardano
* Nervos CKB
* Handshake

在基于 UTXO 的链上，交易费用的预估公式为：Fee Rate \* Transaction Size

| 参数               | 描述                                                     |
| ---------------- | ------------------------------------------------------ |
| Fee Rate         | 每字节数据消耗的手续费，表示每 vByte 需要支付多少 satoshis（缩写为 sats/vByte）。 |
| Transaction Size | 交易在区块链上占用的空间大小，影响 UTXO 模型中的总费用。                        |

你可以自定义以下参数的值：

* Fee Rate
* Max Fee Amount：交易费用的最大值

请参考[估算交易费用](/developers/v2/api-references/transactions/estimate-transaction-fee) 操作的响应结果获取详细字段信息。

### Solana 链

在 Solana 链上，可使用原生模型，也可以选择 Legacy 模型。在原生模型下，在原生模型下，预估交易费用的计算公式为：Base Fee + (CU Price \* CU Limit)

| 参数       | 描述                                                                                                           |
| -------- | ------------------------------------------------------------------------------------------------------------ |
| Base Fee | 每个签名固定收取的费用（默认每个签名 5,000 Lamports）。                                                                          |
| CU Price | 每个 CU（Compute Unit，计算单元）的费用，用于提升交易优先级。单位为 Lamports。                                                          |
| CU Limit | 交易允许消耗的最大CU数量。值越高优先级越高，但费用也越高。                                                                               |
| Rent     | 激活 Solana 代币子地址（Associated Token Account，简称 ATA）所需的一次性费用，代币在使用前必须先激活该地址。该费用不包含在 Base Fee 或计算单元费用中，由交易来源地址支付。 |

你可以自定义以下参数的值：

* CU Price
* CU Limit

请参考[估算交易费用](/developers/v2/api-references/transactions/estimate-transaction-fee) 操作的响应结果获取详细字段信息。

<Note>激活 Solana 代币子地址（Associated Token Account）会产生一次性租金，由交易来源地址支付，与网络交易手续费相互独立。详情请参阅 [Solana 代币账户租金](/developers/v2_cn/guides/transactions/solana-token-account-rent)。</Note>

<Note>Solana 和 Filecoin 均支持两种费用模型：其原生模型和 Legacy 模型。调用交易相关 API 时，你可以自行选择使用哪种模型。但对于 Replace-By-Fee（RBF）交易，必须使用与原始交易相同的费用模型。</Note>

### Filecoin 链

在 Filecoin 上，可选择原生模型，也可以选择 Legacy 模型。在原生模型下，预估交易费用的计算公式为：min(Gas Fee Cap, Base Gas + Gas Premium) \* Gas Limit

| 参数          | 描述                                           |
| ----------- | -------------------------------------------- |
| Gas Fee Cap | 你愿意为每单位 Gas 支付的最高价格。                         |
| Base Gas    | 交易打包所需的最低费用，随网络拥堵动态调整，并在支付后销毁，从而减少 FIL 总供应量。 |
| Gas Premium | 用户指定的矿工小费，用于提升交易优先级。                         |
| Gas Limit   | 交易可消耗的最大 Gas 数量。                             |

你可以自定义以下参数的值：

* Gas Fee Cap
* Gas Premium
* Gas Limit

请参考[估算交易费用](/developers/v2/api-references/transactions/estimate-transaction-fee) 操作的响应结果获取详细字段信息。

<Note>Solana 和 Filecoin 均支持两种费用模型：其原生模型和 Legacy 模型。调用交易相关 API 时，你可以自行选择使用哪种模型。但对于 Replace-By-Fee（RBF）交易，必须使用与原始交易相同的费用模型。</Note>

### 使用 Fixed 模型的链

下列链采用固定费用模型（Fixed）：

* TRON
* Algorand
* Polkadot
* Internet Computer 及其 ICRC 资产（ckBTC、ckETH、ckUSDC、ckUSDT、DKP、GLDGOV、ICS、NICP、OC、OGY）
* Stellar
* Ripple
* Tezos
* Sui
* Near

Fixed 模型的交易手续费是一个固定值。你可以自定义的参数 **Max Fee Amount**，以控制最大交易费用。

## 费用等级

交易费用受速度级别的影响。用户可以选择慢速、推荐和快速交易速度，速度越快费用越高。

Cobo 支持 Legacy、EIP-1559、UTXO、Solana 和 Filecoin 模型的三种费用级别：

* 慢速：费用较低，确认时间较长。
* 推荐：费用和确认时间平衡。
* 快速：较高费用以加快处理速度。

## Replace-By-Fee (RBF) 交易费用

Replace-By-Fee (RBF) 是一种允许您用新版本替换未确认交易的功能，新版本通常支付更高的交易费用。这种功能提供了在交易广播后但在确认之前修改交易的灵活性。有关更多详细信息，请参阅 [Replace-By-Fee (RBF) 交易](/developers/v2_cn/guides/transactions/manage-transactions#replace-by-fee-rbf-transactions)。

估算 RBF 交易费用的逻辑与正常交易类似，但增加了 RBF 交易的费用。根据不同的费用模型，估算 RBF 交易费用的关键点如下：

* 传统模型：增加 gas 价格。RBF 交易的 gas 价格必须高于被替换交易的 gas 价格。
* EIP-1559 模型：增加最大 gas 价格和最大优先费用。
* UTXO 模型：增加费率，并确保费率与交易大小的乘积大于原始交易的乘积。如果不满足此条件，节点可能会拒绝广播交易。
* 固定模型：增加固定金额。
* Filecoin 模型：Gas Premium 和 Gas Fee Cap 建议提升 25%。

## Layer 2 链上的费用

在 Arbitrum 等 Layer 2（L2）链上，网络费用可能快速变化。如果您提交交易后费用大幅上涨，交易可能会比预期更长时间地停留在 `PendingSignature` 或 `Broadcasting` 状态。解除阻塞的方式取决于交易状态：

* `Broadcasting`：交易已广播。可以使用 Replace-By-Fee（RBF）加速操作，以更高的费用重新广播交易。如需提高费用，请使用 [Speed up transaction](/developers/v2/api-references/transactions/speed-up-transaction) 操作。有关 RBF 的完整流程，请参阅 [RBF (Replace-By-Fee) 交易生命周期](/developers/v2_cn/guides/transactions/rbf-transaction-lifecycle)。
* `PendingSignature`：交易尚未广播，因此 RBF 不适用。交易必须在有限的签名时间窗口内完成签名；如果未能及时完成签名，交易将失败并显示子状态 `FailedSignerTimeout`。此时请重新发起一笔新交易。有关详细信息，请参阅 [交易状态和子状态](/developers/v2_cn/guides/transactions/status)。

## Cobo 如何估算费用

下列表格展示了不同费用模型下的费用估算方法：

| 费用模型                                                | 估算方法                                                                                                         |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| 传统模型                                                | <ul><li>Gas 价格：根据第三方节点和自管理节点计算。</li><li>Gas 限制：根据来源和目的地从相应节点查询。</li></ul>                                    |
| [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) | <ul><li>最大 gas 价格：根据第三方节点和自管理节点计算。</li><li>最大优先费用：根据第三方节点和自管理节点计算。</li><li>Gas 限制：根据来源和目的地从相应节点查询。</li></ul> |
| UTXO 模型                                             | <ul><li>费率：根据第三方节点和自管理节点计算。</li><li>交易大小：根据来源的可花费输出 (UTXO) 和目的地计算。</li></ul>                                 |
| 固定模型                                                | <ul><li>固定金额：根据自管理节点计算。</li></ul>                                                                            |
