本页目录

文档

托管购买

当方案里包含付费条目时,它们会合并成一个托管订单。你的款项由托管方保管,不会直接付给卖家,直到你验收,或验收期结束。如果卖家没有在期限内交付,你会收到全额退款。本页的一切都是测试模式:没有任何真实资金被保管、支付或退还。

测试模式。默认的支付通道是模拟的:余额只是内存里的数字,没有真实资金流动。USDC、USDT 和 BTC 通道目前只能生成支付链接和校验存款,托管合约未经审计,也没有部署。详见支付通道与测试模式。

在哪里可以运行。reuseforge.com 上的托管应用还没有结账功能,所以无法在那里下单:结账和订单即将推出。本页里你能运行的内容,都使用模拟器或你自己的节点,其中的命令和字段已对照节点代码核对过。

订单如何运作

  1. 报价。你用方案里的付费项创建订单。已签名的订单会记录各项内容和价格、支付通道、费率、仲裁方以及两个期限,之后不能再更改。
  2. 存款。你把总额付到该通道的托管地址。托管方核对存款金额与订单总额一致后,把订单标记为已注资。
  3. 交付。每位卖家各自把自己的那一项标记为已交付,并附上访问链接和所交付内容的内容哈希。全部交付后,验收期开始计时。
  4. 决定。你可以验收;可以什么都不做,等验收期结束;也可以提出争议。
  5. 结算。放款时,每位卖家收到价格扣除网络费用后的金额。退款时,你拿回全部总额。

免费条目和自建步骤不会进入订单。如果方案里没有要买的东西,就不存在托管。

订单状态

托管订单状态图 订单从 QUOTED 开始;托管方确认存款后变为 FUNDED;所有卖家交付后变为 DELIVERED;买家验收或验收期结束后变为 RELEASED。已报价的订单可以被取消,变为 CANCELLED。已注资的订单若超过交付期限,则变为 REFUNDED。买家可以对已注资或已交付的订单提出争议,之后由仲裁方判定放款或退款。 QUOTED FUNDED DELIVERED RELEASED CANCELLED REFUNDED DISPUTED 托管方确认存款 全部卖家完成交付 买家验收,或验收期结束 买家取消 交付期限已过 买家提出争议 仲裁方判退款 仲裁方判放款
虚线表示争议路径。争议可以在 FUNDED 或 DELIVERED 状态下发起。
状态含义何时离开该状态
QUOTED 已报价订单已创建,尚未保管款项。托管方确认存款,或买家取消。
FUNDED 已注资总额已存入,等待卖家交付。所有项目都已交付、交付期限已过,或买家提出争议。
DELIVERED 已交付所有卖家都已交付,验收期正在计时。买家验收、验收期结束,或买家提出争议。
RELEASED 已放款卖家已收款(扣除费用)。终态。不再变化。
REFUNDED 已退款买家已拿回全部总额。终态。不再变化。
DISPUTED 争议中买家提出异议,等待仲裁方。仲裁方选择放款或退款。
CANCELLED 已取消买家在付款前取消。终态。不再变化。

谁能做什么

这些限制在读取日志时执行,所以每个节点的处理结果都一样。由错误一方签名的步骤会被直接忽略。

角色可以做的事
买家创建订单;在 QUOTED 时取消;在 DELIVERED 时验收;在 FUNDED 或 DELIVERED 时提出争议;放款后评价条目。
卖家在订单处于 FUNDED 时,把自己的那一项标记为已交付。对订单没有其他操作权限。
托管方(仲裁方)确认存款;裁决争议;订单放款或退款后实际转出资金。在自托管节点上,这个角色由节点运营者担任。
任何人记录某个期限已过。这只是把时钟已经隐含的状态固定下来。

验收期与期限

  • 验收期。从最后一项交付时开始计时,默认 7 天。买家创建订单时可以选择其他时长(accept_window_days),范围是 1 小时到 90 天。如果验收期结束时买家仍沉默,订单就会放款。这样可以保护卖家,避免买家一直不答复。
  • 交付期限。从订单注资时开始计时,默认 7 天。到期时只要还有任何一项未交付,订单就会退款。

请留意验收期。验收期一结束,订单即放款,此时再提出争议就晚了。请在窗口关闭前检查收到的内容、运行测试,并把内容哈希与上架信息里的哈希对照。

一个卖家迟交,会让整个订单退款。交付对整个订单而言是“全有或全无”。如果三位卖家已交付而第四位没有,到期后会全部退款。想让各卖家互不影响,请分开下单。

争议与退款

情形结果
某位卖家未在期限内交付自动全额退款,无需仲裁方介入。
你验收放款,卖家收款。
交付后你没有任何表示验收期结束时放款。
你在 FUNDED 或 DELIVERED 时提出争议订单冻结。仲裁方阅读你的理由(最多 2,000 个字符),并附说明裁定放款或退款。
仲裁方裁定放款卖家全额收款,扣除费用。
仲裁方裁定退款你拿回全部总额,不收取费用。

