Skip to content
—
QuantascanAlpha
Browse API groups

Addresses API

Address summaries, balances, transaction history and counterparty analysis.
GET/api/v1/{chain}/addresses/{address}QRL 2.0QRL (PoW)

Get Address

Path parameters

  • addressrequired
    string

Query parameters

  • with_labelsoptional
    booleandefault false

    When true, JOINs `quantascan.address_labels` and includes the primary label (`label`, `label_category`) on the response. Saves a round-trip vs calling `/labels/{address}` separately.

Response 200 · AddressDetail

chainstringrequired
networkstringrequired
addressstringrequired
balancestring | nullUInt256 as decimal string (smallest unit)
total_receivedstring | nullUInt256 as decimal string
total_sentstring | nullUInt256 as decimal string
total_fees_paidstring | nullUInt256 as decimal string
tx_countinteger | null
tx_received_countinteger | null
tx_sent_countinteger | null
first_seenstring | null
last_seenstring | null
master_addressstring | nullQRL only --master that registered this slave, if any.
wallet_classstring | null
wallet_class_methodstring | null
wallet_class_reasonstring | null
is_deployerboolean | null
withdrawal_countinteger | null
withdrawal_totalstring | null
internal_tx_countinteger | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "chain": "qrl2",
  "network": "testnet",
  "address": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
  "balance": "999994666022607865755",
  "total_received": "1000000000000000000000",
  "total_sent": "0",
  "total_fees_paid": "5333977392134245",
  "tx_count": 4,
  "tx_received_count": 1,
  "tx_sent_count": 3,
  "first_seen": "2026-05-31T20:52:36",
  "last_seen": "2026-07-30T19:22:36",
  "master_address": null,
  "wallet_class": "others",
  "wallet_class_method": "structural",
  "wallet_class_reason": null,
  "is_deployer": null,
  "withdrawal_count": 0,
  "withdrawal_total": "0",
  "internal_tx_count": 0
}
GET/api/v1/{chain}/addresses/{address}/activity-heatmapQRL 2.0QRL (PoW)

Get Address Activity Heatmap

7×24 grid (Mon-Sun × 0-23h UTC) of tx counts for Block 3 heatmap.

Sparse — only hour/day buckets that ever saw activity are returned. Frontend pads missing cells with zeros.

Path parameters

  • addressrequired
    string

Response 200 · GenericListResponse

itemsobject[]
totalinteger | null
limitinteger | null
offsetinteger | null
pageinteger | null
has_nextboolean | null
has_prevboolean | null
next_cursorstring | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/activity-heatmap" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [
    {
      "hour_of_day": 18,
      "day_of_week": 1,
      "tx_count_in": 0,
      "tx_count_out": 1,
      "tx_count_total": 1
    },
    {
      "hour_of_day": 19,
      "day_of_week": 1,
      "tx_count_in": 0,
      "tx_count_out": 1,
      "tx_count_total": 1
    },
    "… (2 more)"
  ],
  "count": 4
}
GET/api/v1/{chain}/addresses/{address}/approvalsQRL 2.0QRL (PoW)

Get Address Approvals

Open token approvals granted by this address (qrl2 only), newest first: QRC-20 allowances, QRC-721 single-token approvals (only while the owner still holds the token) and ApprovalForAll grants.

Event-derived: a QRC-20 allowance is the LAST APPROVED value — spending it through transferFrom usually emits no new event, so the live allowance can be lower. A revoke (approve 0 / setApprovalForAll false) removes the row.

Path parameters

  • addressrequired
    string

Response 200 · AddressApprovals

▸
itemsTokenApproval[]
token_contractstringrequired
spenderstringrequired
kindstringrequiredqrc20 | qrc721 | approval_for_all
token_idstring | null
amount_rawstring | nullQRC-20: last approved allowance (base units).
amount_formattedstring | null
is_infiniteboolean
last_tx_hashstring | null
last_blockinteger | null
last_timestampstring | null
token_namestring | null
token_symbolstring | null
token_decimalsinteger | null
spender_labelstring | null
trust_levelstring | null
totalinteger
ownerstringrequired
networkstringrequired
countsobject

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/approvals" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
GET/api/v1/{chain}/addresses/{address}/balanceQRL 2.0QRL (PoW)

