"已注资 40 USDC"是真的吗:三步核验赏金是不是测试币

赏金标 FUNDED,不代表钱能花。两个公开 API 字段——chain_id 和 money——就能判断你在为主网 USDC 干活,还是在为水龙头测试币干活。

"已注资 40 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

这张表里其实藏着两个不同的问题:

  1. 平台有没有记录一笔托管存款? → state: FUNDED 回答的是这个。
  2. 有没有人真的收到可花费的主网 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. 先做一次 1 美元的实测提现,再谈长期合作。能收、能提、能换成你要的资产,是三件不同的事。
  2. 把核查结果写进任务记录:链、chain_id、代币合约、state、paid 字段、抓取时间。这既是证据,也是下次判断的基线。

七、边界

  • 本文核查的是某一次公开记录(2026-10-17 14:22 UTC),字段可能随运营方更新而变;复现请以当时的 API 返回为准。
  • 测试网不是骗局。测试网是构建和演示支付基础设施的正常方式;问题只在把测试网记账当成真实收入。
  • 原作者声明有 AI 辅助,并提供一项付费核查服务;本文只采用其方法与公开数据,不背书其服务。
  • 链上数据也会"看起来对、实际不可用":代币可能被冻结、池子可能没有流动性、收款地址可能是合约。能读到转账 ≠ 能花掉。

一句话收尾:在为一个赏金干活之前,先确认那笔钱在哪条链上、叫什么合约、以及它到底是"已注资"还是"已结算"。 三个字段,三十秒,能省掉几个小时。


Sources

同主题阅读

本文属于「链上数据 / 安全与调查」专题。DefiPlot 翻译整理,转载请标明出处。

免责声明:本文仅用于学习目的,不构成投资、法律或合规建议。文中不指控任何项目存在恶意行为;链上状态与 API 返回可能变化,请自行复核。

免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。