简中
教学示例 · · 非实时数据
阅读图解证据卡。
静态的合成教学示例,数值仅供说明。此资源不代表真实的 observed 或 verified 卡片,打开本页也不会向服务提供者发出要求。
- 资源
https://api.example.com/v1/resource- 层级
observedObserved from public sources. Ownership not verified. Not an IFF-verified Evidence Card. 来自公开来源的观测。所有权未经验证。不是 IFF 验证的证据卡。- 协议
valid · x402 v2通过协议检查。- 付款选项
exact · eip155:8453 · synthetic token contract 0x…C3 · 1000 atomic units · payTo 0x…A1合成值。缩写识别码仅供显示,不能用作付款指示。- 新鲜度
fresh at sample time实际卡片会显示观测时间与间隔;使用前请重新检查。- 要求
current run: 4 observations多次观测相符;不能解释服务提供者为何选择这些条件。
可以得出什么结论
在真实卡片中,这些字段表示监测器在观测时间记录了协议有效、未付款即取得的挑战,其中包含列出的付款选项。
仍无法确定什么
此示例不能证明所有权、付款安全性、服务交付、结算或服务提供者的意图,也没有真实报告、签名或日志证明。
API 使用者
使用前检查端点。
不需钱包、API 密钥或付款,即可查看 IFF 的观测。
- 准备
- API 资源的完整准确 URL
- 你将获得
- 已保存的公开证据卡(如有)
使用资源路径,而不是网站首页。
打开实时查询,将完整 URL 粘贴 x402 endpoint URL。服务提供者的首页不会搜索该域名上的所有 API。
资源 URL 示例https://api.solmachina.com/v1/epoch此 URL 在 2026 年 9 月 6 日曾有公开证据。这只是示例,不代表推荐。
选择付款网络,再点击“Inspect evidence”。
Base、BSC、0G 与 Robinhood Chain 会筛选已保存挑战中的主网选项;All networks 包含测试网与其他网络。查询不会调用服务提供者;选择网络不能改变其接受的条件,也不能证明结算。
分别阅读每个维度。
- 所有权
- 来源站控制权是否已验证?
observed卡片仍可能未验证。 - 协议
- 未付款的响应是否通过 x402 v2 检查?这不是付款后结果的测试。
- 新鲜度
- 何时观测,目前是否仍在监测时间窗口内?
- 可用性
- 查看样本数与时间范围。缺少量测不代表通过。
代理与应用开发者
把证据放在付款逻辑之前。
比较客户端收到的要求与 IFF 的独立观测。
- 准备
- x402 v2 客户端与付款策略
- 你将获得
- 比较判定,而非付款批准
安装预检 SDK。
使用 Node 20+ 或现代浏览器。不需 IFF API 密钥。
终端npm install @ifandonlyif/x402-preflight将经过检查的 fetch 传给付款客户端。
包装器会在付款程序库动作前检查 402。它不持有钱包密钥,也不执行付款。
TypeScript · 集成模式import { wrapFetch } from "@ifandonlyif/x402-preflight"; const preflightFetch = wrapFetch(fetch, { onDiverged: "throw", onStale: "strict", onUnobserved: "warn", }); // Pass preflightFetch as your payment client's fetch. // Creating this function alone makes no request.决定应用如何处理不确定性。
consistent- 比较相符。是否继续仍由你的付款策略决定。
diverged- 要求不同。此示例会在付款逻辑继续前抛出错误。
stale- 观测已过期。
strict在过期且不相符时抛出错误,过期但相符时只发出警告。 unobserved- 没有可比较的观测。此示例发出警告,不会自动阻止。
端点所有者
证明控制权,
开始运行。
API 流程。你不需要新域名,但必须控制端点的来源站。
- 准备
- 支持 personal-sign 的 Ethereum EOA 钱包(不支持合约钱包)、公开 x402 v2 端点、well-known 文件访问权
- 你将获得
- 验证成功后的所有者访问权
签署服务器登录挑战。
按照钱包验证步骤要求挑战,签名其消息,再提交签名以取得访问令牌与更新令牌。令牌须保密;不要把私钥传给 IFF。
注册准确的端点 URL。
用访问令牌与端点数据调用
POST /api/v3/endpoints,保存返回的claim_attempt_id与ownership文档。注册只是开始声明流程,尚未授予所有者访问权。请使用公开 HTTPS 的 443 端口,不得包含认证数据、查询字符串、片段或重定向。
发布所有权文件并排队验证。
提供返回的
ownership.document,位置必须是指定且完全相符的ownership.verification_url;通常是相同来源站的/.well-known/iff-trust.json。挑战会在 24 小时后过期。同一来源站若有多个端点,保留既有声明,并依
claims格式加入新声明。调用
POST /api/v3/endpoints/:id/verify-ownership。202只代表已排入队列,不代表验证完成;请用GET /api/v3/endpoints查看结果。等待监控证据,然后添加通知。
所有者访问权与公开证据彼此独立。verified 层级首次发布需要所有权,加上至少三次通过的观测。请持续公开所有权文件,以便重新验证。
验证后,可针对状态或要求变更设置 Webhook。保存只显示一次的共享密钥,验证每次发送的签名与时间戳,并将重试去重。
证据审阅者
检查签署内容,
与信任决策分开处理。
检查实验性的签名验证结果信封 IFF Service Receipt v2。
- 准备
- 收据 JSON 或完整 API 响应;固定信任(pinning)还需要通过独立渠道获取的签发者数据
- 你将获得
- 签名、签发者、时间与绑定各自的检查结果
加载 JSON,而不是 URL。
粘贴收据封套或完整 API 响应,或加载 JSON 文件。端点 URL 请改用实时查询。解析与签名检查在浏览器内执行;签发者检查可能会取得 IFF 公开密钥目录。
没有收据?请开发者提供含
service_receipt的 IFF 响应,可通过可选的直接 API 集成要求;一般响应不包含。区分有效签名与可信签发者。
签名有效表示内嵌密钥签名了该主体;与目录相符只是识别密钥。若要独立固定,请输入通过另一个可信管道取得的预期签发者与完整
sha256:密钥指纹,不要从正在验证的收据复制。阅读签署主体、时间范围与绑定。
确认签名的 URL 与结果符合预期。有效的旧签名仍可能属于已过期收据。单独收据无法证明外层响应与签名主体一致。
只验证收据签名,不会验证被引用的观测、日志收录或链上锚定。
结果不符合预期时
确认下一步。
缺少证据和检查失败需要不同的处理方式。
检查通过代表应该付款吗?
不代表。协议有效性、所有权、新鲜度、要求一致性与收据真实性各自回答不同问题,没有一项保证付费服务或其结果。请维持自己的付款政策与风险上限。