Native balance at a block or a point in time

Exact native balance of an address after a given block (or at a given time) — Etherscan's Pro-only balancehistory, on both chains.

Same definition as the current balance on /addresses/{address}: it includes fees, validator withdrawals (QRL 2.0), internal contract transfers and QRL multisig executions, contract-creation value and the genesis allocation, so at the tip it equals that endpoint's balance. components shows the received / sent / fees totals it was built from.

Omit both parameters for the balance at the indexed tip. A block or time beyond the indexed tip → 422 beyond_indexed_tip (retry later). In the rare case block timestamps around the target day are out of height order the answer cannot be guaranteed exact and the endpoint returns 422 balance_inexact instead of an approximation.

Path parameters

  • addressrequired
    string

    Address of this chain (case-insensitive).

Query parameters

  • blockoptional
    integer | null

    Block height. The balance is the state AFTER this block.

  • timestampoptional
    integer | null

    Unix seconds. Resolved to the latest indexed block with a timestamp at or before it. Mutually exclusive with `block`.

Response 200 · HistoricalBalanceResponse

chainstringrequired
networkstringrequired
addressstringrequired
blockintegerrequiredBlock height the balance is valid AFTER (all transactions in this block applied).
block_hashstring | null
timestampstringrequiredISO-8601 UTC timestamp of that block.
balancestringrequiredBalance in base units (planck / shor).
balance_displaystringrequiredBalance in Quanta (qrl2) / QRL (qrl).
▸
componentsBalanceComponentsrequiredHow the balance was assembled — the same terms as the current balance in `address_summary` (received − sent − fees), so a client can audit it.
receivedstringrequiredNative value received: transfers in, coinbase rewards (qrl), validator withdrawals (qrl2), internal/contract transfers in, contract-creation value, genesis allocation.
sentstringrequiredNative value sent: transfers out + internal/contract transfers out.
feesstringrequiredTransaction fees paid as sender.
consensus_overridestring | nullSet when a consensus rule force-zeroes this address at this height (QRL hard fork #3 banned address); the balance is then '0', matching the node.
indexed_tip_heightinteger | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/balance" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
GET/api/v1/{chain}/addresses/{address}/balance-historyQRL 2.0QRL (PoW)

Get Address Balance History

Daily balance trajectory for the address-detail balance chart.

Items have shape: { day, received, sent_with_fees, tx_count_in, tx_count_out, net_delta_cumulative }

Full history by default; pass ?window=90d to cap server-side.

Path parameters

  • addressrequired
    string

Query parameters

  • windowoptional
    string | null

    Optional look-back window with unit suffix (e.g. 30d, 90d, 365d). Omit (or pass 'all') for the wallet's FULL history — the default. The chart filters ranges client-side, so the server returns everything by default and never hides a wallet whose only activity predates a rolling window.

Response 200 · ItemsList_GenericObject_

itemsGenericObject[]required

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/balance-history" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [
    {
      "day": "2026-05-31",
      "received": "1000000000000000000000",
      "sent_with_fees": "0",
      "tx_count_in": 1,
      "tx_count_out": 0,
      "net_delta_cumulative": "1000000000000000000000"
    },
    {
      "day": "2026-06-01",
      "received": "0",
      "sent_with_fees": "4891414389036304",
      "tx_count_in": 0,
      "tx_count_out": 2,
      "net_delta_cumulative": "999995108585610963696"
    },
    "… (1 more)"
  ]
}
GET/api/v1/{chain}/addresses/{address}/counterpartiesQRL 2.0QRL (PoW)

Get Address Counterparties

Top counterparties for an address.

Returns the top limit addresses that this address interacted with, sorted by transaction count. Each row carries tx_count_with, total_sent_to_them, total_received_from_them, and last_interaction.

UX: powers a "Top counterparties" panel on the address-detail page.

Path parameters

  • addressrequired
    string

Query parameters

  • directionoptional
    stringdefault both

    sent=outgoing only, received=incoming only, both=either

  • limitoptional
    integermin 1 · max 200default 20

Response 200 · GenericListResponse

