Skip to content
QuantascanAlpha
Browse API groups

API Documentation

Free public REST API for QRL and QRL 2.0 blockchain data — 143 documented endpoints, every one verified against a live indexer.

Getting started

The base URL is https://quantascan.io/api/v1. Every request needs a personal API key — send it as an Authorization: Bearer qs_... header (create one from your account page; sign-up is free). Every response is JSON.

# Create a free account, generate a personal API key, then:
curl -s -H "Authorization: Bearer qs_your_key_here" \
  "https://quantascan.io/api/v1/qrl2/blocks/latest"

Running the stack locally? The same paths are served on http://localhost:3000/api/v1 (frontend proxy) or directly on the backend at http://localhost:8000/api/v1.

Endpoint reference

Blocks6

Block listings, lookups by height or hash, and block-level statistics for both chains.

Transactions & Mempool8

Transaction listings, lookups, whale transfers, revert reasons and the QRL 2.0 pending-transaction pool.

Addresses13

Address summaries, balances, transaction history and counterparty analysis.

Wallets8

Wallet-level aggregates: portfolio views, activity and holdings over time.

Tokens & Token Transfers9

QRC-20/721/1155 token metadata, holders, distribution and decoded transfer events (QRL 2.0 EVM).

NFTs4

NFT collections, items and ownership on QRL 2.0.

Smart Contracts14

Smart-contract metadata, source verification and read-only contract calls (QRL 2.0 EVM).

Validators & Withdrawals12

Validator registry, performance and EIP-4895 withdrawals on the QRL 2.0 proof-of-stake chain.

Beacon Chain9

Consensus-layer data: beacon blocks, slots, epochs and slashings (QRL 2.0).

Mining6

Proof-of-Work mining on the QRL legacy chain: block-reward emission, difficulty, hashrate, and the top miners and pools.

Messages2

On-chain messages anchored with the QRL legacy message transaction subtype: a browsable feed with text/binary payloads, plus headline stats.

Analytics47

Network-wide time-series and aggregates: activity, supply, fees, gas, whales and cross-chain timelines.

Market & Richlist3

Market price data and the cross-chain richlist of largest holders.

Topic Trends2

External attention signals over time: Google Trends relative search interest and Reddit discussion volume for QRL and quantum-computing topics. Chain-agnostic; relative, not absolute.

Authentication

  • An API key is required. Every endpoint in this reference takes an Authorization: Bearer qs_... header with a personal API key, created from your account page after signing in. A free account is all you need — the same key works across every documented endpoint.
  • Managing keys and account data (creating or revoking keys, watchlists, alerts) happens in the signed-in account UI, not through this public API — those endpoints require an active browser session and are intentionally left out of this reference.
  • Label submissions are moderated: community labels enter a review queue and are IP-rate-limited to 5 submissions per hour.

Rate limits

The free tier allows 1,000 calls per UTC day (shared across all of your keys) plus a burst cap of 30 requests per minute per key, with a global safety limit of 300 requests per minute per IP (defaults, not a contract — they may change). Exceeding any limit returns 429 with a Retry-After header, so clients can pace themselves. A free account can hold up to 3 active keys. For sustained high-volume use, cache on your side — most aggregates only change once per day.

Conventions

  • Chain selector: chain-specific endpoints live under /api/v1/qrl2/... (QRL 2.0, PoS EVM) or /api/v1/qrl/... (QRL legacy, PoW). Cross-chain endpoints (analytics, search, price) live at /api/v1/... with no chain segment; a few of them take ?chain=qrl|qrl2 as an optional query param. QRL2-only resources (validators, beacon, withdrawals, mempool, contracts, fees, nft, token-transfers) live only under /api/v1/qrl2/....
  • Pagination: ?page=1&page_size=25 for offset, or ?cursor=... for cursor (deeper, O(log N)). Cursors come back as next_cursor.
  • Big numbers (value, fee, supply) are returned as decimal strings to preserve UInt256 precision. Parse with BigInt(...) in JavaScript.
  • Error envelope: every 4xx/5xx returns {"error": {"code", "message", "request_id"}}. Quote the request_id when reporting bugs.

Machine-readable spec

The reference on this site is generated from the live OpenAPI 3.1 spec. For try-it-out consoles or client codegen:

FAQ about the API

Common questions about this page
Is the Quantascan API free to use?
Yes — it's free to use today. It does require a free account and a personal API key: every request is authenticated with an Authorization: Bearer qs_... header, and is rate-limited to prevent abuse. The free tier includes a 1,000 calls/day allowance plus usage metering.
What are the rate limits?
The free tier allows 1,000 calls per UTC day (shared across all of your keys) plus a burst cap of 30 requests per minute per key. On top of that there is a global safety limit of 300 requests per minute per IP. All limits are defaults, not a contract, and may change. When you exceed any limit you get HTTP 429 with a Retry-After header so clients can pace themselves. Each free account can hold up to 3 active keys.
How do I query QRL (PoW) vs QRL 2.0 data?
Chain-specific endpoints carry the chain in the path: /api/v1/qrl2/... for QRL 2.0 (proof-of-stake, EVM) and /api/v1/qrl/... for the original QRL chain (proof-of-work). Cross-chain endpoints such as analytics, search and the richlist live at /api/v1/... without a chain segment; some accept an optional ?chain= query parameter.
How do I get historical time-series data?
The Analytics group exposes daily time-series (transactions, supply, fees, active addresses and more) going back to the genesis of each chain. Most accept a ?days= parameter; cross-chain timelines stitch the original Proof-of-Work chain and QRL 2.0 into one continuous series.
Is there a WebSocket API?
Yes — /api/v1/ws/live pushes new-block events per chain. It is a notification stream: subscribe for wake-ups, then fetch details over REST. The WebSocket endpoint is not part of the OpenAPI spec.
Are amounts returned as numbers?
Large amounts (values, fees, supply) are returned as decimal strings to preserve full integer precision beyond JavaScript's Number.MAX_SAFE_INTEGER. Parse them with BigInt(...) in JavaScript or int(...) in Python.