"已注资 40 USDC"是真的吗:三步核验赏金是不是测试币
赏金标 FUNDED,不代表钱能花。两个公开 API 字段——chain_id 和 money——就能判断你在为主网 USDC 干活,还是在为水龙头测试币干活。
一句话结论:一个赏金可以在 issue 里诚实地标着 FUNDED(已注资),而那笔钱一分都花不出去。2026 年 10 月 17 日的一份公开核查记录演示了这件事:广告写 40.00 USDC,但运营方自己的 API 返回 chain: arc-testnet、chain_id: 5042002、money: "test",并且 paid_usdc: null。这是测试网的水龙头代币,不是主网 USDC。 对要花几小时做任务的开发者和 Agent 来说,这件事值得在开工前花 30 秒查清。
披露:本文编译自一份公开的链上支付核查案例(dev.to,2026-10-17),原作者使用运营方公开 API、未登录、未签名、未动用私钥;作者声明写作过程有 AI 辅助,并另有一项付费核查服务(文内已披露)。本文不指控任何项目违规——测试网本身完全正当,问题只在把"测试网记账"当成"承包商收入"。
一、三个字段,两种问题
核查对象是一个 GitHub issue 里的机器人公告:40.00 USDC 已注资。对应的赏金记录(运营方 API)在核查时返回:
| 字段 | 值 |
|---|---|
id |
ISS-1010 |
state |
FUNDED |
price_usdc |
40.00 |
escrow.chain |
arc-testnet |
paid_usdc |
null |
这张表里其实藏着两个不同的问题:
- 平台有没有记录一笔托管存款? →
state: FUNDED回答的是这个。 - 有没有人真的收到可花费的主网 USDC? →
paid_usdc与escrow.chain才回答这个。
FUNDED 不等于"已付款",也不等于"可付款"。 这两个问题混在一起,就是绝大多数"赏金骗局"的技术来源——不一定是恶意,多数时候只是口径没对齐。
二、再查一个接口:money 字段
同一个运营方还暴露了一个公开可读的健康检查接口,核查时返回:
{
"chain": "arc-testnet",
"chain_id": 5042002,
"money": "test",
"network_label": "Arc testnet"
}
它的 money_note 还写明:测试 USDC 由水龙头提供,没有真实价值。
到这里结论已经很硬:没有任何价格预言机、市价换算或"百分比折扣",能把测试代币变成主网可花费的 Circle USDC。 即使存在真实的测试网合约、真实的测试网交易,也不能证明有现金支出。
作者的态度很清楚:这个应用作为演示仍然有用;但作为贡献者,你应该把它归类为"没有已验证现金回报的测试性工作",除非赞助方另外承诺了真实主网资金。
三、可复现的只读脚本(Python 标准库)
不需要私钥、不需要登录、不需要钱包余额:
import json
from urllib.request import Request, urlopen
root = "https://mithios.nvduc.dev"
paths = ("/api/v1/issues/ISS-1010", "/api/v1/health")
for path in paths:
request = Request(root + path, headers={"Accept": "application/json"})
with urlopen(request, timeout=12) as response:
data = json.load(response)
if path.endswith("/health"):
print({
"chain": data.get("chain"),
"chain_id": data.get("chain_id"),
"money": data.get("money"),
})
else:
print({
"state": data.get("state"),
"quoted_usdc": data.get("price_usdc"),
"paid_usdc": data.get("paid_usdc"),
"escrow_chain": (data.get("escrow") or {}).get("chain"),
})
这段代码的价值不在"抓到某个项目",而在它把"赏金是否可兑现"变成了可重复的检查。任何运营方只要提供公开 API,你都可以用同一套逻辑问三个问题:哪条链、什么钱、付了没有。
四、如果是主网,还要再走五步
作者明确说:这个案例只是"测试网"这一种。要确认真实主网付款,还需要:
| 步骤 | 查什么 | 为什么 |
|---|---|---|
| 1 | 精确的 chain ID 与代币合约地址,不是代币符号 | 同名代币遍地都是,"USDC"三个字母不是资产 |
| 2 | 区分锁定的托管与已接受、已结算给工人的付款 | FUNDED 是前者,paid 才是后者 |
| 3 | 查真实的 Transfer 日志:代币地址、收款地址、整数金额与 decimals |
6 位与 18 位小数会把金额差 10¹² 倍 |
| 4 | 把收款地址对回具体的工作协议,并确认收款方在自己的钱包/辖区下能提走 | "到账"不等于"可用" |
| 5 | 证据缺失时记 INCONCLUSIVE(无法判定),不要写"已验证付款" | 默认通过是最贵的错误 |
这套框架还能顺手抓住两个常见陷阱:
- 只有"承诺预算"、没有真实托管的任务;
- 返回
HTTP 402 Payment Required、但从没收到过付费请求的服务。
两者都可能是合法软件,但都不是"承包商赚到了 USDC"的证据。
五、证据分级:把话说准
作者对这次核查给了明确的三段式结论,这种写法值得每个做尽调的人抄:
| 结论 | 内容 |
|---|---|
| CONFIRMED(已确认) | 运营方展示了一个标价 40 单位 USDC 的"已注资"issue |
| CONFIRMED(已确认) | 运营方自述其链为测试网 5042002,资金为水龙头测试币 |
| CONTRADICTED(已推翻) | "40 USDC 已注资"这个标签能证明"40 美元可花费的主网 USDC" |
| NOT VERIFIED(未验证) | 该 issue 是否有最终的主网转账:核查时 paid_usdc 为 null |
注意最后一条的措辞:不是"没有付款",而是"没有验证到付款"。这两者的差别,就是"调查"与"指控"的差别。
六、给 Agent 的开工前检查
如果你在做一个"自动接赏金任务"的 Agent,把下面这段当成前置门禁(伪代码):
def bounty_is_payable(rec, health):
# 1) 链必须是主网,且 chain_id 在白名单里
if health.get("money") != "mainnet":
return False, "test_money"
if rec["escrow"]["chain"] != health["chain"]:
return False, "chain_mismatch"
# 2) 必须是"已结算",不是"已注资"
if not rec.get("paid_usdc"):
return False, "not_settled"
# 3) 代币合约必须在白名单(按 chain + address,不按符号)
if (health["chain"], rec["token"]) not in ALLOWED_TOKENS:
return False, "token_not_allowed"
return True, "ok"
三条判据对应三个最常见的坑:测试币、链不匹配、只注资未结算。加上代币合约白名单,基本能挡住"看起来是 USDC、其实不是"的大部分情况。
再加两条工程纪律:
- 先做一次 1 美元的实测提现,再谈长期合作。能收、能提、能换成你要的资产,是三件不同的事。
- 把核查结果写进任务记录:链、chain_id、代币合约、state、paid 字段、抓取时间。这既是证据,也是下次判断的基线。
七、边界
- 本文核查的是某一次公开记录(2026-10-17 14:22 UTC),字段可能随运营方更新而变;复现请以当时的 API 返回为准。
- 测试网不是骗局。测试网是构建和演示支付基础设施的正常方式;问题只在把测试网记账当成真实收入。
- 原作者声明有 AI 辅助,并提供一项付费核查服务;本文只采用其方法与公开数据,不背书其服务。
- 链上数据也会"看起来对、实际不可用":代币可能被冻结、池子可能没有流动性、收款地址可能是合约。能读到转账 ≠ 能花掉。
一句话收尾:在为一个赏金干活之前,先确认那笔钱在哪条链上、叫什么合约、以及它到底是"已注资"还是"已结算"。 三个字段,三十秒,能省掉几个小时。
Sources
- A GitHub Bounty Said "Funded: 40 USDC." The Chain Said Testnet., dev.to, 2026-10-17:https://dev.to/livasticvm1primary/a-github-bounty-said-funded-40-usdc-the-chain-said-testnet-hn3
- 公开案例文件(含原始 URL 与复核方法):https://github.com/livastic-vm1-primary/usdc-payout-proof-cases/blob/main/cases/arc-testnet-40-usdc-not-cash.md
- 被核查的 issue:https://github.com/vanduc2514/hackathon-circle-misthos/issues/182
同主题阅读
本文属于「链上数据 / 安全与调查」专题。DefiPlot 翻译整理,转载请标明出处。
免责声明:本文仅用于学习目的,不构成投资、法律或合规建议。文中不指控任何项目存在恶意行为;链上状态与 API 返回可能变化,请自行复核。
免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。