itemsobject[]
totalinteger | null
limitinteger | null
offsetinteger | null
pageinteger | null
has_nextboolean | null
has_prevboolean | null
next_cursorstring | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/counterparties" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [
    {
      "counterparty": "Q79b662ce3d663643df4454a8ba3f532c0de6887f",
      "tx_count_with": 1,
      "total_sent_to_them": null,
      "total_received_from_them": "1000000000000000000000",
      "last_interaction": "2026-05-31T20:52:36"
    },
    {
      "counterparty": "Q1b7cff4399f7e3a96f5321d72fe050401de97e5a",
      "tx_count_with": 1,
      "total_sent_to_them": "0",
      "total_received_from_them": null,
      "last_interaction": "2026-06-01T18:12:36"
    },
    "… (1 more)"
  ],
  "count": 3,
  "address": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
  "chain": "qrl2",
  "network": "testnet",
  "direction": "both"
}
GET/api/v1/{chain}/addresses/{address}/export.csvQRL 2.0QRL (PoW)

Export an address's history as CSV (tax / accounting)

Streams the address's history for one UTC date range as CSV: date_utc, block, tx_hash, direction, from, to, value, fee, token_symbol, tx_type, status, price_usd, value_usd (+ type-specific columns). Values are decimals in QRL (qrl) or Quanta (qrl2); a fee appears only on the paying side, once per transaction. Max 366 days and 100,000 rows per file (422 when exceeded — narrow the range). Prices are daily USD closes where stored, otherwise empty (always empty for QRL 2.0 until it has a market). type=withdrawals is QRL 2.0 only.

Path parameters

  • addressrequired
    string

Query parameters

  • fromoptional
    string | null

    Start date (UTC, inclusive), YYYY-MM-DD. Default: 365 days before `to`.

  • tooptional
    string | null

    End date (UTC, inclusive), YYYY-MM-DD. Default: today.

  • typeoptional
    stringdefault transactions

    transactions | internal | tokens | withdrawals

Response 200 · object

Variable shape. See the example response below.

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/export.csv" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
GET/api/v1/{chain}/addresses/{address}/insightsQRL 2.0QRL (PoW)

Get Address Insights

Bundle for Blocks 1, 8, 11 of the wallet flagship.

Returns: cohort badges, rank dimensions, concentration warning, and XMSS info (qrl only). Single round-trip from the frontend.

Path parameters

  • addressrequired
    string

Response 200 · GenericObject

Variable shape. See the example response below.

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/insights" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "address": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
  "chain": "qrl2",
  "network": "testnet",
  "exists": true,
  "badges": [
    {
      "key": "tier_dolphin",
      "label": "Dolphin",
      "emoji": "🐬",
      "tone": "info",
      "category": "holdings",
      "tier": "indicator",
      "description": "Holder tier by coin balance (Dolphin: 1,000 – 10,000). Ten tiers step from plankton (smallest) up to leviathan (largest); the same ladder as the holder-distribution chart.",
      "reason": "Holds ~5k coins (0.0012% of supply) — dolphin tier."
    },
    {
      "key": "mldsa",
      "label": "ML-DSA-87",
      "emoji": "🔐",
      "tone": "neutral",
      "category": "signature",
      "tier": "indicator",
      "description": "Lattice-based post-quantum signatures (QRL 2.0).",
      "reason": null
    }
  ],
  "reputation": {
    "score": 50,
    "classification": "neutral"
  },
  "rank": {
    "by_balance": {
      "rank": 32,
      "percentile": 10.73,
      "total": 289
    },
    "by_tx_count": {
      "rank": 58,
      "percentile": 19.72,
      "total": 289
    },
    "by_age": {
      "rank": 85,
      "percentile": 29.07,
      "total": 289
    },
    "supply_pct": 0.001244
  },
  "concentration": null,
  "xmss": null
}
GET/api/v1/{chain}/addresses/{address}/internal-transactionsQRL 2.0QRL (PoW)

Get Address Internal Transactions

Internal (contract-initiated) native-Quanta transfers touching this address (qrl2 only) — Etherscan-style "Internal Txns" tab.

