Browse API groups
Smart Contracts API
/api/v1/qrl2/contracts/QRL 2.0List Contracts
Paginated QRL2 contract list with verification + token-metadata + 24h event-count joined in.
Wave 6: ?sort_by= → ?sort= (D5). The four sort keys (newest,
oldest, active, verified) already encode their preferred direction
at the repo layer; the - prefix is accepted for compatibility but
semantically redundant.
Status filter:
- all (default) — every indexed contract
- verified — match_grade != 'unverified'
- unverified — no verification submitted (yet)
- token — implements QRC-20 / QRC-721 / QRC-1155 interface
- recent — deployed in last 24h
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| page | integermin 1 | no | 1 | |
| page_size | integermin 1 · max 100 | no | 20 | |
| status | string | null | no | — | all (default) | verified | unverified | token | recent (24h deploys). Filters layer on top of pagination. |
| sort | string | null | no | newest | Sort spec. Allowed: newest (default), oldest, active, verified, txns. `-` prefix is accepted for compatibility but each key already encodes its preferred direction. |
Response 200 · ContractsPaginated
▸itemsContractRow[]
itemsContractRow[]addressstringrequireddeployerstring | nulldeployment_txstring | nulldeployment_blockinteger | nullbytecode_hashstring | nullcreated_atstring | nullis_verifiedboolean | nullcompilerstring | nullcompiler_versionstring | nulloptimization_enabledinteger | nulloptimization_runsinteger | nulllicensestring | nullmatch_gradestring | nullverified_atstring | nullmain_contractstring | nulltoken_namestring | nulltoken_symbolstring | nulltoken_decimalsinteger | nullis_qrc20integer | nullis_qrc721integer | nullis_qrc1155integer | nulltx_countinteger | nullbalance_planckstring | nulllast_seenstring | nullevents_24hinteger | nullsimilar_countinteger | nulltotalinteger | nulllimitinteger | nulloffsetinteger | nullnetworkstring | nullRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"items": [
{
"address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
"deployer": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
"deployment_tx": "0x7757ba180d74a02a33350b143bca0c8ee5a55c912ce8e359cfc24646baf85e2c",
"deployment_block": 173934,
"bytecode_hash": "f2d7deeadb426273759c474ff3eb6c5c3df70022d74389497c68e29fd9b0947d",
"created_at": "2026-07-30T19:22:36",
"is_verified": 1,
"compiler": "hypc",
"compiler_version": "0.0.2+commit.3e18e55d.Emscripten.clang",
"optimization_enabled": 1,
"optimization_runs": 200,
"license": "",
"match_grade": "full",
"verified_at": "2026-07-30T19:29:24.952000",
"main_contract": "",
"token_name": "SpikeToken",
"token_symbol": "SPK",
"token_decimals": 18,
"is_qrc20": 1,
"is_qrc721": 0,
"is_qrc1155": 0,
"tx_count": 0,
"balance_planck": "",
"last_seen": "1970-01-01T00:00:00",
"events_24h": 1,
"similar_count": 0
},
{
"address": "Q8c6cac02c31fefb6d34be3d66a444206e000f67f",
"deployer": "Qc2ad78a527f1038df0e54cece9656bf8160bcb14",
"deployment_tx": "0x57a2134645cfae06e998e18270e60d6537ac9bf788093d160d6d22cb4b6cef79",
"deployment_block": 155607,
"bytecode_hash": "cf5d2d6570b7ff6cffc97c0d8272480cf9a882b0c84b47bce4e2f372ba87f348",
"created_at": "2026-07-18T01:55:36",
"is_verified": 0,
"compiler": "",
"compiler_version": "",
"optimization_enabled": 0,
"optimization_runs": 0,
"license": "",
"match_grade": "unverified",
"verified_at": "1970-01-01T00:00:00",
"main_contract": "",
"token_name": null,
"token_symbol": null,
"token_decimals": null,
"is_qrc20": 0,
"is_qrc721": 0,
"is_qrc1155": 0,
"tx_count": 176,
"balance_planck": "400000000000000000",
"last_seen": "2026-07-23T03:19:36",
"events_24h": 0,
"similar_count": 0
},
"… (18 more)"
],
"total": 125,
"limit": 20,
"offset": 0,
"network": "testnet"
}/api/v1/qrl2/contracts/{address}QRL 2.0Get Contract
Single contract detail. Returns deployment metadata + (if available) token metadata for QRC-20/721/1155 contracts.
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Response 200 · ContractDetail
Variable shape — see the example response below.
Request examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
"deployer": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
"deployment_tx": "0x7757ba180d74a02a33350b143bca0c8ee5a55c912ce8e359cfc24646baf85e2c",
"deployment_block": 173934,
"bytecode_hash": "f2d7deeadb426273759c474ff3eb6c5c3df70022d74389497c68e29fd9b0947d",
"created_at": "2026-07-30T19:22:36",
"deployment_input_size": 3540,
"is_verified": 1,
"match_grade": "full",
"verified_at": "2026-07-30T19:29:24.952000",
"compiler": "hypc",
"compiler_version": "0.0.2+commit.3e18e55d.Emscripten.clang",
"token_name": "SpikeToken",
"token_symbol": "SPK",
"token_decimals": 18,
"is_qrc20": 1,
"is_qrc721": 0,
"is_qrc1155": 0,
"metadata_status": "ok",
"tx_count": 0,
"balance_planck": "",
"last_seen": "1970-01-01T00:00:00",
"events_24h": 1,
"similar_count": 0
}/api/v1/qrl2/contracts/{address}/abiQRL 2.0ABI-only (lighter than /source)
Just the ABI + verification provenance — for tooling that doesn't
need the source body (wallet eth_call builders, type-codegen, etc.).
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Response 200 · ContractAbi
addressstringrequiredchainstringrequirednetworkstringrequiredverified_atstringrequiredcompilerstringrequiredcompiler_versionstringrequiredabiobject[]requiredRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>/abi" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
"chain": "qrl2",
"network": "testnet",
"verified_at": "2026-07-30T19:29:24.952000",
"compiler": "hypc",
"compiler_version": "0.0.2+commit.3e18e55d.Emscripten.clang",
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "initialSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
"… (1 more)"
],
"name": "Approval",
"type": "event"
},
"… (10 more)"
]
}/api/v1/qrl2/contracts/{address}/badgeQRL 2.0Shareable SVG badge for GitHub READMEs ('Verify on Quantascan')
Returns an SVG badge — meant to be embedded in a token-issuer's GitHub README. Renders 'source verified' (cyan/blue) or 'unverified' (gray) based on the most recent verification row.
Cached publicly for an hour; clients can append a query-string nonce to bust the cache when a freshly-verified contract should show the new state immediately.
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| style | string | no | flat | Badge layout. |
Response 200 · object
Variable shape — see the example response below.
Request examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>/badge" \
-H "Authorization: Bearer qs_YOUR_API_KEY"/api/v1/qrl2/contracts/{address}/callQRL 2.0Proxy qrl_call for a verified view/pure function
Read-only contract call. Requires that the contract has been
source-verified (so we have an ABI to gate against), and that the
named function is view or pure. State-changing functions are
refused — the Write tab handles those.
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Request body
function_namestringrequiredABI function name; must exist and be view/pure.datastringrequiredHex-encoded ABI call data (with 0x prefix).blockstring | nullBlock tag: 'latest', 'earliest', 'pending', or hex height.Response 200 · ContractCallResult
function_namestringrequiredfunction_signaturestringrequiredSolidity-style signature for the called function, e.g. 'balanceOf(address)'.rawstringrequiredHex-encoded raw `qrl_call` return value (with 0x prefix).blockstringrequiredRequest examples
curl -s -X POST "https://quantascan.io/api/v1/qrl2/contracts/<address>/call" \
-H "Authorization: Bearer qs_YOUR_API_KEY"/api/v1/qrl2/contracts/{address}/clonesQRL 2.0Other contracts with the same on-chain bytecode_hash
All addresses (besides this one) sharing the same bytecode_hash.
Use-case: notice that 20 other contracts run the same bytecode, only
one is verified — auto-suggest verification for the rest (admin-only).
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| cursor | string | null | no | — | Pass `next_cursor` from a previous page. |
| limit | integermin 1 · max 100 | no | 20 |
Response 200 · ContractClones
bytecode_hashstringrequired▸itemsContractClone[]
itemsContractClone[]addressstringrequiredchainstringrequirednetworkstringrequiredbytecode_hashstringrequireddeployerstringrequireddeployment_blockintegerrequiredis_verifiedbooleanrequirednext_cursorstring | nulltotalinteger | nullRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>/clones" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"bytecode_hash": "f2d7deeadb426273759c474ff3eb6c5c3df70022d74389497c68e29fd9b0947d",
"items": [],
"next_cursor": null
}/api/v1/qrl2/contracts/{address}/logsQRL 2.0Get Contract Logs
Raw events emitted BY this contract. Decoded transfer events are available via /tokens/{address}/transfers — this endpoint is the "show me everything, decoded or not" escape hatch.
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 | 20 |
Response 200 · ContractLogsList
itemsobject[]limitinteger | nulloffsetinteger | nulladdressstring | nullRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>/logs" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"items": [
{
"block_height": 173934,
"tx_hash": "0x7757ba180d74a02a33350b143bca0c8ee5a55c912ce8e359cfc24646baf85e2c",
"log_index": 0,
"topic0": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"topic1": "0x0000000000000000000000000000000000000000000000000000000000000000",
"topic2": "0x000000000000000000000000edc109a7e31a982023b91f8e2fb46c34ca524f7d",
"topic3": null,
"data": "0x00000000000000000000000000000000000000000000003635c9adc5dea00000",
"timestamp": "2026-07-30T19:22:36",
"removed": 0
}
],
"limit": 20,
"offset": 0,
"address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0"
}/api/v1/qrl2/contracts/{address}/sourceQRL 2.0Verified source + ABI + metadata for a contract
The full verified payload — source files, ABI, compiler settings, match grade, optional metadata. 404 if the address has never been verified.
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Response 200 · ContractSource
addressstringrequiredchainstringrequirednetworkstringrequiredverified_atstringrequiredcompilerstringrequiredcompiler_versionstringrequiredoptimization_enabledbooleanrequiredoptimization_runsintegerrequiredevm_versionstring | nulllicensestring | nullmain_contractstringrequiredsource_filesobjectrequiredpath → source.abiobject[]requiredconstructor_args_hexstring | nulllibrariesobject | nullmetadataobject | nullParsed metadata.json from compiler output.metadata_ipfs_hashstring | nullmatch_gradestringrequiredunverified | partial | fullcreation_bytecode_sha256string | nullruntime_bytecode_sha256string | nullverifier_versionstring | nullRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>/source" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
"chain": "qrl2",
"network": "testnet",
"verified_at": "2026-07-30T19:29:24.952000",
"compiler": "hypc",
"compiler_version": "0.0.2+commit.3e18e55d.Emscripten.clang",
"optimization_enabled": true,
"optimization_runs": 200,
"evm_version": null,
"license": null,
"main_contract": "",
"source_files": {
"SampleQrc20.hy": "// SPDX-License-Identifier: MIT\npragma hyperion ^0.0.2;\n\n/// @title Minimal QRC-20 reference fixture for verifier tests.\n/// @notice Implements transfer/approve/balanceOf/totalSupply/transferFrom.\n///…"
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "initialSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
"… (1 more)"
],
"name": "Approval",
"type": "event"
},
"… (10 more)"
],
"constructor_args_hex": null,
"libraries": null,
"metadata": {
"compiler": {
"version": "0.0.2+commit.3e18e55d"
},
"language": "Hyperion",
"output": {
"abi": [
{
"inputs": [
"…"
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
"…",
"…",
"… (1 more)"
],
"name": "Approval",
"type": "event"
},
"… (10 more)"
],
"devdoc": {
"kind": "dev",
"methods": {},
"title": "Minimal QRC-20 reference fixture for verifier tests.",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"notice": "Implements transfer/approve/balanceOf/totalSupply/transferFrom. Used by the Phase 0 spike and Phase 1 unit-tests; not for prod use.",
"version": 1
}
},
"settings": {
"compilationTarget": {
"SampleQrc20.hy": "SampleQrc20"
},
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": [],
"zvmVersion": "shanghai"
},
"sources": {
"SampleQrc20.hy": {
"keccak256": "0xdb8444ef5b33dd5a1243ba192d1c3680df73063a2923b116395c52a8d25e3d16",
"license": "MIT",
"urls": [
"bzz-raw://83e6c5b9c7434ceca1024be38b5f0a03b47ddf29df21353eaa940c1fa9ce5d24",
"dweb:/ipfs/Qmb3qHj28Dk4bJwhsTFSPYEi7fNvpvSztsxG8ESBZAu8H8"
]
}
},
"version": 1
},
"metadata_ipfs_hash": "43c9de5937494e5ae648a843db65ba593cf74290cdecbd72d10c1aebed2b9b62",
"match_grade": "full",
"creation_bytecode_sha256": "b'28c7dd2d2da248c69b02fa526b4d9a29197f2f2fd5ad879a4f2f87640e0115ba'",
"runtime_bytecode_sha256": "b'3dcf463b40c1ef0a8edfae6ec66c03cd374e267cdddcbe2e9deed97764df7766'",
"verifier_version": "0.1.0"
}/api/v1/qrl2/contracts/{address}/verifyQRL 2.0Submit Hyperion source for verification
Queue a verification job. Returns 202 with job_id you can poll at
GET /verify/{job_id}. Live progress is also pushed via the WS channel
verify:{address}:{job_id} (subscribe at /api/v1/ws/live).
Per-IP rate limit: 5/min dedicated limit on top of the global one (a submit triggers a sandboxed compile job, not a cheap read). Per-address single-flight: a second submit while one is in-flight returns 409 with the existing job_id so callers poll the live job instead of duplicating work.
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Request body
languagestringAlways 'Hyperion'.compiler_versionstringrequiredhypc version string; must be in HYPC_ALLOWED_VERSIONS.main_contractstringrequired'<file>:<ContractName>' selector for the contract being verified.sourcesobjectrequiredMap of file-path → source. Max 25 entries, total 4 MiB.▸settingsVerifySettingsStandard-JSON `settings` subset. evmVersion is intentionally absent
because hypc 0.0.2 rejects it (probed 2026-05-31 --see
docs/verifier/compiler-config.md).
settingsVerifySettingsStandard-JSON `settings` subset. evmVersion is intentionally absent
because hypc 0.0.2 rejects it (probed 2026-05-31 --see
docs/verifier/compiler-config.md).▸optimizerVerifyOptimizer
optimizerVerifyOptimizerenabledbooleanrunsintegerlibrariesobject | nullconstructor_argsstring | nullHex-encoded ABI bytes (without 0x prefix is OK).licensestring | nullSPDX identifier (MIT, GPL-3.0-only, …). Free-text accepted; UI shows verbatim.Response 202 · VerifyJobCreated
job_idstringrequiredstatusstringrequiredAlways 'pending' on creation.ws_channelstringrequiredSubscribe to this WS channel for live progress (verify:{addr}:{jobId}).Request examples
curl -s -X POST "https://quantascan.io/api/v1/qrl2/contracts/<address>/verify" \
-H "Authorization: Bearer qs_YOUR_API_KEY"/api/v1/qrl2/contracts/{address}/verify-hintQRL 2.0Hints to pre-fill the verify form (compiler version, metadata hash)
Fetches on-chain runtime bytecode via qrl_getCode and inspects
the CBOR-tail. Returns a hint payload the verify-form uses to pre-fill
compiler-version, surface the embedded metadata-IPFS hash, and warn
when an address has no deployed code.
Cached briefly on the client side (revalidate=60 on the verify-page).
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — |
Response 200 · any
Variable shape — see the example response below.
Request examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>/verify-hint" \
-H "Authorization: Bearer qs_YOUR_API_KEY"/api/v1/qrl2/contracts/{address}/verify/{job_id}QRL 2.0Poll verification status
Latest audit-log + (if completed) the match-grade. Polling-friendly: the response is cheap to compute. Prefer WebSocket subscription for live progress; this endpoint is the fallback for clients without WS.
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| address | string | yes | — | |
| job_id | string | yes | — |
Response 200 · VerifyJobStatus
job_idstringrequiredaddressstringrequiredchainstring | nullnetworkstring | nullstatusstringrequiredpending | completed | failed | rejectedprogressstring | nullStage hint: 'queued', 'compiling', 'matching', 'writing'.match_gradestring | nullunverified | partial | fullcompiler_versionstring | nullverified_atstring | null▸errorsVerifyJobError[]
errorsVerifyJobError[]codestringrequiredWhitelisted error code from verifier (COMPILE_ERROR, TIMEOUT, …).detailstring | null▸diffVerifyJobDiff | null
diffVerifyJobDiff | nullfirst_divergence_offsetintegerrequiredexpected_hexstringrequiredWindow of expected bytes (≤64 bytes hex).actual_hexstringrequiredWindow of actual on-chain bytes (≤64 bytes hex).Request examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/<address>/verify/<job_id>" \
-H "Authorization: Bearer qs_YOUR_API_KEY"/api/v1/qrl2/contracts/by-deployer/{deployer}QRL 2.0List By Deployer
All contracts ever deployed by a given QRL2 EOA. Useful for proving authorship: "wallet X deployed these N tokens".
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| deployer | string | yes | — |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| page | integermin 1 | no | 1 | |
| page_size | integermin 1 · max 100 | no | 50 |
Response 200 · ContractsPaginated
▸itemsContractRow[]
itemsContractRow[]addressstringrequireddeployerstring | nulldeployment_txstring | nulldeployment_blockinteger | nullbytecode_hashstring | nullcreated_atstring | nullis_verifiedboolean | nullcompilerstring | nullcompiler_versionstring | nulloptimization_enabledinteger | nulloptimization_runsinteger | nulllicensestring | nullmatch_gradestring | nullverified_atstring | nullmain_contractstring | nulltoken_namestring | nulltoken_symbolstring | nulltoken_decimalsinteger | nullis_qrc20integer | nullis_qrc721integer | nullis_qrc1155integer | nulltx_countinteger | nullbalance_planckstring | nulllast_seenstring | nullevents_24hinteger | nullsimilar_countinteger | nulltotalinteger | nulllimitinteger | nulloffsetinteger | nullnetworkstring | nullRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/by-deployer/<deployer>" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"items": [
{
"address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
"deployment_tx": "0x7757ba180d74a02a33350b143bca0c8ee5a55c912ce8e359cfc24646baf85e2c",
"deployment_block": 173934,
"bytecode_hash": "f2d7deeadb426273759c474ff3eb6c5c3df70022d74389497c68e29fd9b0947d",
"created_at": "2026-07-30T19:22:36"
}
],
"total": 1,
"limit": 50,
"offset": 0,
"deployer": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d"
}/api/v1/qrl2/contracts/recentQRL 2.0List Recent Contracts
Recently-deployed contracts with inline token-metadata.
Same shape as /contracts/ but filtered to deployments within the
look-back window AND joined with token-metadata so the frontend can
show "is this a QRC-20 / -721 / -1155 launch?" without a second call.
Wave 6: ?hours=N → ?window=24h (D4 duration).
Powers a "New contracts (24h)" homepage widget.
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| page | integermin 1 | no | 1 | |
| page_size | integermin 1 · max 100 | no | 20 | |
| window | string | no | 24h | Look-back window for the /contracts/recent feed. Default 24h. Examples: 1h, 24h, 7d, 30d. |
Response 200 · ContractsPaginated
▸itemsContractRow[]
itemsContractRow[]addressstringrequireddeployerstring | nulldeployment_txstring | nulldeployment_blockinteger | nullbytecode_hashstring | nullcreated_atstring | nullis_verifiedboolean | nullcompilerstring | nullcompiler_versionstring | nulloptimization_enabledinteger | nulloptimization_runsinteger | nulllicensestring | nullmatch_gradestring | nullverified_atstring | nullmain_contractstring | nulltoken_namestring | nulltoken_symbolstring | nulltoken_decimalsinteger | nullis_qrc20integer | nullis_qrc721integer | nullis_qrc1155integer | nulltx_countinteger | nullbalance_planckstring | nulllast_seenstring | nullevents_24hinteger | nullsimilar_countinteger | nulltotalinteger | nulllimitinteger | nulloffsetinteger | nullnetworkstring | nullRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/recent" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"items": [
{
"address": "Q8fb8928dd86629fc6ea9ca41975dbb28a511d2d0",
"deployer": "Qedc109a7e31a982023b91f8e2fb46c34ca524f7d",
"deployment_tx": "0x7757ba180d74a02a33350b143bca0c8ee5a55c912ce8e359cfc24646baf85e2c",
"deployment_block": 173934,
"created_at": "2026-07-30T19:22:36",
"token_name": "SpikeToken",
"token_symbol": "SPK",
"token_decimals": 18,
"is_qrc20": 1,
"is_qrc721": 0,
"is_qrc1155": 0
}
],
"total": 1,
"limit": 20,
"offset": 0,
"network": "testnet",
"window_hours": 24
}/api/v1/qrl2/contracts/stats/summaryQRL 2.0Contracts Summary
KPI bundle for the /smart-contracts hub hero strip — 4 counts: total_deployed, deployed_24h, active_24h, token_contracts.
Server-side cached (repo @cached(ttl=60)) so N concurrent hero loads
collapse to one ClickHouse query per minute; the response also carries a
matching Cache-Control so browser/CDN avoid re-fetching within the window.
Response 200 · ContractsSummary
networkstring | nulltotal_deployedintegerdeployed_24hintegeractive_24hintegertoken_contractsintegerRequest examples
curl -s "https://quantascan.io/api/v1/qrl2/contracts/stats/summary" \
-H "Authorization: Bearer qs_YOUR_API_KEY"Example response
{
"network": "testnet",
"total_deployed": 125,
"deployed_24h": 1,
"active_24h": 1,
"token_contracts": 59
}All endpoints verified against a live indexer. Need the raw spec? See openapi.json or the API overview.