本文へスキップ

JSON-RPC による USDT / USDC 入金監視

BlockVectra の JSON-RPC を使用して eth_getLogs ポーリングで USDT / USDC の入金を監視します(WebSocket 対応チェーンではリアルタイム購読も利用可能です)。

対応チェーン

GET /v1/chains で公開されているネットワーク仕様。

チェーン対応配信方式
Arbitrum OneHTTP ポーリング (eth_getLogs)
BaseHTTP ポーリング (eth_getLogs)
BNB Smart ChainHTTP ポーリング (eth_getLogs)
EthereumHTTP ポーリング (eth_getLogs)
HyperEVMHTTP ポーリング (eth_getLogs)
PolygonHTTP ポーリング (eth_getLogs)
Robinhood ChainHTTP ポーリング & WebSocket

決済受け取りの三つのステップ

1. API key の取得

Ethereum ウォレット署名による プログラマティック登録(英語) で API key を作成するか、コンソール にログインして生成します。

2. Transfer イベントのポーリング

トークンコントラクトアドレス、Transfer イベントの topic0、32 バイトゼロパディング済み受取アドレスを用いて eth_getLogs フィルタを構築します。チェーンの最大ブロック範囲制限(通常 1,000 ブロック)以内でカーソルを進めます。詳細は Transfer イベントフィルタガイド(英語) および カーソルポーリングガイド(英語) を参照してください。

3. 承認深度の確認と残高反映

チェーンの再編成(リオーグ)を防ぐため、safe_head = current_head - CONFIRMATION_DEPTH まで照会します。log.removed が true でないことを確認し、(transactionHash, logIndex) の複合キーにより冪等性を担保した上で残高へ反映します。詳細は リオーグ対策ガイド(英語) および 重複排除ガイド(英語) を参照してください。

eth_getLogs リクエスト例

実用ガイドと一致する標準 JSON-RPC リクエスト:

curl -s -X POST https://api.blockvectra.com/v1/bsc_mainnet \
  -H "content-type: application/json" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_getLogs",
    "params": [
      {
        "address": "0x55d398326f99059fF775485246999027B3197955",
        "fromBlock": "0x28a0000",
        "toBlock": "0x28a03e7",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          null,
          "0x000000000000000000000000<your-receiving-address>"
        ]
      }
    ]
  }'

料金と請求ルール

eth_getLogs メソッド重み:30 CU(1,000,000 リクエストあたり $3.00)。

サービスによって拒否されたリクエスト(ブロック範囲超過やレート制限など)は課金されません (billed: false)。請求ルールガイド(英語) または 全料金表 をご確認ください。

決済監視を開始する