These move Quanta inside nested EVM call frames (NFT-sale payouts, faucet claims, DEX proceeds, withdraw(), SELFDESTRUCT refunds) with NO top-level footprint, so they are DISJOINT from the /transactions feed (the parent tx's own value is never re-listed here). A single from-OR-to filter means a self-transfer appears exactly once. Offset-paginated, newest first.

Returns an empty page on qrl (no EVM contracts) or a pre-mig-111 deploy.

Path parameters

  • addressrequired
    string

Query parameters

  • pageoptional
    integermin 1default 1
  • page_sizeoptional
    integermin 1 · max 100default 25

Response 200 · AddressInternalTxPaginated

▸
itemsAddressInternalTxItem[]
heightintegerrequired
block_hashstringrequired
tx_hashstringrequired
trace_addressstringrequired
call_typestringrequired
from_addrstringrequired
to_addrstringrequired
valuestringrequired
timestampstringrequired
directionstringrequired
totalinteger | null
pageinteger | null
page_sizeinteger | null
total_pagesinteger | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/internal-transactions" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [],
  "total": 0,
  "page": 1,
  "page_size": 25,
  "total_pages": 1
}
GET/api/v1/{chain}/addresses/{address}/provenanceQRL 2.0QRL (PoW)

Get Address Provenance

Provenance signals for the address page — the first wallet to fund this address (Etherscan "Funded by"), plus its first and last transactions.

Path parameters

  • addressrequired
    string

Response 200 · GenericObject

Variable shape. See the example response below.

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/provenance" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "funded_by": "Q79b662ce3d663643df4454a8ba3f532c0de6887f",
  "funded_at": "2026-05-31T20:52:36",
  "funded_tx": "0x48d8e07995cda2f73948d1bdbc82b4f05d9ea46ea2d9dca0e99147d94b0cef51",
  "first_tx": "0x48d8e07995cda2f73948d1bdbc82b4f05d9ea46ea2d9dca0e99147d94b0cef51",
  "first_tx_at": "2026-05-31T20:52:36",
  "last_tx": "0x7757ba180d74a02a33350b143bca0c8ee5a55c912ce8e359cfc24646baf85e2c",
  "last_tx_at": "2026-07-30T19:22:36"
}
GET/api/v1/{chain}/addresses/{address}/slavesQRL 2.0QRL (PoW)

Get Address Slaves

Slave XMSS-keys registered under this master address (QRL-only).

Returns the addresses that named this address as their master (the inverse of the "Slave of QXXX" chip), with each slave's tx count + first/last activity. Non-qrl chains return an empty list.

Path parameters

  • addressrequired
    string

Query parameters

  • limitoptional
    integermin 1 · max 200default 25
  • offsetoptional
    integermin 0default 0

Response 200 · GenericListResponse

itemsobject[]
totalinteger | null
limitinteger | null
offsetinteger | null
pageinteger | null
has_nextboolean | null
has_prevboolean | null
next_cursorstring | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/slaves" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [],
  "count": 0,
  "total": 0,
  "address": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
  "chain": "qrl2",
  "network": "testnet"
}
GET/api/v1/{chain}/addresses/{address}/token-holdingsQRL 2.0QRL (PoW)

Get Address Token Holdings

QRC-20 tokens currently held by this address (qrl2 only).

Order: curated tokens first, then source-verified ones, then the rest; within a group by balance (decimals applied). Each item: token_contract, token_name, token_symbol, token_decimals, balance_raw, balance_formatted (exact), balance_display (legacy integer part), transfer_count, last_activity, trust_level, warnings, profile. total counts every token held. Empty on qrl (no QRC tokens).

Path parameters

  • addressrequired
    string

Query parameters

  • limitoptional
    integermin 1 · max 500default 100
  • offsetoptional
    integermin 0 · max 100000default 0

Response 200 · TokenHoldingsPage

