Skip to content

Monitor USDT / USDC Payments via JSON-RPC

Use BlockVectra JSON-RPC to monitor incoming USDT and USDC transfers via eth_getLogs polling, with live WebSocket subscriptions available on supported chains.

Supported Chains

Per-chain capabilities are published at GET /v1/chains.

ChainSupported delivery
Arbitrum OneHTTP polling (eth_getLogs)
BaseHTTP polling (eth_getLogs)
BNB Smart ChainHTTP polling (eth_getLogs)
EthereumHTTP polling (eth_getLogs)
HyperEVMHTTP polling (eth_getLogs)
PolygonHTTP polling (eth_getLogs)
Robinhood ChainHTTP polling & WebSocket

Three Steps to Accept Payments

1. Obtain an API key

Create an API key via programmatic sign-up using an Ethereum wallet signature, or sign in to the console to generate one.

2. Poll Transfer events

Construct an eth_getLogs filter with the token contract address, Transfer topic0, and your 32-byte zero-padded recipient address. Advance your cursor in batches up to the chain's maximum block range limit (typically 1,000 blocks). See the Transfer event filter guide and cursor polling guide.

3. Confirm depth and credit payment

Query up to safe_head = current_head - CONFIRMATION_DEPTH to safeguard against chain reorganizations. Check that log.removed is not true, and enforce idempotency on (transactionHash, logIndex) before crediting user balances. See the reorg handling guide and deduplication guide.

eth_getLogs Request Example

Standard JSON-RPC request matching the stablecoin payments guide:

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>"
        ]
      }
    ]
  }'

Pricing & Billing Rules

eth_getLogs method weight: 30 CU ($3.00 per 1,000,000 requests).

Requests rejected by the service (such as block range exceeded or rate limited) are not billed (billed: false). See the billing rules guide or view the full pricing table.

Start Monitoring Payments