Browse API groups
Addresses API
/api/v1/{chain}/addresses/{address}QRL 2.0QRL (PoW)Get Address
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| with_labels | boolean | no | 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
chainstringrequirednetworkstringrequiredaddressstringrequiredbalancestring | nullUInt256 as decimal string (smallest unit)total_receivedstring | nullUInt256 as decimal stringtotal_sentstring | nullUInt256 as decimal stringtotal_fees_paidstring | nullUInt256 as decimal stringtx_countinteger | nulltx_received_countinteger | nulltx_sent_countinteger | nullfirst_seenstring | nulllast_seenstring | nullmaster_addressstring | nullQRL only --master that registered this slave, if any.wallet_classstring | nullwallet_class_methodstring | nullwallet_class_reasonstring | nullis_deployerboolean | nullwithdrawal_countinteger | nullwithdrawal_totalstring | nullinternal_tx_countinteger | nullRequest 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
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Response 200 · GenericListResponse
itemsobject[]totalinteger | nulllimitinteger | nulloffsetinteger | nullpageinteger | nullhas_nextboolean | nullhas_prevboolean | nullnext_cursorstring | nullRequest 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
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| window | string | null | no | — | 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[]requiredRequest 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)"
]
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| direction | string | no | both | sent=outgoing only, received=incoming only, both=either |
| limit | integermin 1 · max 200 | no | 20 |
Response 200 · GenericListResponse
itemsobject[]totalinteger | nulllimitinteger | nulloffsetinteger | nullpageinteger | nullhas_nextboolean | nullhas_prevboolean | nullnext_cursorstring | nullRequest 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"
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
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
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| page | integermin 1 | no | 1 | |
| page_size | integermin 1 · max 100 | no | 25 |
Response 200 · AddressInternalTxPaginated
▸itemsAddressInternalTxItem[]
itemsAddressInternalTxItem[]heightintegerrequiredblock_hashstringrequiredtx_hashstringrequiredtrace_addressstringrequiredcall_typestringrequiredfrom_addrstringrequiredto_addrstringrequiredvaluestringrequiredtimestampstringrequireddirectionstringrequiredtotalinteger | nullpageinteger | nullpage_sizeinteger | nulltotal_pagesinteger | nullRequest 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
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
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"
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | integermin 1 · max 200 | no | 25 | |
| offset | integermin 0 | no | 0 |
Response 200 · GenericListResponse
itemsobject[]totalinteger | nulllimitinteger | nulloffsetinteger | nullpageinteger | nullhas_nextboolean | nullhas_prevboolean | nullnext_cursorstring | nullRequest 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"
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | integermin 1 · max 500 | no | 100 |
Response 200 · ItemsList_GenericObject_
itemsGenericObject[]requiredRequest 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"
}
]
}/api/v1/{chain}/addresses/{address}/transactionsQRL 2.0QRL (PoW)Get Address Transactions
Cursor-paginated per-address tx history (live feed — newest first).
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| cursor | string | null | no | — | Opaque pagination token from a previous response's `next_cursor`. Omit to start at the address's newest transaction. |
| limit | integermin 1 · max 100 | no | 25 | Items per page (1-100). |
| direction | string | no | both | in=received, out=sent, both=either side |
| tx_type | string | null | no | — | Filter: tx_type |
| time_from | integer | null | no | — | Filter: timestamp >= Unix seconds |
| time_to | integer | null | no | — | Filter: timestamp < Unix seconds |
Response 200 · PaginatedCursor_TransactionDetail_
▸itemsTransactionDetail[]required
itemsTransactionDetail[]requiredchainstringrequirednetworkstringrequiredtx_hashstringrequiredheightinteger | nulltimestampstring | nullfrom_addrstring | nullto_addrstring | nulllimitintegerrequiredMaximum number of items in this pagenext_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
}/api/v1/{chain}/addresses/stats/summaryQRL 2.0QRL (PoW)Get Address Stats
Response 200 · AddressStats
chainstringrequirednetworkstringrequiredtotal_addressesinteger | nullactive_24hinteger | nullRequest 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
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| page | integermin 1 | no | 1 | |
| page_size | integermin 1 · max 100 | no | 25 | |
| q | string | null | no | — | Optional case-insensitive substring filter on address. |
| with_labels | boolean | no | false | When true, include `label` + `label_category` per row. |
| with_delta_30d | boolean | no | false | When true, include `received_30d` + `sent_30d` UInt256 strings (30-day window). |
| positive_only | boolean | no | 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_sentinel | boolean | no | false | Drop sentinel wallets (coinbase / zero-address) so behaviour leaderboards (most-active / top-senders) aren't dominated by the non-organic block-reward sender. |
| exclude | string | null | no | — | Comma-separated list of addresses to exclude by exact match (e.g. a known migration/genesis wallet). |
| min_balance_pct | number | null | no | — | Keep 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). |
| sort | string | null | no | -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[]
addressesAddressSummaryRow[]addressstringrequiredchainstring | nullnetworkstring | nullbalancestring | nulltotal_receivedstring | nulltotal_sentstring | nulltotal_fees_paidstring | nulltx_countinteger | nulltx_received_countinteger | nulltx_sent_countinteger | nullfirst_seenstring | nulllast_seenstring | nulllabelstring | nulllabel_categorystring | nullreceived_30dstring | nullsent_30dstring | nulltotalinteger | nullsort_bystring | nullpageinteger | nullpage_sizeinteger | nullqstring | nullchainstring | nullnetworkstring | nullRequest 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
}/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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | integermin 1 · max 500 | no | 50 | |
| window | string | no | 7d | Look-back window for gas burners ranking. Default 7d. |
Response 200 · ItemsList_GenericObject_
itemsGenericObject[]requiredRequest 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.