itemsobject[]
totalinteger
limitinteger | null
offsetinteger | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/token-holdings" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [
    {
      "token_contract": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
      "token_name": "SpikeToken",
      "token_symbol": "SPK",
      "token_decimals": 18,
      "balance_raw": "1000000000000000000000",
      "balance_display": "1000",
      "transfer_count": 1,
      "last_activity": "2026-07-30T19:22:36"
    },
    {
      "token_contract": "Q83242a8fde6429aa53e050aefb03c0382a495df3",
      "token_name": "Quantum safe NFT",
      "token_symbol": "Qnft",
      "token_decimals": 1,
      "balance_raw": "19950",
      "balance_display": "1995",
      "transfer_count": 2,
      "last_activity": "2026-06-01T19:17:36"
    }
  ]
}
GET/api/v1/{chain}/addresses/{address}/transactionsQRL 2.0QRL (PoW)

Get Address Transactions

Per-address tx history (newest first).

Pages by cursor (cheapest, sequential) or by offset (random access). The response carries total, so callers can show "page N of M".

Every row carries confirmations (indexed tip − height + 1) and, on QRL 2.0, finalized (block at or below the finalized checkpoint; null on QRL legacy, which has no finality).

Path parameters

  • addressrequired
    string

Query parameters

  • cursoroptional
    string | null

    Opaque pagination token from a previous response's `next_cursor`. Omit to start at the address's newest transaction.

  • offsetoptional
    integermin 0default 0

    Skip this many items (random access — powers 'page N of M' and jump-to-oldest). Takes precedence over `cursor` when both are set.

  • limitoptional
    integermin 1 · max 100default 25

    Items per page (1-100).

  • directionoptional
    stringdefault both

    in=received, out=sent, both=either side

  • tx_typeoptional
    string | null

    Filter: tx_type

  • time_fromoptional
    integer | null

    Filter: timestamp >= Unix seconds

  • time_tooptional
    integer | null

    Filter: timestamp < Unix seconds

Response 200 · PaginatedAddressCursor_TransactionDetail_

▸
itemsTransactionDetail[]required
chainstringrequired
networkstringrequired
tx_hashstringrequired
heightinteger | null
timestampstring | null
from_addrstring | null
to_addrstring | null
confirmationsinteger | nullIndexed tip height - block height + 1 (0 = block not yet fully indexed).
finalizedboolean | nullQRL 2.0: block is at/below the Casper-FFG finalized checkpoint. Null on QRL legacy (PoW, no finality) or when unknown.
limitintegerrequiredMaximum number of items in this page
next_cursorstring | nullOpaque pagination token for the next page; null when the current page is the last one. Pass back unchanged in ?cursor=.
has_morebooleanrequiredTrue when at least one more page is available.
totalinteger | nullTotal logical transactions matching the same filters, or null when the address index is unavailable. Multi-recipient transactions count once, matching how items are paged.
offsetintegerNumber of items skipped before this page.

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/<address>/transactions" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [
    {
      "chain": "qrl2",
      "network": "testnet",
      "tx_hash": "0x7757ba180d74a02a33350b143bca0c8ee5a55c912ce8e359cfc24646baf85e2c",
      "height": 173934,
      "timestamp": "2026-07-30T19:22:36",
      "from_addr": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
      "to_addr": null,
      "block_hash": "0x5d75e7647a07da30953d158c8a36961a61a393f7e58bde4c5b952a365f9c7270",
      "tx_index": 0,
      "recipient_index": 0,
      "value": "0",
      "fee": "442563003097941",
      "nonce": 2,
      "tx_type": null,
      "tx_type_evm": 2,
      "gas": 600000,
      "gas_used": 442563,
      "gas_price": "1000000007",
      "effective_gas_price": "1000000007",
      "contract_address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
      "status": 1,
      "master_addr": null,
      "input_data": "0x60806040"
    },
    {
      "chain": "qrl2",
      "network": "testnet",
      "tx_hash": "0x03106d397f807b64e7ee8074a1704960f9f16a157efa1972d960cbe0278e1b0f",
      "height": 88969,
      "timestamp": "2026-06-01T19:17:36",
      "from_addr": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
      "to_addr": "Q83242a8fde6429aa53e050aefb03c0382a495df3",
      "block_hash": "0x9447014a96024cbaaad80f4a34bdb412ae237c666ac1799bae79b805c4511400",
      "tx_index": 0,
      "recipient_index": 0,
      "value": "0",
      "fee": "170171875816825",
      "nonce": 1,
      "tx_type": null,
      "tx_type_evm": 2,
      "gas": 54455,
      "gas_used": 54455,
      "gas_price": "3125000015",
      "effective_gas_price": "3125000015",
      "contract_address": null,
      "status": 1,
      "master_addr": null,
      "input_data": "0xa9059cbb"
    },
    "… (2 more)"
  ],
  "limit": 25,
  "next_cursor": null,
  "has_more": false
}
POST/api/v1/{chain}/addresses/balancesQRL 2.0QRL (PoW)

