为什么 OpenVPT 用 Base 上的 USDC 结算?稳定币、网络和手续费一文讲清
OpenVPT 为什么选择 Base 网络上的 USDC 作为结算资产:价格稳定、6 位小数、Gas 低、需要准备什么、如何核对代币和合约地址,以及最常见的转账错误。
- 作者
- OpenVPT 团队
- 发布于
- 阅读
- 12 分钟阅读
- 标签
- USDC
- Base
- 稳定币
- Gas
- 钱包安全
- 托管
目录
TL;DR
- OpenVPT 的订单以 USDC(一种与美元挂钩的稳定币,6 位小数)计价和结算,运行在 Base 网络上(主网 chainId 8453)。
- 用稳定币,是为了让买卖双方在从付款到放款的这几天里,都不用承担币价波动。
- 用 Base,是因为它兼容以太坊(EVM)、交易费用通常很低,而且有 Circle 原生发行的 USDC。
- 买家需要:Base 上的 USDC(订单金额)+ 少量 Base 上的 ETH(支付 approve 和付款两笔交易的 Gas)。确认收货、签署结算都是链下签名,不花 Gas;结算交易由平台代为提交。
- 最常见的错误:选错网络、选错代币(比如桥接版 USDbC)、直接从交易所转账、把 USDC 直接转进托管合约地址。
- 本文仅为产品和技术说明,不构成任何投资、法律或税务建议。
在 OpenVPT 上买卖软件授权、数字文件、账号服务等虚拟商品时,你付出去的不是信用卡扣款,也不是平台账户里的“积分”,而是一笔锁定在链上托管合约(VPTEscrow)里的 USDC。不少新用户会问:为什么是 USDC?为什么是 Base?我要准备些什么?这篇文章一次讲清楚。
一、为什么用稳定币,而不是 ETH 或 BTC?
一笔虚拟商品交易,从下单到钱款放给卖家,中间要经过好几个时间段:
| 阶段 | OpenVPT 默认时长 |
|---|---|
| 付款期限(下单后需完成付款) | 24 小时 |
| 付款签名有效期(每次获取的付款参数) | 最长 15 分钟,过期后重新获取即可 |
| 交付期限 | 按商品设置的交付天数 |
| 验收期(卖家交付后) | 按商品设置,默认 3 天 |
| 争议处理 | 视具体情况而定 |
如果用价格大幅波动的资产结算,这几天里的涨跌就会直接变成某一方的损失:币价跌了,卖家拿到的价值缩水;币价涨了,买家等于多付。更麻烦的是,一旦发生争议,“当初谈好的价格”该按哪天的汇率算,本身又会变成新的争议。
稳定币把这个问题去掉了。以 USDC 计价,1,200 USDC 的订单付款时是 1,200,放款时还是 1,200,双方只需要关注商品本身。手续费的计算也因此简单、可预期。
注意:“稳定”指的是设计上与美元挂钩,并不等于零风险。稳定币依然存在发行方、储备管理、监管变化等风险,历史上也出现过短暂偏离 1 美元的情况。是否适合持有,请自行评估。
二、USDC 是什么?
USDC 是由 Circle 发行的美元稳定币。按 Circle 官方的说法,每一枚 USDC 都有等值的美元储备资产(主要是现金和短期美国国债等)支持,可以向 Circle 按 1:1 兑换成美元;Circle 也会定期公布由第三方会计师出具的储备证明报告。详细说明和最新数据请直接查看 Circle 的 USDC 官方页面 (在新标签页中打开)。OpenVPT 不对发行方的储备或兑付能力作任何保证。
对用户来说,下面几个技术细节值得了解:
- 小数位是 6 位。 1 USDC 在链上记为
1000000(10 的 6 次方个最小单位)。OpenVPT 内部所有金额都按最小单位的整数计算,不用浮点数,所以不会出现 0.1 + 0.2 ≠ 0.3 这类误差。 - 它是一个 ERC-20 代币合约。 “USDC”这个名字谁都能起,真正代表身份的是合约地址。同一条网络上可能有好几个自称 USDC 的代币,只有地址正确的那个才是真的。
- 不同网络上的 USDC 是不同的合约。 以太坊主网的 USDC、Base 上的 USDC、其他链上的 USDC,地址各不相同,也不能直接互转。
三、为什么选 Base?
Base 是一条以太坊二层(Layer 2)网络,由 Coinbase 孵化、基于 OP Stack 构建。放到 OpenVPT 的使用场景里,关键在于:
- 交易费用通常很低。 作为 Layer 2,它把交易打包后再提交到以太坊,单笔 Gas 一般远低于以太坊主网。实际费用会随网络拥堵变化,钱包在你确认前都会显示预估值。
- 兼容以太坊(EVM)。 常用的以太坊钱包都能直接添加 Base;OpenVPT 的托管合约用 Solidity 编写,EIP-712 签名、ERC-20 授权等机制都与以太坊一致。
- 有 Circle 原生发行的 USDC。 不需要经过跨链桥包装,少了一层跨链桥风险。
- 生态和充值渠道。 Base 属于 Coinbase 生态,很多交易所和钱包都支持 Base 网络的 USDC 充提。
OpenVPT 的网络配置:
| 环境 | 网络 | chainId |
|---|---|---|
| 正式环境 | Base 主网 | 8453 |
| 测试环境 | Base Sepolia 测试网 | 84532 |
更多 Base 的技术资料可参考 Base 官方文档 (在新标签页中打开)。
四、需要准备什么?Gas 要多少?
先明确一点:在 Base 上,Gas 用 ETH 支付,不是用 USDC。所以买家钱包里需要同时有两样东西:
- Base 网络上的 USDC:够支付订单金额。
- Base 网络上的少量 ETH:用来支付交易 Gas。
买家付款时会发出的交易
OpenVPT 的付款流程在网页上会自动引导,实际上最多有两笔链上交易:
- approve(授权额度):允许托管合约从你的钱包转走“这笔订单的金额”。OpenVPT 只会请你授权正好等于订单金额的额度,不会要求无限授权;如果你原有的授权额度已经够用,这一步会自动跳过。
- fund(付款):调用托管合约的
fund(),USDC 从你的钱包转入合约锁定。合约会同时校验平台对这笔订单的签名,确保金额、手续费、卖家地址和代币都没有被篡改。
之后的步骤都不需要你付 Gas:
| 操作 | 是否需要 Gas | 说明 |
|---|---|---|
| 连接钱包、用 SIWE 验证钱包 | 否 | 只是签一段文字消息 |
| approve | 是(买家) | 额度足够时跳过 |
| fund 付款 | 是(买家) | 一笔链上交易 |
| 确认收货/签署结算 | 否 | EIP-712 链下签名 |
| settle 结算上链 | 否(对用户而言) | 由平台的中继账户提交,Gas 由平台承担 |
| 卖家收款 | 否 | 结算时 USDC 直接转入卖家钱包 |
也就是说,卖家收款不需要准备 ETH;买家只需准备够两笔交易用的少量 ETH。建议多留一点余量,以免网络稍有拥堵时卡在“Gas 不足”。
五、怎么核对代币和合约地址?
最常见的骗局之一,是弄一个名字叫“USDC”但地址不同的假代币,或者诱导你把钱转到一个看起来很像的地址。请养成下面的核对习惯:
核对清单
- 钱包当前连接的网络是 Base(chainId 8453),而不是以太坊主网或其他链。
- 你持有的 USDC 合约地址,与 Circle 官方公布的 Base 原生 USDC 地址一致。OpenVPT 默认使用的就是这个地址:
Base 主网原生 USDC:0x833589fCD6eDa6E08f4c7C32D4f71b54bdA02913- 付款时钱包弹出的 approve 请求,授权对象是 OpenVPT 订单页显示的托管合约地址,金额等于订单金额。
- fund 交易的目标地址同样是托管合约地址,而不是某个个人钱包。
- 核对地址要看完整字符串,至少比对开头和结尾各 6 位以上;不要只看钱包显示的缩写。
- 在聊天、私信、邮件里收到的任何“新地址”“新合约”,一律不要相信。OpenVPT 的聊天会识别疑似站外联系方式并给出提醒,就是为了应对这类情况。
OpenVPT 前端在把付款参数交给钱包之前,也会自动再检查一遍:订单编号、链 ID、代币地址、卖家地址、金额、手续费和托管合约地址,任何一项与订单不符都会拒绝发送。但最后点“确认”的是你,钱包界面上显示的信息才是最终依据。
六、最常见的错误
1. 选错网络
你的 USDC 在以太坊主网或其他链上,但订单要求的是 Base,钱包就会显示余额不足。OpenVPT 付款前会请求钱包切换到正确网络,但资产本身不会跟着过去,你需要先通过正规渠道把 USDC 转到 Base 上。
2. 选错代币
Base 上除了 Circle 原生发行的 USDC,还有早期通过跨链桥包装的 USDbC,以及各种名字相近的代币。它们都不是 OpenVPT 接受的付款代币。托管合约只接受白名单内的代币,用错代币交易会失败,但你可能白白花掉 Gas。
3. 直接从交易所付款
OpenVPT 的付款必须由你自己的钱包调用托管合约,因为合约会把调用者记录为买家,退款也会退回这个地址。交易所的提币功能只能“转账”,没法替你调用合约,也没法签署之后的结算消息。正确做法是:先从交易所把 USDC 提到你自己的钱包(网络选 Base),再用这个钱包付款。
4. 把 USDC 直接转进托管合约
这是最危险的错误。VPTEscrow 只把通过 fund() 进来的款项记为订单;资金离开合约的唯一途径是 settle(),而且必须有买家、卖家、平台三方中两方的签名,并对应一笔已存在的订单。直接转进去的 USDC 不属于任何订单,合约里没有任何函数能把它转出——包括平台和合约所有者在内,谁都取不回来。请务必通过 OpenVPT 订单页的付款按钮操作。
5. 付款前拖得太久
每次获取的付款签名最长只有 15 分钟有效期。如果交易在钱包里挂了很久才确认,合约会以“签名已过期”拒绝。刷新订单页获取新参数即可,资金不会因此损失(只损失失败交易的 Gas)。
七、没有“信用卡拒付”,靠什么保障?
信用卡付款可以事后向发卡行申请拒付(chargeback),款项可能在几周甚至几个月后被撤回。这对买家是一种保障,但对卖虚拟商品的卖家来说,常见的情况是:商品已经交付、无法收回,钱却被退走了。
链上的 USDC 转账一旦确认,就无法由第三方撤销。OpenVPT 用另一套机制来替代拒付:
- 先托管:买家付款后,钱款锁在合约里,既不在卖家手上,也不在平台手上。
- 验收期:卖家交付后有验收期(默认 3 天)。交付文件会记录 SHA-256 哈希,授权码类商品以加密方式保存。
- 2-of-3 签名:钱款要离开合约,需要买家、卖家、平台签名者三方中的两方签名。平台单方面无法动用资金;合约所有者只能暂停“新的付款”、更换平台签名者、管理代币白名单和手续费收款地址,不能结算或提取资金。暂停也不影响已有订单的结算。
- 争议与仲裁:验收期内买家可以发起争议,由指派的仲裁员根据证据作出分配比例的裁决,平台按裁决签名,再由买家或卖家其中一方(通常是分得款项的一方)共同签名后上链。
也就是说,保障从“事后撤销”变成了“事前托管 + 明确规则”。好处是双方的结果都更可预期;代价是结算一旦完成就无法反悔,所以付款前、确认收货前都请仔细核对。
八、算一笔账:手续费怎么扣?
OpenVPT 默认平台手续费为 5%(feeBps = 500),只按卖家实际获得的部分按比例收取,买家支付的就是商品标价。
例一:正常完成的 1,200 USDC 订单
| 项目 | 金额 |
|---|---|
| 买家付款(锁入托管) | 1,200 USDC |
| 平台手续费 5% | 60 USDC |
| 卖家实收 | 1,140 USDC |
例二:同一笔订单发生争议,仲裁裁决卖家获得 30%
- 卖家的总分配额:1,200 × 30% = 360 USDC
- 平台手续费按比例:60 × 360 ÷ 1,200 = 18 USDC
- 卖家实收:360 − 18 = 342 USDC
- 退还买家:1,200 − 360 = 840 USDC
- 核对:342 + 840 + 18 = 1,200 USDC(一致)
例三:全额退款给买家:卖家分配为 0,手续费也是 0,买家拿回全部 1,200 USDC。
由于 USDC 是 6 位小数、金额按整数计算,手续费向下取整(floor),合约也会校验三方金额之和必须与托管金额完全相等。
九、买家和卖家的快速检查表
买家
- 准备好 Base 上的 USDC(订单金额)和少量 Base 上的 ETH(Gas)。
- 用自己的钱包(不是交易所地址)连接 OpenVPT。
- 在订单页点击“付款至托管合约”,核对钱包弹窗里的网络、代币、授权对象和金额。
- 收到交付后在验收期内检查,没问题再确认;有问题就在期限内发起争议。
卖家
- 完成 KYC(状态需为“已验证”),并用 SIWE 验证你的收款钱包。
- 确保收款钱包是你能长期掌控的自托管钱包,并妥善备份助记词。
- 收款不需要 ETH;之后如果要把 USDC 转出或兑换,才需要少量 ETH 支付 Gas。
十、关于安全与透明
VPTEscrow 合约使用 OpenZeppelin 的标准组件(EIP-712、ECDSA、SafeERC20、ReentrancyGuard、Ownable2Step、Pausable),合约所有权不能放弃,只能通过两步流程移交。正式上线前,我们计划委托第三方进行合约安全审计,并计划推出漏洞赏金计划;完成后会另行公告,在此之前请不要把本文理解为任何“已审计”的声明。
免责声明
本文介绍的是 OpenVPT 的产品设计和一般技术知识,不构成投资、法律或税务建议。持有和使用任何数字资产都有风险,包括但不限于价格偏离、发行方风险、智能合约风险和操作失误。各地对数字资产的监管规定不同,请结合自身情况自行判断,必要时咨询专业人士。
下一步
- 延伸阅读:2-of-3 多签如何保护你的钱
- 延伸阅读:买家指南:安全购买源代码与 SaaS 授权
- 看看现在有哪些商品:商品列表
- 从下单到放款的完整流程:运作方式
- 手续费详情:收费说明
- 遇到问题:帮助中心 或 联系我们