Перейти к содержимому

Мониторинг платежей в USDT / USDC через JSON-RPC

Используйте JSON-RPC от BlockVectra для мониторинга переводов в USDT и USDC через опрос eth_getLogs, а также подписки 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

Создайте API key через программную регистрацию(на английском) с помощью подписи кошелька Ethereum или войдите в консоль для его создания.

2. Опрос событий Transfer

Сформируйте фильтр eth_getLogs с адресом смарт-контракта токена, topic0 события Transfer и адресом получателя, дополненным нулями до 32 байт. Продвигайте курсор частями в пределах лимита сети (обычно 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 ($3.00 за 1,000,000 запросов).

Запросы, отклоненные сервисом (например, при превышении диапазона блоков или лимита запросов), не тарифицируются (billed: false). См. правила биллинга(на английском) или полный тарифный план.

Начать мониторинг