Current native balances for up to 100 addresses

Current balance, transaction count and first/last activity for up to 100 addresses of this chain in ONE call (Etherscan balancemulti allows 20). Addresses are validated per chain — QRL 2.0: Q + 40 hex (20-byte) or Q + 128 hex (64-byte); QRL legacy: Q + 78 hex — and an address of the other chain is rejected, not translated. An address with no indexed activity returns balance: "0" and found: false. Items come back in request order, duplicates once.

Request body

addressesstring[]required1–100 addresses of THIS chain. qrl2: 'Q' + 40 hex (41 chars) or 'Q' + 128 hex (129 chars, 64-byte addresses); qrl: 'Q' + 78 hex (79 chars). Case-insensitive; duplicates are answered once.

Response 200 · BatchBalancesResponse

chainstringrequired
networkstringrequired
base_unitstringrequired'planck' (qrl2) or 'shor' (qrl).
display_unitstringrequired'Quanta' (qrl2) or 'QRL' (qrl).
indexed_tip_heightinteger | nullNewest fully indexed block when the balances were read (null if unknown).
▸
itemsAddressBalanceItem[]required
addressstringrequiredNormalised address (lowercase hex).
balancestringrequiredBalance in base units (planck on qrl2, shor on qrl).
balance_displaystringrequiredBalance in Quanta (qrl2) / QRL (qrl), exact decimal.
tx_countintegerrequiredTransactions sent + received (qrl2 counts validator withdrawals as received).
first_seenstring | nullISO-8601 UTC of the first activity, null when never seen.
last_seenstring | nullISO-8601 UTC of the latest activity, null when never seen.
foundbooleanrequiredFalse when the address has no indexed activity (balance is then '0').

Request examples

curl -s -X POST "https://quantascan.io/api/v1/qrl2/addresses/balances" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
GET/api/v1/{chain}/addresses/stats/summaryQRL 2.0QRL (PoW)

Get Address Stats

Response 200 · AddressStats

chainstringrequired
networkstringrequired
total_addressesinteger | null
active_24hinteger | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/stats/summary" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "total_addresses": 380,
  "total_address_tx_touches": 2802741
}
GET/api/v1/{chain}/addresses/top/activeQRL 2.0QRL (PoW)

Get Top Addresses

Top addresses on the chain — opinionated leaderboard.

Sort options (via ?sort=): tx_count, balance, total_received, total_sent (default -tx_count). Use ?sort=-field for descending, ?sort=field for ascending. The underlying Gold view only indexes DESC variants today, so an ASC sort still serves the same data set ordered DESC under the hood.

Pagination is offset-based (this is a stable Gold-projection leaderboard, not a live feed).

Query parameters

  • pageoptional
    integermin 1default 1
  • page_sizeoptional
    integermin 1 · max 100default 25
  • qoptional
    string | null

    Optional case-insensitive substring filter on address.

  • with_labelsoptional
    booleandefault false

    When true, include `label` + `label_category` per row.

  • with_delta_30doptional
    booleandefault false

    When true, include `received_30d` + `sent_30d` UInt256 strings (30-day window).

  • positive_onlyoptional
    booleandefault false

    Richlist mode: only addresses with a strictly positive balance (matches the supply 'holders' count). Off by default so tx_count / received sorts still see every address.

  • exclude_sentineloptional
    booleandefault false

    Drop sentinel wallets (coinbase / zero-address) so behaviour leaderboards (most-active / top-senders) aren't dominated by the non-organic block-reward sender.

  • excludeoptional
    string | null

    Comma-separated list of addresses to exclude by exact match (e.g. a known migration/genesis wallet).

  • min_balance_pctoptional
    number | null

    Legacy: keep only addresses whose balance is >= this percentage of total supply. Superseded by `whale_only` (the site-wide whale line is now a fixed 100,000-coin tier, not a % of supply). Still honoured for back-compat when `whale_only` is not set.

  • whale_onlyoptional
    booleandefault false

    Keep only 'whales' — the fixed >= 100,000-coin Whale tier (whale_metrics._FIXED_WHALE_THRESHOLDS, the single site-wide whale definition shared with /whales and the per-wallet Whale badge). Powers the 'large account' leaderboards (newest / dormant whales).

  • sortoptional
    string | nulldefault -tx_count

    Sort spec: '<field>' (asc) or '-<field>' (desc). Allowed: tx_count, balance, total_received, total_sent, total_fees_paid, first_seen, first_seen_asc, last_seen_asc. Default: -tx_count.

