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

NameTypeRequiredDefaultDescription
addressstringyes

Query parameters

NameTypeRequiredDefaultDescription
with_labelsbooleannofalseWhen 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

NameTypeRequiredDefaultDescription
addressstringyes

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}/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

NameTypeRequiredDefaultDescription
addressstringyes

Query parameters

NameTypeRequiredDefaultDescription
windowstring | nullnoOptional 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

NameTypeRequiredDefaultDescription
addressstringyes

Query parameters

NameTypeRequiredDefaultDescription
directionstringnobothsent=outgoing only, received=incoming only, both=either
limitintegermin 1 · max 200no20

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}/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

NameTypeRequiredDefaultDescription
addressstringyes

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 share of total supply (Dolphin: 0.001% – 0.01%). Tiers step 10× from whale (largest) down to shrimp (smallest); the same ladder as the holder-distribution chart.",
      "reason": "Holds 0.0012% of total 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

NameTypeRequiredDefaultDescription
addressstringyes

Query parameters

NameTypeRequiredDefaultDescription
pageintegermin 1no1
page_sizeintegermin 1 · max 100no25

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

NameTypeRequiredDefaultDescription
addressstringyes

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

NameTypeRequiredDefaultDescription
addressstringyes

Query parameters

NameTypeRequiredDefaultDescription
limitintegermin 1 · max 200no25
offsetintegermin 0no0

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), richest first.

Each item: { token_contract, token_name, token_symbol, token_decimals, balance_raw, balance_display, transfer_count, last_activity }. Returns an empty list on qrl (no QRC tokens) or when the address holds none.

Path parameters

NameTypeRequiredDefaultDescription
addressstringyes

Query parameters

NameTypeRequiredDefaultDescription
limitintegermin 1 · max 500no100

Response 200 · ItemsList_GenericObject_

itemsGenericObject[]required

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

Cursor-paginated per-address tx history (live feed — newest first).

Path parameters

NameTypeRequiredDefaultDescription
addressstringyes

Query parameters

NameTypeRequiredDefaultDescription
cursorstring | nullnoOpaque pagination token from a previous response's `next_cursor`. Omit to start at the address's newest transaction.
limitintegermin 1 · max 100no25Items per page (1-100).
directionstringnobothin=received, out=sent, both=either side
tx_typestring | nullnoFilter: tx_type
time_frominteger | nullnoFilter: timestamp >= Unix seconds
time_tointeger | nullnoFilter: timestamp < Unix seconds

Response 200 · PaginatedCursor_TransactionDetail_

itemsTransactionDetail[]required
chainstringrequired
networkstringrequired
tx_hashstringrequired
heightinteger | null
timestampstring | null
from_addrstring | null
to_addrstring | null
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.

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
}
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

NameTypeRequiredDefaultDescription
pageintegermin 1no1
page_sizeintegermin 1 · max 100no25
qstring | nullnoOptional case-insensitive substring filter on address.
with_labelsbooleannofalseWhen true, include `label` + `label_category` per row.
with_delta_30dbooleannofalseWhen true, include `received_30d` + `sent_30d` UInt256 strings (30-day window).
positive_onlybooleannofalseRichlist 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_sentinelbooleannofalseDrop sentinel wallets (coinbase / zero-address) so behaviour leaderboards (most-active / top-senders) aren't dominated by the non-organic block-reward sender.
excludestring | nullnoComma-separated list of addresses to exclude by exact match (e.g. a known migration/genesis wallet).
min_balance_pctnumber | nullnoKeep only addresses whose balance is >= this percentage of total supply — the site-wide 'whale' definition (e.g. 0.1). Resolved to an absolute threshold from current supply. Powers 'large account' leaderboards (newest / dormant whales).
sortstring | nullno-tx_countSort 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

NameTypeRequiredDefaultDescription
limitintegermin 1 · max 500no50
windowstringno7dLook-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.