仲裁方的裁决是“全有或全无”,没有部分退款,也不按单项拆分。请准确说明你运行了什么、期望是什么、哪里出了问题。目前还没有固定的评判标准。

已知缺口。争议没有超时机制。如果仲裁方一直不回应,订单会一直停在 DISPUTED。架构文档把仲裁池和陪审式裁决列为待做事项,所以现阶段你信任的是单一仲裁方。合约设计里加了一道限制:如果仲裁方在争议窗口(默认 30 天)内一直沉默,任何人都可以按五五开结算该项。这只是设计,还不是运行中的代码。

费用

放款的订单要支付网络费用。自托管节点的默认值是每项价格的 1%,由运营者通过 REPOBLOCK_FEE_BPS 设置。费率在你创建订单时就写入订单。费用从卖家一侧扣除:买家存入的恰好是各项标价之和。每位卖家的净额向下取整到分,余下的就是费用。退款不收费。免费条目没有订单,也就没有费用。本节的金额都是测试模式下的示例。

1% 费率下的费用示例(测试模式)
项目付给金额
结账套件,标价 $15.00卖家$14.85
起步 UI,标价 $12.00卖家$11.88
网络费用费用地址$0.27
买家存款$27.00

费率能到多高,取决于订单在哪里运行。自托管节点只接受 0 到 1000 个基点(10%)的费率才能启动,并会拒绝携带更高费率的订单。在这个范围内,谁运行节点,谁通过 REPOBLOCK_FEE_BPS 决定费率,你存款前订单里就会显示该费率。docs/PAYMENTS.md 里规定的托管合约把费率上限设为 500 个基点(5%),在订单注资时记录当时的费率,之后的调整只适用于新订单。该合约尚未部署,仓库里目前只有它的接口定义(contracts/src/interfaces/IRepoEscrow.sol)。托管应用的费用请见定价。

支付通道与测试模式

托管规则与支付通道无关。通道只决定存款如何描述、如何校验、如何放款。启动节点时用 --rail 选择通道。

通道状态功能
mock可用默认通道。内存中的美元余额,能走完整个流程,不涉及任何真实资金。
usdc-base部分可用Base 链上的 USDC。生成供买家钱包使用的支付链接;设置了 REPOBLOCK_RPC_URL 后可以校验存款交易。节点不会发出放款。
usdt-ethereum部分可用以太坊上的 USDT,同上。
btc仅链接按美元报价换算,生成比特币支付链接。不校验存款,也不放款。比特币本身无法实现有条件的托管。

在非 mock 通道上,除非每位卖家都提供了该通道的收款地址,否则无法创建订单。放款本应由一份面向 USDC 和 USDT 的托管合约完成,其规格写在 docs/PAYMENTS.md 里。它逐项结算,并以记账方式让卖家自行提取,所以某一个收款方被拦截不会拖住其他人。它的源码目前还不在仓库里,也未经审计,没有任何部署。在此之前,稳定币存款会停留在运行托管方的人手里,你等于把款项托付给了对方。

用命令行完成一笔订单

对本地节点操作(搭建方法),使用默认的模拟通道,不会有真实资金流动,并需要已安装 jq:

bash
NODE=http://127.0.0.1:8420
curl -s -X POST $NODE/api/plan -d '{"goal":"RAG chatbot over my PDF invoices with a dashboard and crypto checkout","budget_usd":50}' > plan.json

# 1. 报价:提交方案里的付费项,验收期设为 3 天
OID=$(jq '{paid_items: .recommended.paid_items, accept_window_days: 3}' plan.json \
  | curl -s -X POST $NODE/api/orders -d @- | jq -r .order.order_id)

curl -s -X POST $NODE/api/orders/$OID/pay     -d '{}' | jq .order.state   # "FUNDED"(模拟存款)
curl -s -X POST $NODE/api/orders/$OID/deliver -d '{}' | jq .order.state   # "DELIVERED"(以演示卖家身份)
curl -s -X POST $NODE/api/orders/$OID/accept  -d '{}' | jq .order.payouts # 卖家收款,外加费用一行

如果要提出争议而不是验收,请向 /api/orders/$OID/dispute 提交 {"reason": "..."}。节点运营者则向 /api/orders/$OID/resolve 提交 {"outcome": "release"} 或 {"outcome": "refund"} 来裁决。以上是自托管节点的端点,托管应用的 API 见 API 参考。

托管做不到的事

  • 它不会查看交付物的内部。它只记录访问链接和卖家声明的哈希,把内容与哈希对照是你的责任。
  • 它无法阻止买家复制已交付的代码。托管保护的是付款,不是保密。
  • 它不保证代码能用。它只给你一个检验的窗口,和提出异议的途径。
  • 它不会让一份未经审计的合约变得安全。见哪些事情没有保证。

最近更新: