# CCTP 到账数量和费用不符：分开 bps、转发费、allowance与预付

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/cctp-v2-fee-bps-forwarding-upfront-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

按原路线和finality保存费用记录，区分比例费、USDC最小单位、Fast流动性额度和源链预付，保留文档与部署差异。

## 使用工具
- [Circle CCTP](https://lianxiaozhi.com/tools/circle-cctp) · [官方入口](https://developers.circle.com/cctp)

## 前置条件
- 已有去敏费用结果、burn参数及目标回执，注明环境、source/destination domain和费用记录时间。
- 只复核原记录与本地算术，不请求报价、读取账户、增加maxFee、授权或发送burn。

## 1. 用路线和finality选择费用条目

当前方法是/v2/burn/USDC/fees/{sourceDomainId}/{destDomainId}；旧fastBurn费用端点已弃用，但fastBurn allowance方法没有同样弃用。

响应按实际finalityThreshold选择记录，不盲取数组第一个。1000/2000是等级，字段不存在或路线/环境不一致时保留待核。

核对结果：费用绑定正确路线、环境、时间和finality，不用旧端点或数组顺序替代。
依据：[Circle：bps费用与转发minor units](https://developers.circle.com/api-reference/cctp/all/get-burn-usdc-fees)
依据：[Circle：V2消息、finality与过期恢复](https://developers.circle.com/cctp/references/technical-guide)

## 2. 把bps和最小单位分开计算

minimumFee是bps，1bps=0.01%；forwardFee是USDC minor units，两者不能直接相加。forward默认false，hyperCoreDeposit只应在forward=true且目标为HyperEVM时使用。

离线例子：假设转移1000 USDC、比例费1.4bps，比例部分是0.14 USDC；这不是当前路线报价。换算最小单位要先确认实际精度，不能将所有网络金额一律乘同一尺度。

核对结果：比例、币值和最小单位各自标明，原费用记录没有浮点丢失或单位混加。
依据：[Circle：bps费用与转发minor units](https://developers.circle.com/api-reference/cctp/all/get-burn-usdc-fees)
依据：[Circle：费用、maxFee与合约版本](https://developers.circle.com/cctp/concepts/fees)
依据：[Circle：V2消息、finality与过期恢复](https://developers.circle.com/cctp/references/technical-guide)

## 3. 检查maxFee、实际费用及文档冲突

maxFee是可接受上限，feeExecuted是消息中的实际费用；不能把上限当已扣金额。费用页既描述费用不足在源链回滚，也写可能从Fast降为Standard。

费开关与部署版本不同；旧TokenMessengerV2没有getMinFeeAmount，调用报错不等于费用为0。保留当时合约、参数、成功/回滚和消息，不凭一段文字替实际行为定性。

核对结果：费用上限、实际扣费和回滚/降级按原记录分列，版本未知保留。
依据：[Circle：费用、maxFee与合约版本](https://developers.circle.com/cctp/concepts/fees)
依据：[Circle：V2消息、finality与过期恢复](https://developers.circle.com/cctp/references/technical-guide)

## 4. 区分Fast额度与钱包授权

Fast allowance方法的allowance为完整USDC单位、最多六位小数，lastUpdated为UTC ISO时间；它不是ERC20 spender授权或当前账户可用余额。

静态旧额度例子不证明本次可用。旧快照、读取失败和0分别记录，不因为费用记录取得就承诺Fast执行或固定速度。

核对结果：额度的单位、时间和角色清楚，没有当成钱包余额或实时保证。
依据：[Circle：全单位Fast allowance与UTC时间](https://developers.circle.com/api-reference/cctp/all/get-fast-burn-usdc-allowance)
依据：[Circle：费用、maxFee与合约版本](https://developers.circle.com/cctp/concepts/fees)

## 5. 确定费用是目标扣除还是源链预付

默认费用随转移在目标mint时扣除；Upfront模式通过源链TokenMessengerWithFees按签名quote另付费用，使接收方得到转移额。费用可选原生gas token或USDC。

原记录需分开burn转移额、预付费用币种和quote期限；已支付源链费用仍不证明目标到账。没有upfront证据时不能为解释差额自动改成该模式。

核对结果：模式和收费币种有原始依据，同一费用未在源/目标重复扣算。
依据：[Circle：源链预付费用与完整接收数量](https://developers.circle.com/cctp/concepts/upfront-fees)
依据：[Circle：费用、maxFee与合约版本](https://developers.circle.com/cctp/concepts/fees)

## 6. 与实际mint及附加业务费对照

按消息amount/feeExecuted和目标资产转移核对实际数量，另记网络Gas。平台自行收取的应用费不属于CCTP内置费，需要原平台证据。

费用页当前Standard表为0同时保留可启用最小费开关，不能永久承诺所有路线免费。最终给出可解释差额、文档冲突与剩余缺口，不报当前费率或预计到账。

核对结果：到账差额分解有消息、收费模式和回执，未知费用没有补成结论。
依据：[Circle：费用、maxFee与合约版本](https://developers.circle.com/cctp/concepts/fees)
依据：[Circle：V2消息、finality与过期恢复](https://developers.circle.com/cctp/references/technical-guide)
依据：[Circle：源链预付费用与完整接收数量](https://developers.circle.com/cctp/concepts/upfront-fees)

## 常见错误
- bps数值与minor units直接相加，maxFee当实际扣费。
- Fast allowance当ERC20授权、完整USDC单位当最小单位。
- 过期旧报价当当前费用，或无证据解释为源链预付。

## 完成检查
- 形成路线/finality、比例费、转发费、maxFee/实际费、额度、预付模式及mint数量对照。
- 全部结论限已有记录；文档冲突、部署和当前费用未核实项明确。

## 相关知识
- [跨链显示已发送却未到账？来源交易、消息与目标执行分开查](https://lianxiaozhi.com/learn/bridge-transfer-status)
- [原生 USDC 与桥接 USDC 有什么区别？先核对发行与兑付路径](https://lianxiaozhi.com/learn/native-usdc-and-bridged-usdc)
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)

## 官方依据
- [Circle：V2消息、finality与过期恢复](https://developers.circle.com/cctp/references/technical-guide)
- [Circle：费用、maxFee与合约版本](https://developers.circle.com/cctp/concepts/fees)
- [Circle：bps费用与转发minor units](https://developers.circle.com/api-reference/cctp/all/get-burn-usdc-fees)
- [Circle：全单位Fast allowance与UTC时间](https://developers.circle.com/api-reference/cctp/all/get-fast-burn-usdc-allowance)
- [Circle：源链预付费用与完整接收数量](https://developers.circle.com/cctp/concepts/upfront-fees)
