Мониторинг платежей в USDT / USDC через JSON-RPC
Используйте JSON-RPC от BlockVectra для мониторинга переводов в USDT и USDC через опрос eth_getLogs, а также подписки WebSocket в поддерживаемых сетях.
Поддерживаемые сети
Сетевые возможности, опубликованные в GET /v1/chains.
| Сеть | Поддерживаемый способ получения |
|---|---|
| Arbitrum One | HTTP-опрос (eth_getLogs) |
| Base | HTTP-опрос (eth_getLogs) |
| BNB Smart Chain | HTTP-опрос (eth_getLogs) |
| Ethereum | HTTP-опрос (eth_getLogs) |
| HyperEVM | HTTP-опрос (eth_getLogs) |
| Polygon | HTTP-опрос (eth_getLogs) |
| Robinhood Chain | HTTP-опрос и 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). См. правила биллинга(на английском) или полный тарифный план.