繁中
教學範例 · · 非即時資料
閱讀圖解證據卡。
靜態的合成教學範例,數值僅供說明。此資源不代表真實的 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 回應;釘選還需透過獨立管道取得的簽發者資料
- 你會取得
- 簽章、簽發者、時間與繫結各自的檢查結果
載入 JSON,不是 URL。
貼上收據封套或完整 API 回應,或載入 JSON 檔案。端點 URL 請改用即時查詢。剖析與簽章檢查在瀏覽器內執行;簽發者檢查可能會取得 IFF 公開金鑰目錄。
沒有收據?請開發者提供含
service_receipt的 IFF 回應,可透過選用的直接 API 整合要求;一般回應不包含。分開看待有效簽章與可信簽發者。
簽章有效表示內嵌金鑰簽署了該主體;與目錄相符只是識別金鑰。若要獨立釘選,請輸入透過另一個可信管道取得的預期簽發者與完整
sha256:金鑰指紋,不要從正在驗證的收據複製。閱讀簽署主體、時間範圍與繫結。
確認簽署的 URL 與結果符合預期。有效的舊簽章仍可能屬於已過期收據。單獨收據無法證明外層回應與簽署主體一致。
只驗證收據簽章,不會驗證被引用的觀測、日誌收錄或鏈上錨定。
結果不如預期時
確認下一步。
沒有證據與檢查失敗需要不同處理。
檢查通過代表可以付款嗎?
不代表。協定有效性、所有權、新鮮度、要求一致性與收據真實性各自回答不同問題,沒有一項保證付費服務或其結果。請維持自己的付款政策與風險上限。