Skip to content

Explorer REST ​

Base URL: https://api.utn.network/api/v2/

api.utn.network proxies /api/v2/* to the same services UTN Scan uses. List paths (/contracts, /assets, /tokens, /blocks, /transactions, and an address's /transactions and /logs) go to Scan's list handler. Every other /api/v2 path goes to Blockscout. Only GET is accepted on /api/v2; any other method is HTTP 405. The host allows 600 requests per minute per IP. GET / redirects to this API reference.

UTN Scan handles some list URLs itself when you pass page or limit (the contracts list is always handled here). Everything else under /api/v2/ is Blockscout. Examples below were checked with GET on 8 Oct 2026 through the explorer host, which proxies the same backends. Call them on api.utn.network.

Paged lists ​

page defaults to 1 and is capped at 100000. limit is 10, 25, 50, or 100. Any other limit becomes 10.

bash
curl -s "https://api.utn.network/api/v2/transactions?page=1&limit=10"

The body is:

json
{
  "items": [],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 22,
    "totalPages": 3,
    "hasNext": true,
    "hasPrev": false
  }
}

total and totalPages can be null. The blocks list returned null for both, with hasNext: true. The blocks list also includes head, the chain tip as a block object (it may be a block the empty filter would hide).

PathExtra query parameters
GET /api/v2/blocksempty (0 hides blocks with no transactions; 1 keeps only those), miner (address prefix), q (height, hash, or miner)
GET /api/v2/transactionsq (hash, from, to, created contract, or method), status (ok or error), method (deploy, transfer, or a substring of the method name)
GET /api/v2/contractsq (address, name, standard, or organization), verified (1 or 0), standard
GET /api/v2/tokensq (address, name, symbol, or type), type (ERC-20, ERC-721, or ERC-1155)
GET /api/v2/addresses/{address}/transactionsq, status (same values as the transaction list)
GET /api/v2/addresses/{address}/logsq

Without page and limit, GET /api/v2/addresses/{address}/transactions is Blockscout's cursor (next_page_params), not this envelope. The same is true of detail routes.

Fields on a list item ​

These fields were present on live objects. Blockscout adds more; do not assume a field that is not listed here.

Block (items[] and head): height, hash, timestamp, gas_limit, gas_used, transactions_count, miner.hash, transaction_fees, size, parent_hash.

Transaction: hash, status (ok or error), block_number, timestamp, from.hash, to.hash, value, fee.type, fee.value, gas_used, gas_price, method, nonce.

Contract: address.hash, address.is_contract, address.is_verified, name, standard, version, organization, language, compiler_version, verified_at, transactions_count, creator.hash. standard and name are null when the indexer has no label. On 8 Oct 2026 verified_at was null on every row.

Token: the list can be empty. The envelope is still items and pagination. A token row the proxy filters on has address_hash, name, symbol, and type. No token row was returned on the check date, so those item fields are from the list implementation, not from a live sample.

Address transactions and logs: the same items and pagination envelope. An address with no rows returns "items": [].

Detail routes ​

Blockscout serves these. Scan calls them without page and limit.

bash
curl -s https://api.utn.network/api/v2/stats
curl -s https://api.utn.network/api/v2/blocks/1
curl -s "https://api.utn.network/api/v2/search?q=0xYOUR_ADDRESS"
curl -s https://api.utn.network/api/v2/addresses/0xYOUR_ADDRESS
curl -s https://api.utn.network/api/v2/transactions/0xYOUR_TX_HASH
curl -s https://api.utn.network/api/v2/transactions/0xYOUR_TX_HASH/logs
curl -s https://api.utn.network/api/v2/smart-contracts/counters
curl -s https://api.utn.network/api/v2/smart-contracts/verification/config

GET /api/v2/stats included total_blocks, total_transactions, total_addresses, transactions_today, average_block_time, gas_prices.slow, gas_prices.average, gas_prices.fast, and network_utilization_percentage. coin_price, market_cap ("0"), and gas_used_today were null or zero. Do not treat coin_price as a market.

GET /api/v2/blocks/{height} returns one block object (no items wrapper). GET /api/v2/blocks/latest returned HTTP 422.

GET /api/v2/search?q= returns items and next_page_params. An address hit has type "address", address_hash, url, name, and is_smart_contract_verified. An unknown query returns "items": [].

GET /api/v2/addresses/{address} returns one address. Fields observed: hash, is_contract, is_verified, coin_balance, has_tokens, has_token_transfers, has_logs, name, creation_transaction_hash, creator_address_hash. An address with no code still returns 200 with is_contract: false. coin_balance can be null.

GET /api/v2/transactions/{hash} returns one transaction. GET /api/v2/transactions/{hash}/logs returns { "items": [], "next_page_params": null }.

GET /api/v2/smart-contracts/{address} is the contract record Scan uses for the ABI. It returned HTTP 404 for an address with no code. GET /api/v2/smart-contracts/counters returns smart_contracts, verified_smart_contracts, new_smart_contracts_24h, and new_verified_smart_contracts_24h as strings.

GET /api/v2/smart-contracts/verification/config returns solidity_compiler_versions (a list of v0.8.28+commit.… strings), solidity_evm_versions, license_types (name to integer), verification_options, and the same lists for Vyper.

Scan also calls these Blockscout paths. They were not given a separate sample response here: /stats/charts/transactions, /blocks/{height}/transactions, /transactions/{hash}/token-transfers, /addresses/{address}/counters, /addresses/{address}/token-balances, /addresses/{address}/coin-balance-history, /addresses/{address}/internal-transactions, /addresses/{address}/token-transfers, /tokens/{address}, /tokens/{address}/instances, /tokens/{address}/instances/{id}, /tokens/{address}/instances/{id}/transfers.

GET /api/v2/assets is routed at the edge like the other lists, and the Scan UI redirects /assets to /tokens. There is no list handler for /api/v2/assets in the proxy.

Testnet coin T-RAIN · chain 20261003