{
  "lang": "ja",
  "ページ": "https://x402-catalog-history.ai-business-surface.workers.dev/ja/watch-uptime",
  "title": "x402 の監視を払う前に：/watch 0.02 と /watchlist 0.05 の実測",
  "h1": "x402 エンドポイントの監視を買う前に読む — /watch 0.02・/watchlist 0.05 の実測",
  "description": "x402 の監視は /watch が 0.02 USDC、/watchlist が最大10本で 0.05 USDC。2026-10-19 に支払いなしで測ると、どちらも 402 で 19,459 B / 23,143 B、応答は中央値 567 ms / 479 ms でした。無料の /status.json では監視2経路の納品記録が 0 件。何を見て、何を見ていない監視なのかを宣言から読み、同じ確認を無料でする手順（/gas の6項目の指紋が3回とも同一）まで実測で示します。",
  "検索語": "monitor x402 endpoint uptime",
  "読者の問い": "自分のx402端点を監視してほしい。何を、いくらで、どこまで見てくれるのか。",
  "実測日": "2026-10-19 JST",
  "実測": {
    "caption": "x402 の監視まわりの実測（2026-10-19 JST・公開URLへの支払いなしGET・各3回）",
    "columns": [
      "経路",
      "応答",
      "大きさ",
      "応答時間（3回）",
      "中身"
    ],
    "rows": [
      [
        "/watch?url=…",
        "402",
        "19,459 B",
        "810 / 567 / 501 ms",
        "0.02 USDC の宣言のみ。200 の本文は未取得"
      ],
      [
        "/watch（url なし）",
        "402",
        "19,459 B",
        "431 / 436 ms（2回）",
        "パラメータ検証より前に課金ゲート"
      ],
      [
        "/watchlist?urls=…",
        "402",
        "23,143 B",
        "677 / 479 / 474 ms",
        "0.05 USDC（最大10本）の宣言のみ"
      ],
      [
        "/status.json",
        "200",
        "17,926 B",
        "8,151 / 4,404 / 1,506 ms",
        "無料の納品記録。監視2経路は 0 件"
      ],
      [
        "/gas?chains=base",
        "402",
        "19,719 B",
        "782 / 508 / 468 ms",
        "6項目の指紋が3回とも同一（ba5ad7ff…）"
      ]
    ],
    "note": "応答時間の中央値は /watch 567 ms、/watchlist 479 ms、/status.json 4,404 ms。/watch と /watchlist の 402 本文は accepts[0].maxAmountRequired が 20000 / 50000（USDC 6桁で 0.02 / 0.05）、scheme=exact、network=base、maxTimeoutSeconds=60 を宣言していました。"
  },
  "見出し": [
    "結論",
    "実測",
    "宣言から読める監視の仕様",
    "同じ確認を無料でする",
    "払うか、自分で回すか",
    "次の一歩"
  ],
  "本文": [
    {
      "見出し": "結論",
      "html": "<p><code>/watch</code> は「監視」という名前ですが、比べるのは<strong>支払条件の6項目</strong>（scheme・network・asset・amount・payTo・maxTimeoutSeconds）です。応答時間や稼働率を記録する SLA 監視ではなく、<strong>次の呼び出しで条件が変わったか</strong>だけを返します。価格は /watch が <strong>0.02 USDC</strong>、最大10本をまとめる /watchlist が <strong>0.05 USDC</strong>（/watch 0.02 × まとめ買い）。どちらもカタログ掲載済みです。</p><p>2026-10-19 時点で、無料の <code>/status.json</code>（2026-10-18T15:15:03Z 生成）を見ると、この2経路の納品記録は <strong>deliveries_observed: 0</strong> でした。つまり<strong>買い手側の実績はまだ無く</strong>、支払う前に判断できる材料は 402 の宣言と、自分で無料で測った条件だけです。この記事はその測り方を書きます。</p>"
    },
    {
      "見出し": "実測",
      "html": "<table>\n<thead><tr><th>経路</th><th>応答</th><th>大きさ</th><th>応答時間（3回）</th><th>中身</th></tr></thead>\n<tbody>\n<tr><td><code>/watch?url=…</code></td><td>402</td><td>19,459 B</td><td>810 / 567 / 501 ms</td><td>0.02 USDC の宣言のみ。200 の本文は未取得</td></tr>\n<tr><td><code>/watch</code>（url なし）</td><td>402</td><td>19,459 B</td><td>431 / 436 ms（2回）</td><td>パラメータ検証より前に課金ゲート</td></tr>\n<tr><td><code>/watchlist?urls=…</code></td><td>402</td><td>23,143 B</td><td>677 / 479 / 474 ms</td><td>0.05 USDC（最大10本）の宣言のみ</td></tr>\n<tr><td><code>/status.json</code></td><td>200</td><td>17,926 B</td><td>8,151 / 4,404 / 1,506 ms</td><td>無料の納品記録。監視2経路は 0 件</td></tr>\n<tr><td><code>/gas?chains=base</code></td><td>402</td><td>19,719 B</td><td>782 / 508 / 468 ms</td><td>6項目の指紋が3回とも同一</td></tr>\n</tbody>\n</table>\n<p>注目すべきは <code>/watch?url=…</code> と <code>/watch</code>（url なし）が<strong>同じ 19,459 B の 402</strong> を返したことです。URL を付けても付けなくても、まず支払いの宣言が返ります。つまり<strong>「このURLを監視できるか」を 402 の段階では確かめられません</strong>。監視対象の妥当性（到達できるか、402 を返すか）は、支払った後の 200 の中で <code>observed</code> / <code>indeterminate</code> として返る設計だと宣言文は説明しています。</p><p><code>/status.json</code> の 3回は 8.2 秒・4.4 秒・1.5 秒とばらつきました。無料とはいえ、KV の納品ログを走査する面なので<strong>毎回の監視に使うには遅い</strong>というのが実測です（キャッシュの有無は特定していません）。</p>"
    },
    {
      "見出し": "宣言から読める監視の仕様",
      "html": "<ul>\n<li><strong>比べる条件</strong>：scheme・network・asset・amount・payTo・maxTimeoutSeconds の6項目。差分は <code>field / from / to</code> だけ。</li>\n<li><strong>取得</strong>：対象は支払い後に1回だけ。1本ごとに5秒で打ち切り、リダイレクトは3回まで。同じURLの60秒以内の再取得はキャッシュ。</li>\n<li><strong>読めなかった場合</strong>：<code>status:\"indeterminate\"</code> で返し、「変化なし」にも基準の上書きにもしない、と宣言しています。</li>\n<li><strong>まとめ買い</strong>：最大10本。超える要求は<strong>支払いの前に 400</strong> で断る。取得は最大4本ずつ並行。</li>\n<li><strong>買い方</strong>：1回目は 402 で価格と支払条件、2回目は同じリクエストに <code>PAYMENT-SIGNATURE</code> を付けて 200。webhook は不要。</li>\n</ul>\n<p>「uptime（稼働率）」を期待して買うと、返るのは<strong>支払条件の変化</strong>です。対象が落ちていれば <code>indeterminate</code> になり、それは「変化なし」とは別物として返ります。ここを区別している点は、監視として誠実です。ただし<strong>稼働率の％や履歴は、宣言からは読み取れません</strong>（200 の本文を取っていないので未確認）。</p>"
    },
    {
      "見出し": "同じ確認を無料でする",
      "html": "<p>1本だけを時々見るなら、対象の 402 から同じ6項目を取って指紋にするだけで足ります。実際に <code>/gas?chains=base</code> へ3回投げると、<strong>3回とも同じ指紋 ba5ad7ff…</strong>、19,719 B、782 / 508 / 468 ms でした。</p><pre><code>curl -s \"https://TARGET/paid\" \\\n  | jq -c '{scheme:.accepts[0].scheme,network:.accepts[0].network,asset:.accepts[0].asset,amount:.accepts[0].maxAmountRequired,payTo:.accepts[0].payTo,maxTimeoutSeconds:.accepts[0].maxTimeoutSeconds}' \\\n  | sha256sum</code></pre>\n<p>この文字列を毎日1回保存し、前日と違えば差分を人に知らせます。費用は 0 で、相手の 402 が返る限り使えます。ただし<strong>履歴・並列取得・10本の一括・サーバー側の基準保存はありません</strong>。対象が 402 を返さなくなった日は「変化なし」ではなく「読めなかった」として扱ってください（/watchlist の <code>indeterminate</code> と同じ考え方です）。</p>"
    },
    {
      "見出し": "払うか、自分で回すか",
      "html": "<ul>\n<li><strong>自分で回す（無料）</strong>：対象が1〜2本で、1日1回の条件確認で足りる。上のコマンドを cron か GitHub Actions に置く。履歴は自分のファイルに残る。</li>\n<li><strong>/watch に払う（0.02/回）</strong>：基準の保存と差分の整形を相手に任せたい1本がある。60秒キャッシュと5秒タイムアウトも向こう持ち。</li>\n<li><strong>/watchlist に払う（0.05/回）</strong>：3本以上を1コールにまとめたい。10本なら1本あたり 0.005 で、/watch を10回（0.20）より安い。11本以上は 400 で支払い前に止まる。</li>\n</ul>\n<p>監視2経路の納品記録がまだ 0 件なので、<strong>200 の本文の形・差分の精度・indeterminate の実際の返り方は、この記事では未確認</strong>です。0.02 を払って1回試すのが最初の検証で、その結果は /status.json に載ります。</p>"
    },
    {
      "見出し": "次の一歩",
      "html": "<p>相手の端点を払う前に確かめる手順は <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/ja/check-before-paying\"><code>/ja/check-before-paying</code></a>、価格の相場は <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/ja/price-benchmark\"><code>/ja/price-benchmark</code></a> に実測でまとめています。監視の納品記録そのものは <a href=\"https://x402-catalog-history.ai-business-surface.workers.dev/status.json\"><code>/status.json</code></a> で無料で読めます。</p>"
    }
  ],
  "一覧": "https://x402-catalog-history.ai-business-surface.workers.dev/ja"
}