Response 200 · AddressTopActiveResponse

▸
addressesAddressSummaryRow[]
addressstringrequired
chainstring | null
networkstring | null
balancestring | null
total_receivedstring | null
total_sentstring | null
total_fees_paidstring | null
tx_countinteger | null
tx_received_countinteger | null
tx_sent_countinteger | null
first_seenstring | null
last_seenstring | null
labelstring | null
label_categorystring | null
received_30dstring | null
sent_30dstring | null
totalinteger | null
sort_bystring | null
pageinteger | null
page_sizeinteger | null
qstring | null
chainstring | null
networkstring | null

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/top/active" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "addresses": [
    {
      "address": "Qc0e6dd0e844e0048dcb0bd3fdcc44a970beca38d",
      "chain": null,
      "network": null,
      "balance": "79275760786657432843151000",
      "total_received": "80357028811941433000000000",
      "total_sent": "1081268000000000000000000",
      "total_fees_paid": "25284000156849000",
      "tx_count": 2798931,
      "tx_received_count": null,
      "tx_sent_count": null,
      "first_seen": "2026-04-01T00:28:36",
      "last_seen": "2026-07-31T12:03:36",
      "label": null,
      "label_category": null,
      "received_30d": null,
      "sent_30d": null
    },
    {
      "address": "Qc2ad78a527f1038df0e54cece9656bf8160bcb14",
      "chain": null,
      "network": null,
      "balance": "899296313485719133444",
      "total_received": "1003401702300999999999",
      "total_sent": "103917646052631578944",
      "total_fees_paid": "187742762649287611",
      "tx_count": 342,
      "tx_received_count": null,
      "tx_sent_count": null,
      "first_seen": "2026-04-16T04:34:36",
      "last_seen": "2026-07-23T03:57:36",
      "label": null,
      "label_category": null,
      "received_30d": null,
      "sent_30d": null
    },
    "… (23 more)"
  ],
  "total": 380,
  "sort_by": "tx_count",
  "page": 1,
  "page_size": 25,
  "q": null,
  "chain": null,
  "network": null
}
GET/api/v1/{chain}/addresses/top/burnersQRL 2.0QRL (PoW)

Get Top Burners

Top gas-burning addresses (qrl2 only).

Returns addresses ordered by total fees paid in the look-back window. Powers a "who's loading the chain" widget and helps spot high-volume bots / contract-callers.

Window: pass ?window=7d (default), ?window=30d, etc.

Query parameters

  • limitoptional
    integermin 1 · max 500default 50
  • windowoptional
    stringdefault 7d

    Look-back window for gas burners ranking. Default 7d.

Response 200 · ItemsList_GenericObject_

itemsGenericObject[]required

Request examples

curl -s "https://quantascan.io/api/v1/qrl2/addresses/top/burners" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [
    {
      "address": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
      "tx_count": 1,
      "total_fees_paid": "442563003097941",
      "total_gas_used": 442563
    },
    {
      "address": "Qf9d8717a12fa6267bc0b6caaeed45aa964ccd45c",
      "tx_count": 1,
      "total_fees_paid": "222160000000000",
      "total_gas_used": 22216
    },
    "… (1 more)"
  ]
}

All endpoints verified against a live indexer. Need the raw spec? See openapi.json or the API overview.