Introduction
With Subscan API, we provide a simple way to access the chain data of more than 10 substrate-based networks.
If you have any question or suggestion, please do not hesitate to contact our API support via api@subscan.io.
The documentation was created with Slate and hosted on GitHub.
API Keys
Get a free API key that includes higher quotas or start your trial with other available plans at https://pro.subscan.io/.
Service Status
The service status of Subscan API can be found on our status page.
Service Level Agreement
Subscan provides our customers the Service Level Agreement (SLA), which includes Monthly Uptime Percentage commitment for multiple networks. Please contact us (api@subscan.io) for more information.
API Endpoints
Please notice before you get started:
The following endpoints list is maintained mannually and it might be outdated. In fact, every individual network supported on Subscan.io will have available API endpoint as well. The endpoint naming convention is
https://$NETWORK_NAME.api.subscan.io
where the$NETWORK_NAME
is the same as the subdomain of the corresponding network on Subscan.io.All the endpoints are forced to HTTPS only. Please make sure you use
https://
with the API hosts.SLA covered endpoints are shown on our service status page. Several networks are excluded from our SLA for now. It might because: 1) the network is a testnet, not as stable as a mainnet, or could be reset in a relatively higher chance; 2) the chain RPC that Subscan relied on is maintained by others (e.g. the chain developers). We may update the covered list in the future. Please let us know if you want to have other networks included in the SLA.
The Status marked as live is production network, and it will be maintained continuously. The Status marked as test is test network, which may be unstable. Some new features of Subscan will be updated on testnet first.
Network | API Host | Status |
---|---|---|
Polkadot | polkadot.api.subscan.io |
live |
Kusama | kusama.api.subscan.io |
live |
Darwinia2 | darwinia.api.subscan.io |
live |
Acala | acala.api.subscan.io |
live |
Acala Mandala | acala-testnet.api.subscan.io |
test |
Alephzero | alephzero.api.subscan.io |
live |
Altair | altair.api.subscan.io |
live |
Astar | astar.api.subscan.io |
live |
Bajun | bajun.api.subscan.io |
live |
Basilisk | basilisk.api.subscan.io |
live |
Bifrost | bifrost.api.subscan.io |
live |
Bifrost Kusama | bifrost-kusama.api.subscan.io |
live |
Bifrost Testnet | bifrost-testnet.api.subscan.io |
live |
Calamari | calamari.api.subscan.io |
live |
Centrifuge | centrifuge.api.subscan.io |
live |
Centrifuge Solo | centrifuge-standalone-history.api.subscan.io |
live |
ChainX | chainx.api.subscan.io |
live |
Clover | clover.api.subscan.io |
live |
Clover Parachain | clv.api.subscan.io |
live |
Clover Testnet | clover-testnet.api.subscan.io |
test |
Composable | composable.api.subscan.io |
live |
Crab2 | crab.api.subscan.io |
live |
Crust | crust.api.subscan.io |
live |
Crust Maxwell | maxwell.api.subscan.io |
test |
Crust Shadow | shadow.api.subscan.io |
live |
DeepBrain Chain | dbc.api.subscan.io |
live |
Dock | dock.api.subscan.io |
live |
Dolphin | dolphin.api.subscan.io |
test |
Edgeware | edgeware.api.subscan.io |
live |
Efinity | efinity.api.subscan.io |
live |
Encointer | encointer.api.subscan.io |
live |
Equilibrium | equilibrium.api.subscan.io |
live |
Genshiro | genshiro.api.subscan.io |
live |
Humanode | humanode.api.subscan.io |
live |
HydraDX | hydradx.api.subscan.io |
live |
IntegriTEE | integritee.api.subscan.io |
live |
Interlay | interlay.api.subscan.io |
live |
Karura | karura.api.subscan.io |
live |
Kintsugi | kintsugi.api.subscan.io |
live |
Khala | khala.api.subscan.io |
live |
KILT Peregrine | kilt-testnet.api.subscan.io |
test |
KILT Spiritnet | spiritnet.api.subscan.io |
live |
Litmus | litmus.api.subscan.io |
live |
Mangata | mangatax.api.subscan.io |
live |
Moonbase | moonbase.api.subscan.io |
test |
Moonbeam | moonbeam.api.subscan.io |
live |
Moonriver | moonriver.api.subscan.io |
live |
Nodle | nodle.api.subscan.io |
live |
Origintrail | origintrail.api.subscan.io |
live |
Origintrail Testnet | origintrail-testnet.api.subscan.io |
test |
Pangolin | pangolin.api.subscan.io |
test |
Pangolin Parachain | pangolin-parachain.api.subscan.io |
test |
Pangoro | pangoro.api.subscan.io |
test |
Parallel | parallel.api.subscan.io |
live |
Parallel Heiko | parallel-heiko.api.subscan.io |
live |
Phala | phala.api.subscan.io |
live |
Picasso | picasso.api.subscan.io |
live |
Picasso Rococo | picasso-rococo.api.subscan.io |
test |
Pioneer | pioneer.api.subscan.io |
live |
Polkadex | polkadex.api.subscan.io |
live |
Polymesh | polymesh.api.subscan.io |
live |
Polymesh Testnet | polymesh-testnet.api.subscan.io |
test |
Plasm | plasm.api.subscan.io |
live |
Quartz | quartz.api.subscan.io |
live |
Reef | reef.api.subscan.io |
live |
Robonomics | robonomics.api.subscan.io |
live |
Rockmine | rockmine.api.subscan.io |
test |
Rococo | rococo.api.subscan.io |
test |
Sakura | sakura.api.subscan.io |
live |
Shibuya | shibuya.api.subscan.io |
test |
Shiden | shiden.api.subscan.io |
live |
SORA | sora.api.subscan.io |
live |
Subspace | subspace.api.subscan.io |
live |
Stafi | stafi.api.subscan.io |
live |
Statemine | statemine.api.subscan.io |
live |
Statemint | statemint.api.subscan.io |
live |
Tanganika | datahighway.api.subscan.io |
live |
Turing | turing.api.subscan.io |
live |
Unique | unique.api.subscan.io |
live |
Westend | westend.api.subscan.io |
test |
Zeitgeist | zeitgeist.api.subscan.io |
live |
Tutorial
Getting Start
1. Sign up to Subscan API Platform
To sign up for an account on the Subscan API Platform, enter your email address and password, and click SIGN UP.
To activate your account, verify your email address by clicking the link sent to your inbox.
2. Create API Key
Once verified, you’ll be taken to the management page where you can add API Keys, view status, and add new plans.
Every user could get a free plan for a trial. Free plan has a rate limit of 5 req/s and can only generate 1 API Key.
You can choose a more suitable plan according to your requirements.
3. Revoke API Key
You can choose to revoke an API Key.
This operation will be irreversible, so please operate with caution.
Payment Method
We accept the following payment:
Fiat (USD)
Crypto ($DOT)
Annual payment: 20% off the current total price.
Fiat
You could pay via Stripe. We support USD payment through credit card and bank.
Crypto
You could pay via our $DOT payment gate. The price of $DOT gets from Subscan’s $DOT price API.
Invoice
Invoices will be sent to the email in your profile once you finished the payment process.
Upgrade
- You can upgrade your plan for a better experience.
- The Free Plan couldn’t be upgraded now. We will provide free plan upgrade service in the near future
Subscribe
- If you choose the Stripe payment method, automatic renewal will be turned on, and you will be able to renew without manual operation.
- Here you can choose to turn auto-renewal on or off.
Renewal
- Renewal operation is for $DOT payment method users and users who do not automatically renew.
- You could choose Crypto payment or Fiat payment method.
- After being paid successfully, the end time shall be extended.
Notice:
After updating the self-service payment system, users of the original standard plans(Including the Advanced Plan and Professional Plan) can use the self-service payment system for renewal.
Enterprise Plan users, please contact us, and we will handle the renewal for you.
Global Conventions
X-API-Key
Header
The X-API-Key
or x-api-key
(case-insensitive) request header is the authentication method that Subscan API uses to determine the identity and rate limits.
Apply this form to get a free API key that includes higher quotas or start your trial with other subscriptions!
Rate Limiting
Each Subscan API key has a request quota, for example, 30 requests per second at most.
Currently, the quotas are global - shared across all APIs, all networks, and all client IP addresses as well. For instance, if an API key has a quota of 10 requests per second:
- Client A requests
https://polkadot.api.subscan.io/api/now
with an API key; - Simultaneously, client B requests
https://kusama.api.subscan.io/api/scan/metadata
with the same API key. - After these 2 requests, only 8 requests with the same API key are allowed in that second.
Subscan API respects the Internet-Draft RateLimit Header Fields for HTTP. Through the headers of any response, it is simple to retrieve the limit (ratelimit-limit
), remaining quota (ratelimit-remaining
), and the seconds until the limit resets (ratelimit-reset
) of your key. For example, send any request:
curl -isS -X POST -H "x-api-key: YOUR_KEY" https://kusama.api.subscan.io/api/now
An example of partial response headers:
ratelimit-remaining: 7
ratelimit-limit: 10
ratelimit-reset: 22
If the client reached the rate limit, all other requests in the time slot will be throttled with an HTTP 429 Too Many Requests
response that contains a retry-after
header.
An example of partial response headers:
retry-after: 4
ratelimit-remaining: 0
ratelimit-limit: 10
ratelimit-reset: 4
An example of response body:
{
"message":"API rate limit exceeded"
}
HTTP Status Codes
The table down below lists several HTTP status codes that Subscan might respond.
Code | Meaning |
---|---|
200 OK | The request was handled without any error. |
401 Unauthorized | The credentials is either not found or invalid. Please refer to the message field in the JSON response for more detail. |
404 Not Found | The HTTP method or request URI was most likely wrong. |
429 Too Many Requests | The request hits the rate limit. Please request an API key with higher quotas. |
500 Internal Server Error | The servers could not respond your request due to an internal error. Find more information on our status page. |
502 Bad Gateway | The servers could not respond your request due to an internal error. Find more information on our status page. |
503 Service Unavailable | The services were under maintenance. Please try again later. |
504 Gateway Timeout | The servers could not respond your request due to an internal error. Find more information on our status page. |
General API
timestamp
Subscan server timestamp
curl -X POST 'https://polkadot.api.subscan.io/api/now' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/now
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": 1559545576
}
metadata
Subscan global stats
curl -X POST 'https://polkadot.api.subscan.io/api/scan/metadata' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/metadata
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655185752,
"data": {
"addressType": "0",
"avgBlockTime": "6.0247692426493965",
"blockNum": "10735413",
"blockTime": "6",
"bootTime": "1590507378",
"commissionAccuracy": "9",
"count_account": "980324",
"count_event": "26515359",
"count_signed_extrinsic": "9549379",
"count_transfer": "8052563",
"current_era": "742",
"current_validator_count": "297",
"epochLength": "2400",
"epochProcess": "1323",
"eraLength": "14400",
"eraProcess": "8523",
"exist_roles": "registrar,validator,nominator,councilMember,techcomm",
"finalized_blockNum": "10735411",
"history_depth": "84",
"implName": "parity-polkadot",
"maxNominatorRewardedPerValidator": "256",
"networkNode": "polkadot",
"specVersion": "9220",
"unbondDuration": "403200",
"validator_count": "297",
"waiting_validator": "731"
}
}
Response Description
Attr/Prop | Description |
---|---|
addressType | substrate ss58 prefix |
avgBlockTime | |
blockNum | best block num |
blockTime | output block time(fixed) |
commissionAccuracy | staking commission accuracy |
count_account | account count |
count_event | event count |
count_extrinsic | extrinsic count |
count_signed_extrinsic | signed extrinsic count |
count_transfer | transfer count |
current_era | |
current_validator_count | session validator count |
epochLength | number of block nums per epoch |
epochProcess | current epoch progress |
eraLength | number of block nums per era |
eraProcess | current era progress |
exist_roles | current network exist role |
finalized_blockNum | finalized blockNum |
history_depth | |
implName | |
maxNominatorRewardedPerValidator | |
networkNode | network name |
specVersion | current runtime spec version |
unbondDuration | number of block nums unbond duration |
validator_count | current storage staking.validatorCount |
waiting_validator | waiting validator count |
blocks
Block list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/blocks' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 0
}'
Request URL
POST /api/scan/blocks
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655185816,
"data": {
"blocks": [
{
"block_num": 10735423,
"block_timestamp": 1655185806,
"hash": "0x3db7ae1a450c8eec3f2f96a95e11c320fa7893915eb0c7f426be6d8df5908be3",
"event_count": 17,
"extrinsics_count": 2,
"validator": "13dCwieVYyuLVRdDcxomFeaYU1C73QpNDJreqHvKcggikWjK",
"validator_name": "",
"finalized": false,
"account_display": {
"address": "13dCwieVYyuLVRdDcxomFeaYU1C73QpNDJreqHvKcggikWjK",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
],
"count": 10735423
}
}
block
Block detail
curl -X POST 'https://polkadot.api.subscan.io/api/scan/block' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"block_hash": "0x68a27df5a52ff2251df2cc8368f7dcefb305a13bb3d89b65c8fb070f23877f2c"
}'
Request URL
POST /api/scan/block
Payload
Name | Type | Require |
---|---|---|
block_num | int | no |
block_hash | string | no |
block_timestamp | int | no |
only_head | bool | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655185968,
"data": {
"block_num": 5,
"block_timestamp": 1590507438,
"hash": "0x68a27df5a52ff2251df2cc8368f7dcefb305a13bb3d89b65c8fb070f23877f2c",
"parent_hash": "0xd380bee22de487a707cbda65dd9d4e2188f736908c42cf390c8919d4f7fc547c",
"state_root": "0x01045dae0c5d93a84c3dc1f0131126aa6aa1feb26d10f029166fc0c607468968",
"extrinsics_root": "0xa9439bbc818bd95eadb2c5349bef77ee7cc80a282fcceb9670c2c12f939211b4",
"extrinsics": [
{
"block_timestamp": 1590507438,
"block_num": 5,
"extrinsic_index": "5-0",
"call_module_function": "set",
"call_module": "timestamp",
"params":"[{\"name\":\"now\",\"type\":\"Compact\<Moment\>\",\"value\":1590507438}]",
"account_id": "",
"account_index": "",
"signature": "",
"nonce": 0,
"extrinsic_hash": "",
"success": true,
"fee": "0",
"fee_used": "0",
"from_hex": "",
"finalized": true,
"account_display": {
"address": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
],
"events": [{
"event_index": "",
"block_num": 1,
"extrinsic_idx": 1,
"module_id": "",
"event_id": "",
"params": "[{\"name\":\"now\",\"type\":\"Compact\\u003cMoment\\u003e\",\"value\":1602732522,\"value_raw\":\"\"}]",
"phase": 1,
"event_idx": 1,
"extrinsic_hash": "",
"finalized": false,
"block_timestamp": 1652241235
}],
"logs": [
{
"id": 0,
"block_num": 5,
"log_index": "5-0",
"log_type": "PreRuntime",
"engine": "",
"data": "{\"data\":\"0x03000000009ddecc0f00000000a8a9c1d717f3904506e333d0ebbf4eed297d50ab9b7c57458b10182f1c84025ef09d3fb5b5f4cb81688939e6363f95aa8d91645fa7b8abc0a6f37812c777c307df51071082d3ff89d4e1b5ad8f5cd3711ada74292c4808237bdf2b076edb280c\",\"engine\":\"BABE\"}"
}
],
"event_count": 0,
"extrinsics_count": 2,
"spec_version": 0,
"validator": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt",
"finalized": true,
"account_display": {
"address": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
}
extrinsics
Extrinsic list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/extrinsics' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/extrinsics
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
signed | string | no |
address | string | no |
module | string | no |
no_params | bool | no |
call | string | no |
from | int | no |
to | int | no |
block_num | int | no |
block_range | string | no |
success | bool | no |
Example Response
{
"code": 0,
"data": {
"count": 5223066,
"extrinsics": [
{
"account_display": {
"address": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"account_id": "",
"account_index": "",
"block_num": 2028661,
"block_timestamp": 1602732522,
"call_module": "timestamp",
"call_module_function": "set",
"extrinsic_hash": "",
"extrinsic_index": "2028661-0",
"fee": "0",
"fee_used": "0",
"nonce": 0,
"params": "[{\"name\":\"now\",\"type\":\"Compact\\u003cMoment\\u003e\",\"value\":1602732522,\"value_raw\":\"\"}]",
"signature": "",
"from_hex": "",
"finalized": false,
"success": true
}
]
},
"message": "Success",
"generated_at": 1628587129
}
extrinsic
Extrinsic detail
curl -X POST 'https://polkadot.api.subscan.io/api/scan/extrinsic' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"extrinsic_index": "2028659-2"
}'
Request URL
POST /api/scan/extrinsic
Payload
Name | Type | Require |
---|---|---|
extrinsic_index | string | no |
hash | string | no |
events_limit | int | no |
focus | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655186165,
"data": {
"block_timestamp": 1602732510,
"block_num": 2028659,
"extrinsic_index": "2028659-2",
"call_module_function": "transfer",
"call_module": "balances",
"account_id": "16hp43x8DUZtU8L3cJy9Z8JMwTzuu8ZZRWqDZnpMhp464oEd",
"signature": "a672d84b55afd71df5fd45e48043b479e762124ff174db116ba5cd979040544b3b536c2e66a72231a698d4d0588f89470e25acbe8ff39ba7b78d302034a63e00",
"nonce": 5786,
"extrinsic_hash": "0x3d944ee0f1aead94a50730eec73aba16c930ca9f468a63d11415c73c80e325ba",
"success": true,
"params": [
{
"name": "dest",
"type": "Address",
"type_name": "",
"value": "105fdf37958064a0c87096bd9cfbd307f955f275f3979c40fa701118ec0e657a"
}
],
"transfer": {
"from": "16hp43x8DUZtU8L3cJy9Z8JMwTzuu8ZZRWqDZnpMhp464oEd",
"to": "1NUFGnNcUpGh2biqtQ1yND7NCDY3q2Eoh7PbsurheeSNmAH",
"module": "balances",
"amount": "256.109",
"hash": "0x3d944ee0f1aead94a50730eec73aba16c930ca9f468a63d11415c73c80e325ba",
"block_timestamp": 0,
"block_num": 0,
"extrinsic_index": "",
"success": true,
"fee": "0",
"asset_symbol": "",
"to_account_display": {
"address": "1NUFGnNcUpGh2biqtQ1yND7NCDY3q2Eoh7PbsurheeSNmAH",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
},
"event": [
{
"event_index": "2028659-2",
"block_num": 2028659,
"extrinsic_idx": 2,
"module_id": "balances",
"event_id": "Transfer",
"params": "[{\"type\":\"AccountId\",\"value\":\"fc4d6069cb980fcde6ef73a46f1894d66c152e9ddfac3a499cf6a1654ff5f55b\"},{\"type\":\"AccountId\",\"value\":\"105fdf37958064a0c87096bd9cfbd307f955f275f3979c40fa701118ec0e657a\"},{\"type\":\"Balance\",\"value\":\"2561090000000\"}]",
"phase": 0,
"event_idx": 2,
"extrinsic_hash": "0x3d944ee0f1aead94a50730eec73aba16c930ca9f468a63d11415c73c80e325ba",
"finalized": true,
"block_timestamp": 0
}
],
"event_count": 1,
"fee": "156000000",
"fee_used": "0",
"error": {
"module": "",
"name": "",
"doc": "",
"value": "",
"batch_index": 1
},
"finalized": true,
"lifetime": {
"birth": 2028654,
"death": 2029166
},
"tip": "0",
"account_display": {
"address": "16hp43x8DUZtU8L3cJy9Z8JMwTzuu8ZZRWqDZnpMhp464oEd",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"crosschain_op": null,
"block_hash": "",
"pending": false,
"proxy": {
"account_display":{
"address":"5Dc1tzx4QDEDXetr98Mk4RjKSMFJiLBqr2Gmco7rjz8YfwMP"
},
"call_module_function":"transfer",
"call_module":"Balances",
"params":[
{
"name":"dest",
"type":"sp_runtime:multiaddress:MultiAddress",
"value":{
"Id":"0x387aed21a43ed189c8f0d14aab6f05f715f1adfe670efa6090208ddd4efe991f"
}
},
{
"name":"value",
"type":"compact\u003cU128\u003e",
"value":"90"
}
],
"success":false
},
"multisig": [
{
"multi_id": "2028689-2",
"call_hash": "0xbe406c4c2b3754f5cc03110c702776516edf04d5a6b8a3db62493c129119a13a",
"multisig_account_display": {
"address":"5Dc1tzx4QDEDXetr98Mk4RjKSMFJiLBqr2Gmco7rjz8YfwMP"
},
"call_module": "balance",
"call_module_function": "trasfer",
"processing": 1,
"threshold": 3,
"multisig_status": "Approval #(Approval,Executed,Cancelled,Failed)"
},
{
"multisig_account_display": {
"address":"4Dc1tzx4QDEDXetr98Mk4RjKSMFJiLBqr2Gmco7rjz8YfwMP"
},
"call_module": "balance",
"call_module_function": "trasfer",
"processing": 2,
"threshold": 2,
"multisig_status": "Executed"
}
]
}
}
multisigs
account multisig list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/multisigs' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"account": "12YK3LD8FzVgyBuN6mQkCaZUHyExQdjyvX1Fn67DJ5A4rL2R"
}'
Request URL
POST /api/scan/multisigs
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | no |
account | string | yes |
type | string | no (all signator) default:all |
Example Response
{
"code": 0,
"data": {
"count": 1,
"multisig": [
{
"multi_id": "198023-2",
"multi_account_display": {
"address": "HCGtRS5EhDuNK4ox1B3VWrRNB1efSYXmtysy5u2SeWdK1WF"
},
"account_display": {
"address": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt"
},
"threshold": 2,
"call_hash": "0x20377a6b3b58a6811febe2c8943b00856879e0675ac0f93aa58248932b00ad7a",
"call_module": "Balances",
"call_module_function": "transfer_keep_alive",
"status":"Approval",
"block_timestamp": 1602732510
}
]
},
"message": "Success",
"generated_at": 1628587129
}
multisigs Details
account multisig list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/multisigs/details' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"account": "12YK3LD8FzVgyBuN6mQkCaZUHyExQdjyvX1Fn67DJ5A4rL2R"
}'
Request URL
POST /api/scan/multisigs/details
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | no |
status | enum string | no(Approval Executed Cancelled Failed) |
account | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1678780944,
"data": {
"count": 2,
"multisig": [
{
"multi_id": "12539327-1(string create Extrinsic index)",
"multi_account_display": {
"address": "2pmrnGHy1H2oGuw2sCdCXVyVsMTUcMfN9QY1o4fTbDqBcg2a"
},
"account_display": {
"address": "2pp5aVQahtcN3TgAtiJ1DCi2rg9rSXm3UzUc2Z84CsP7aC8e"
},
"threshold": 3,
"call_hash": "0x63e8e1d2c7b1e29c9b59bef202e67c142a8b7a7b6bc61f75e9740eff22f9914f",
"call_data": "0x04030070f4429de1415ed8ef3e55a9c1942926d9df851e10838e78f9dab42127858c7c025a6202",
"call_module": "Balances",
"call_module_function": "transfer_keep_alive",
"status": "Approval(enum Approval Executed Cancelled Failed)",
"block_timestamp": 1676963868,
"confirm_extrinsic_idx": "(string (Executed extrinsic index))",
"cancel_extrinsic_idx": "(String)",
"approve_record": [
{
"account_display": {
"address": "2pp5aVQahtcN3TgAtiJ1DCi2rg9rSXm3UzUc2Z84CsP7aC8e"
},
"extrinsic_index": "12539327-1",
"approve_type": "Initialize (enum Initialize Approval Executed)",
"timestamp": 1676963868
},
{
"account_display": {
"address": "2qMskW9mrrdUcFS5s7a3Pq5PxoTa1NTirDEggPUNmaCEJ5Ch",
"display": "你好达尔文",
"judgements": [
{
"index": 0,
"judgement": "Reasonable"
}
],
"identity": true
},
"extrinsic_index": "12539335-1",
"approve_type": "Approval",
"timestamp": 1676963916
}
],
"cancel_record": null
},
{
"multi_id": "7732208-1",
"multi_account_display": {
"address": "2tksdyLYpjp11BRre3QthYcWTomaepMhkWvFj25LoNZNkknm"
},
"account_display": {
"address": "2odJPxNLYkr1GKXTg7S3tEFhot3ndtcm9GqAFum4LjNZH9SR"
},
"threshold": 2,
"call_hash": "0x73b71daeb2499239344a3d4b1b27d0ce74e15abca0a7f623cabe29168d23f119",
"call_module": "",
"call_module_function": "",
"status": "Approval",
"block_timestamp": 1647920964,
"confirm_extrinsic_idx": "",
"cancel_extrinsic_idx": "",
"approve_record": [
{
"account_display": {
"address": "2odJPxNLYkr1GKXTg7S3tEFhot3ndtcm9GqAFum4LjNZH9SR"
},
"extrinsic_index": "7732208-1",
"approve_type": "Initialize",
"timestamp": 1647920964
}
],
"cancel_record": null
}
]
}
}
multisig
account multisig info and process list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/multisig' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"multi_id": "12323-2",
"call_hash": "0xf506158acd47414967f0dbd894ece3715880ed4edf525bcc2fff267ff3fcd4a4"
}'
Request URL
POST /api/scan/multisig
Payload
Name | Type | Require |
---|---|---|
multi_id | string | yes |
call_hash | string | no |
Example Response
{
"code": 0,
"data": {
"multi_id": "198023-2",
"multi_account_display": {
"address": "HCGtRS5EhDuNK4ox1B3VWrRNB1efSYXmtysy5u2SeWdK1WF"
},
"account_display": {
"address": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt"
},
"call_hash": "0x20377a6b3b58a6811febe2c8943b00856879e0675ac0f93aa58248932b00ad7a",
"call_data": "0x63002200fe66e97151ecbd91beb3455d3dc35e70fba36e39d09924fad444143e4046176701fabb8542b14bb78670db4ae030872df5692cb1e38c88ff92d794cebcfcd97a7d",
"call_module": "Balances",
"call_module_function": "transfer_keep_alive",
"threshold": 2,
"params": [
{
"name": "delegate",
"type": "sp_runtime:multiaddress:MultiAddress",
"value": {
"Id": "0x441d91d745c133fd3fb6c816d12d1138a81debd567d8047a177a3d515345392b"
}
},
{
"name": "proxy_type",
"type": "westend_runtime:ProxyType",
"value": "Any"
},
{
"name": "delay",
"type": "U32",
"value": 0
}
],
"status":"Executed",
"block_timestamp": 1602732510,
"process": [
{
"account_display": {
"address": "H1GtRS5EhDuNK4ox1B3VWrRNB1efSYXmtysy5u2SeWdK1WF"
},
"extrinsic_index": "123456-2",
"status": "Approval",
"timestamp": 1602732511
},
{
"account_display": {
"address": "H2GtRS5EhDuNK4ox1B3VWrRNB1efSYXmtysy5u2SeWdK1WF"
},
"extrinsic_index": "123489-2",
"status": "Executed",
"timestamp": 1602732901
},
{
"account_display": {
"address": "H2GtRS5EhDuNK4ox1B3VWrRNB1efSYXmtysy5u2SeWdK1WF"
}
}
]
},
"message": "Success",
"generated_at": 1628587129
}
proxy Extrinsics
account proxy Extrinsic list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/proxy/extrinsics' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"account": "12YK3LD8FzVgyBuN6mQkCaZUHyExQdjyvX1Fn67DJ5A4rL2R"
}'
Request URL
POST /api/scan/proxy/extrinsics
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | no |
order | int | no |
account | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1667201598,
"data": {
"count": 17,
"extrinsics": [
{
"block_timestamp": 1666268856,
"block_num": 12968878,
"extrinsic_index": "12968878-2",
"extrinsic_hash": "0x5b7acc06ae92e71194f4e35554ea25251e8c5d0a42e300814ea069eada0b8c43",
"call_module_function": "remove_proxy",
"call_module": "Proxy",
"account_display": {
"address": "5Dc1tzx4QDEDXetr98Mk4RjKSMFJiLBqr2Gmco7rjz8YfwMP"
},
"real_account_display": {
"address": "5DFZVETNPHpbwWYDVxmWPpEbCr8PrZKeXkDD29ySV1v3QTXY"
},
"signature": "0x7a6eeb1de31c26b7f8758d0af1276d5f758a0d0fb4756d4820fbc1e4dc46992397fab02fc2715974008514f4723a5fb1c90e7e59ee59af8fe432796ea7910784",
"nonce": 104,
"success": true,
"params": [
{
"name": "delegate",
"type": "sp_runtime:multiaddress:MultiAddress",
"value": {
"Id": "0x441d91d745c133fd3fb6c816d12d1138a81debd567d8047a177a3d515345392b"
}
},
{
"name": "proxy_type",
"type": "westend_runtime:ProxyType",
"value": "Any"
},
{
"name": "delay",
"type": "U32",
"value": 0
}
],
"fee": "19615456200",
"fee_used": "19715456199",
"finalized": true
}
]
}
}
batch extrinsic params
Get extrinsic param data in batches
curl -X POST 'https://crab.api.subscan.io/api/scan/extrinsic/params' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"extrinsic_index":["10170970-1"]
}'
Request URL
POST /api/scan/extrinsic/params
Payload
Name | Type | Require |
---|---|---|
extrinsic_index | array string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1666144850,
"data": [
{
"extrinsic_index": "10170970-1",
"params": [
{
"name":"transaction",
"type":"ethereum:transaction:TransactionV2",
"type_name":"Transaction",
"value":{
"Legacy":{
"action":{
"Call":"0xa546f42beb3dea617b0f3ca6995c7df5dfcad29d"
},
"gas_limit":"0x808d5b0000000000000000000000000000000000000000000000000000000000",
"gas_price":"0x008c864700000000000000000000000000000000000000000000000000000000",
"input":"e38335e500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000e7578598aac020abfb918f33a20fad5b71d670b4000000000000000000000000e7578598aac020abfb918f33a20fad5b71d670b4000000000000000000000000f3c1444cd449bd66ef6da7ca6c3e7884840a3995000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000026f10de3c80f5dd586420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022b1c8c1227a000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000004d0e30db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000f3c1444cd449bd66ef6da7ca6c3e7884840a399500000000000000000000000000000000000000000026f10de3c80f5dd58642000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4be856d3600000000000000000000000000000000000000000000000000000000000004d900000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000e7578598aac020abfb918f33a20fad5b71d670b4000000000000000000000000ded6edd731f5f59feb2555ec3f1b6c085dc6e42e00000000000000000000000000000000000000000026f10de3c80f5dd586420000000000000000000000000000000000000000000000000000000000",
"nonce":"0x0b00000000000000000000000000000000000000000000000000000000000000",
"signature":{
"r":"0x5e4b8e8c728807ff6c8b1dfff7987773e6599ebd4a4a0000ca8cef458c10cdcc",
"s":"0x2f253d4f7ab62901c56dc6893bd33cc87dc8031d6cf4622b148b1ce87e94b3a7",
"v":127
},
"value":"0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
}
]
}
]
}
events
Event list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/events' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/events
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
module | string | no |
call | string | no |
from_block | int | no |
from | int | no |
to | int | no |
address | string | no |
finalized | bool | no |
block_num | int | no |
block_range | string | no |
extrinsic_index | string | no |
phase | int | no |
Example Response
{
"code": 0,
"data": {
"count": 1507567,
"events": [
{
"event_index": "2028650-2",
"block_num": 2028650,
"extrinsic_idx": 2,
"module_id": "treasury",
"event_id": "Deposit",
"params":"[{\"type\":\"polkadot_primitives:v2:CandidateReceipt\",\"type_name\":\"CandidateReceipt\<Hash\>\",\"value\":{\"commitments_hash\":\"0x2224b7e631eb8addf943254af43307cdd255f54ed6c5a8f8272fbf44ec602405\",\"descriptor\":{\"collator\":\"0x34f3c837224e7e37ddeaeebf59b4dbcf0bc962a5bd4c5c212467fb071798b73e\",\"erasure_root\":\"0x298d4f8f664c76f852aae2326ce0b122d96fed47228024df6cc27b9a9545153a\",\"para_head\":\"0x2456275af702fa43f7041321b472bc1e3f2526c747a4edbc12871382b0c4eba6\",\"para_id\":2021,\"persisted_validation_data_hash\":\"0x7db5544d9262a08fd4d9836902486f2cb653f30b13b3d2d63de73fde195c28c9\",\"pov_hash\":\"0x4c9182dcaa156aaf0d9431a00677a4f90fda38b2552baa6978bd5eafdc22d79c\",\"relay_parent\":\"0x05d7675732faa8a1d7ed188e8333ab41978cc16ad2a7b1ff89e4a5e07e8480b4\",\"signature\":\"0x68643314f7368006e89896e9d375a3fdcb5784195cb0d0a4e29b791f9bb294303eca06e33ad1a8c1e28a1a4287d3f4db96e7aeed3c339396dc60a2b9d171c787\",\"validation_code_hash\":\"0x04f5e7d46ee5392c5846b3488e8d42048ca133919f4a4c9a039d1b5906f8c091\"}}},{\"type\":\"Vec\<U8\>\",\"type_name\":\"HeadData\",\"value\":\"16598b4a2aad3dd06fdb7d11684deabbcb205bc231cbd6096048ceb3371660345a8a25008c53ea94f7ae5be9d1697edf060ed9b4585105e90a21d6ffb52ec3ec3d8b929d7c5cdf1d4cadf4cfa822827bc567d28503285a851cab5a39a13ed9a302809a270c06617572612097ad3808000000000470726f64800278e3d862f1628d70fe631e0ad1c3af24f208ba7cb7dc932576fdfe77eace33056175726101015077ab522d7c96e159e2bc456ed7e9d8c3687f636a1bbc3489e4d21711da4f6d86aa8a81e47ea33dd21771ba92d34c0ee1168800e16d34b6edb63be041cfd984\"},{\"type\":\"U32\",\"type_name\":\"CoreIndex\",\"value\":9},{\"type\":\"U32\",\"type_name\":\"GroupIndex\",\"value\":24}]",
"phase": 0,
"event_idx": 5,
"extrinsic_hash": "",
"finalized": false,
"block_timestamp": 1602732456
}
]
},
"message": "Success",
"generated_at": 1655186212
}
event
Event detail
curl -X POST 'https://polkadot.api.subscan.io/api/scan/event' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"event_index": "2013673-2"
}'
Request URL
POST /api/scan/event
Payload
Name | Type | Require |
---|---|---|
event_index | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655186242,
"data": {
"id": 201367300002,
"event_index": "2013673-2",
"block_num": 2013673,
"extrinsic_idx": 2,
"module_id": "system",
"event_id": "NewAccount",
"params": [
{
"type": "AccountId",
"type_name": "",
"value": "8846c53e7d329e820db6a0e8bac8741576761a0caf7161a22ceae0b931a66831"
}
],
"extrinsic_hash": "0x49ae0be7a697e14b857f81a6f95a83704cbed6e9f887e34a4ffbe346486885e9",
"event_idx": 2,
"finalized": true,
"extrinsic_module": "",
"phase": 0,
"es_params": ["",""]
}
}
batch event params
Get event param data in batches
curl -X POST 'https://crab.api.subscan.io/api/scan/event/params' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"event_index":["134084-6","134084-4"]
}'
Request URL
POST /api/scan/event/params
Payload
Name | Type | Require |
---|---|---|
event_index | array string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1666144850,
"data": [
{
"event_index": "134084-4",
"params": [
{
"type": "frame_support:weights:DispatchInfo",
"type_name": "DispatchInfo",
"value": {
"class": "Mandatory",
"pays_fee": "Yes",
"weight": 158080000
}
}
]
},
{
"event_index": "134084-6",
"params": [
{
"type": "acala_primitives:currency:CurrencyId",
"type_name": "CurrencyId",
"value": {
"Token": "AUSD"
}
},
{
"type": "[U8; 32]",
"type_name": "AccountId",
"value": "0x6d6f646c6163612f636470740000000000000000000000000000000000000000"
},
{
"type": "U128",
"type_name": "Balance",
"value": "206156739"
}
]
}
]
}
logs
Logs list
curl -X POST 'https://crab.api.subscan.io/api/scan/logs' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 0,
"engine": "BABE",
"type": "PreRuntime",
"block_range": "421396-421396"
}'
Request URL
POST /api/scan/logs
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
engine | string | no |
type | string | no |
block_num | int | no |
block_range | string | no |
from | int | no |
to | int | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1633769920,
"data": {
"count": 1,
"logs": [
{
"id": 1212,
"block_num": 421396,
"log_index": "421396-0",
"log_type": "PreRuntime",
"engine": "BABE",
"data": "{\"data\":\"0x02010000003b91cf0f00000000\",\"engine\":\"BABE\"}"
}
]
}
}
search (deprecated)
Search block, account, extrinsic
NOTICE: This is deprecated, please use v2/scan/search
instead
curl -X POST 'https://polkadot.api.subscan.io/api/scan/search' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"key": "15",
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/search
Payload
Name | Type | Require |
---|---|---|
key | string | yes |
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"data": {
"account_display": {
"account_index": "",
"address": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt",
"display": "",
"identity": false,
"judgements": null,
"parent": "",
"parent_display": ""
},
"block_num": 15,
"block_timestamp": 1590507516,
"event_count": 0,
"events": [],
"extrinsics": [
{
"account_display": null,
"account_id": "",
"account_index": "",
"block_num": 15,
"block_timestamp": 1590507516,
"call_module": "timestamp",
"call_module_function": "set",
"extrinsic_hash": "",
"extrinsic_index": "15-0",
"fee": "0",
"fee_used": "0",
"nonce": 0,
"params": "[{\"name\":\"now\",\"type\":\"Compact\\u003cMoment\\u003e\",\"value\":1590507516,\"value_raw\":\"\"}]",
"signature": "",
"success": true
},
{
"account_display": null,
"account_id": "",
"account_index": "",
"block_num": 15,
"block_timestamp": 1590507516,
"call_module": "finalitytracker",
"call_module_function": "final_hint",
"extrinsic_hash": "",
"extrinsic_index": "15-1",
"fee": "0",
"fee_used": "0",
"nonce": 0,
"params": "[{\"name\":\"hint\",\"type\":\"Compact\\u003cBlockNumber\\u003e\",\"value\":12,\"value_raw\":\"\"}]",
"signature": "",
"success": true
},
{
"account_display": null,
"account_id": "",
"account_index": "",
"block_num": 15,
"block_timestamp": 1590507516,
"call_module": "parachains",
"call_module_function": "set_heads",
"extrinsic_hash": "",
"extrinsic_index": "15-2",
"fee": "0",
"fee_used": "0",
"nonce": 0,
"params": "[{\"name\":\"heads\",\"type\":\"Vec\\u003cAttestedCandidate\\u003e\",\"value\":null,\"value_raw\":\"\"}]",
"signature": "",
"success": true
}
],
"extrinsics_count": 3,
"extrinsics_root": "0x968380a445eeee3425ee890f71b2483dcc1c70636fdeec8fe35325e0d6618b30",
"finalized": true,
"hash": "0x859baa1b6d5e4763db6a166f35a8f759fefc38867c6779ef5c65d2d02ae7219a",
"logs": [
{
"block_num": 15,
"data": "{\"data\":\"0x0300000000aadecc0f000000008a2c7e5e0c97fce458beac977e6005c6c099c1270ae3b4de0949921610c37a67d82ac028ccddfb4760634696e64ebe7995b4afa4212502485bc6fb78d0c3950457c1b6138ecd6cea8fb40fc24e8d57241098ceaa8c5ad64c4e304b6fb3ee880b\",\"engine\":1161969986}",
"log_index": "15-0",
"log_type": "PreRuntime",
"origin_type": "PreRuntime"
},
{
"block_num": 15,
"data": "{\"data\":\"0x0e501527f753e46f2d5ffd4514b112dff4a43eae2951a4b936214888dc5a7706f457125ec0b7e71a4a05d219d56d1f16b6c65bd581bbcc1e8622a97701a29c87\",\"engine\":1161969986}",
"log_index": "15-1",
"log_type": "Seal",
"origin_type": "Seal"
}
],
"parent_hash": "0x7b31f75558ae258f341f5c4fce7aef372c30cfdf3cdc2df25729675bbecdf9f1",
"spec_version": 0,
"state_root": "0xa72be1cc2379f3b7096f2114b4847b0279e2e1d142cae1eb3a1932d22b6e9c7c",
"validator": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt",
"validator_index_ids": "",
"validator_name": ""
},
"message": "Success",
"generated_at": 1628587129
}
daily
Statistics by time
curl -X POST 'https://polkadot.api.subscan.io/api/scan/daily' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"start": "2020-07-03",
"end": "2020-07-04",
"format": "day",
"category": "transfer"
}'
}'
}'
Request URL
POST /api/scan/daily
Payload
Name | Type | Require |
---|---|---|
start | Date(2019-07-04) | yes |
end | Date(2019-07-04) | yes |
format | string | yes(day hour 6hour) |
category | string | yes(transfer extrinsic NewAccount ActiveAccount Treasury TreasurySpend Unbond UnbondKton Fee Bonded BondedKton AvgBlockTime AccountHolderTotal) |
Example Response
{
"code": 0,
"data": {
"list": [
{
"balance_amount_total": "0",
"time_hour_utc": "0001-01-01T00:00:00Z",
"time_six_hour_utc": "0001-01-01T00:00:00Z",
"time_utc": "2020-07-03T00:00:00Z",
"total": 65,
"transfer_amount_total": "6764435.1"
},
{
"balance_amount_total": "0",
"time_hour_utc": "0001-01-01T00:00:00Z",
"time_six_hour_utc": "0001-01-01T00:00:00Z",
"time_utc": "2020-07-04T00:00:00Z",
"total": 0,
"transfer_amount_total": "0"
}
]
},
"message": "Success",
"generated_at": 1628587129
}
transfers
Transfer list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/transfers' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/transfers
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
address | string | no |
extrinsic_index | string | no |
from_block | int | no |
to_block | int | no |
direction | string | yes(all sent received) |
include_total | bool | no |
asset_symbol | string | no |
asset_unique_id | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655186690,
"data": {
"count": 8052735,
"transfers": [
{
"from": "12WNUbjKPfezJdSUL5vWJV95wPtBhFPQyKV9jpe4tcfyTmED",
"to": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"extrinsic_index": "10735542-2",
"success": false,
"hash": "0x53d224ae6d8af14a291b7e48bf0d07f6c1a80b86f901693824b8388b4fc8b010",
"block_num": 10735542,
"block_timestamp": 1655186532,
"module": "balances",
"amount": "699.8843999985",
"amount_v2": "0",
"fee": "157000015",
"nonce": 2387,
"asset_symbol": "DOT",
"asset_unique_id": "DOT",
"asset_type": "",
"from_account_display": {
"address": "12WNUbjKPfezJdSUL5vWJV95wPtBhFPQyKV9jpe4tcfyTmED",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"to_account_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"event_idx": 0
}
]
}
}
check-hash
Check whether it is block hash or extrinsic hash
curl -X POST 'https://polkadot.api.subscan.io/api/scan/check_hash' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"hash": "0x859baa1b6d5e4763db6a166f35a8f759fefc38867c6779ef5c65d2d02ae7219a"
}'
Request URL
POST /api/scan/check_hash
Payload
Name | Type | Require |
---|---|---|
hash | string | yes |
Example Response
{
"code": 0,
"data": {
"hash_type": "block"
},
"message": "Success",
"generated_at": 1628587129
}
token
Current network tokens detail
curl -X POST 'https://polkadot.api.subscan.io/api/scan/token' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/token
Payload
Name | Type | Require |
---|---|---|
t | string | no |
q | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655186752,
"data": {
"detail": {
"DOT": {
"asset_type": "native",
"symbol": "DOT",
"display_name": "DOT",
"token_decimals": 10,
"total_issuance": "12024561209662193946",
"price": "7.356993258680762",
"price_change": "0.060211543",
"free_balance": "12024561209662193946",
"available_balance": "3706341287445350079",
"validator_bonded": "13991575634473639",
"nominator_bonded": "6317969551956084800",
"locked_balance": "7125816069416346666",
"bonded_locked_balance": "6580877179128054003",
"unbonded_locked_balance": "501402167800562548",
"democracy_locked_balance": "369132339396910446",
"reserved_balance": "1192403852800497201",
"election_locked_balance": "2463856597140462636",
"vesting_balance": "954348641353258444",
"inflation": "7.765856289627089"
}
},
"token": [
"DOT"
]
}
}
unique_id token
Current network unique_id tokens detail
curl -X POST 'https://polkadot.api.subscan.io/api/scan/token' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/token/unique_id
Payload
Name | Type | Require |
---|---|---|
t | string | no |
id | string | no |
q | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655186752,
"data": {
"detail": {
"DOT(unique_id)": {
"asset_type": "native",
"symbol": "DOT",
"unique_id": "DOT",
"display_name": "DOT",
"token_decimals": 10,
"total_issuance": "12024561209662193946",
"price": "7.356993258680762",
"price_change": "0.060211543",
"free_balance": "12024561209662193946",
"available_balance": "3706341287445350079",
"validator_bonded": "13991575634473639",
"nominator_bonded": "6317969551956084800",
"locked_balance": "7125816069416346666",
"bonded_locked_balance": "6580877179128054003",
"unbonded_locked_balance": "501402167800562548",
"democracy_locked_balance": "369132339396910446",
"reserved_balance": "1192403852800497201",
"election_locked_balance": "2463856597140462636",
"vesting_balance": "954348641353258444",
"inflation": "7.765856289627089"
}
},
"token": [
"DOT"
],
"unique_id": [
"DOT"
]
}
}
raw extrinsic
Get raw data of extrinsic
curl -X POST 'https://polkadot.api.subscan.io/api/scan/getRawTx' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"extrinsic_index": "7564189-1"
}'
Payload
Name | Type | Require |
---|---|---|
extrinsic_index | int | yes(if hash empty) |
hash | int | yes(if extrinsic_index empty) |
Request URL
POST /api/scan/getRawTx
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1636077027,
"data": "0x85f10436000d03a00000000000000000009ef5cdc6ea941a1d32a68fc99917336d960f475529d22d268ac5e4b8aed43d7b028806b3c74538825649609b5ef5591bba689a2a422c495a398618a09355fc8ea00000000000010000008adfb6ba91d67156ae34f8ae6cf61f7ba167f9bc897424a0ff89cd8b39af7f6b867279cb5312d00cde78be63e487160f70d73dcb866ab7f1671d1176f557988aa00000000000020000000e4e7bf7b8b68271a115289625c7803b8bf9276d5eb8a206f4a970307215765b813dbc2ef9eace537a9c6a3f6699126dcbd2c6c493c5f72758888b3949728087a00000000000030000002cfd890ec26f1b73a6e2d6af71ec3d82295fb18997cbe9ce608e4a907990083b7821102349ae57b1dee802f0adae1673f26f05a1f385dade99799f4839c3ba89a000000000000400000056de5ea5f78cdd3ec547b67b3c35a57c62667f7b8f61949aeba5e207b5b78354bf1f3675031de8c38f3b5a71bfab97a07dcdad2e41e79358ba12d8115b7adf8da00000000000050000005c0dcd77f8c32ba0dae83585f5598e13b7717e6c464f08491a598c9fdfaa8e7c7369d7a735741c45e6385c44562d305ece9f6af7ff524de7fef90f6e8c212b82a0000000000006000000f4c2e46f50a995f5d4a985d612d30a52beddd0acedbb88f4d6001d5cfd00806d87c24fbc6563b43c5781634fa3f00389c56a42dfc754bf3ff74d035ff4994980a00000000000070000005c6e12754be57d83f97b5a41e3c2721547c7cdbaa359bba3ee320e5b85fe3803040a19e9995e70003fcab6e3e48f0973fd7dfcf024af79530402745a4d55ea8aa00000000000080000009aeb4322793106f9d080c6ccbcc1d56babeefaf7ab1345d9f60d2166433fa90e9a815d1a97d800fd647113880301a17e6b3bb80f1e322484c3d9f9b2ba900c8aa0000000000009000000e237517cf2914d9f52e606d8af925deb213554e5a57ac0331429392e7ef3350b5839be0619e615a98f049e72b2e21b96cf66a59da7f600db885ca9a3ce3eef8da000000000000a000000b8f568fff82e574114b72d2305d5832a94dcb0d41b54ba8de09545dc2269084178390852c743a3b13634ccff945f2f288b59d0ccb04a45b4782a5b5bbd1c848ea000000000000b000000062ca897109dc97b18ccb8fba98a0bb82c75fcf87277d5db54601dc4b5bc01468cad1fa6e16f7d98b58b6b93acd6c55171c4c6bce297b986ef03a0c8ef4b4d85a000000000000c00000038f1dd74ff9e5cab25744e5c238ce6d465b031b169de3b6ab6b71b5dc82cff7ec7eceb33694d5ba77172ee909d30f1d43db85707479ce04594363606b3117a8da000000000000d000000e04361c4de4f91bf5f89ec8e476329dcc6d7fa7a28bf701c7be587485c89f3676c35ff89a5368415f6cc1692ccb58bbf138fa6a04248b71ae550ff16a329758da000000000000e0000000edb59fc4b8d45dc861815cf618ce955a3fec7baf67344287a6c3fbfdd4bf823a9f91407ddabf51ef0015b4d39312c41cfdeaa9d34e203d139f8165c9772cc81a000000000000f000000d66544efa80eac7a9f6a5ad92f878230fb43c22b008c058128aa93c347e89f7cece7aecff05619ae032d2326404f800865719fe0be2c27ee9049a0711a91158ea0000000000010000000a211f9d595d0cb3374bac7e1790e449e23a29dc3a12536b0f7ccd4b7b1b4183f2262596896c9e4d3f6a0138776a8d2039e36a44557af3b2c094e421f932b598aa0000000000011000000c2d65c61c9f72547f044b5d63c1bb3a6ee6632d444f12fcdf27d793c9c399c05ded19b7c7daff8601ad91a0c01513fb57f26d43cc4386bda3c690181fe9f1f80a000000000001200000004f2e8bede4e723de6f9edd22db5435462cd216ac6ff284cf9adb3adffad725acd881d9d63279220fac7d320c570a2a748df5fc2b9ba191c4a4fbb396932dd8fa00000000000130000007c2a4613125dc5cc550cda42a66df370e1b5178e38b564a32d3e168ab83c6242fc22564cbce4ebfff9207b56b1ddd8c88d697021f499a201e80c7efcc266c48fa0000000000014000000d804ad4074b489995d535a4e3952a9cec0e9d9e2917dfbb56ffc118e114b5753cc4c07cbe223142169e31f4cf28fb0176e66261b2ddf37bf7d31207c5551cd89a000000000001500000082c80344a7da878d9d7d4839f23ee825879014766a0ebaa13f8240f2f2ffe27334a69725d402a416c76a936b5a3b214db46fa4dd503ca8dea84cac68f011af8fa000000000001600000072698f6a5d549051b6e6a2fcb1bb1a3dc9d0813cff8da30f8c32af53b87a50763e2ff92cc8d396a5b092cfcd9ce0cb8d4f9346f0fec470bb2bc00d5fe561848da0000000000017000000d2b5e719c1e484e0a757b193077b7c8551c70b3e8646ec125979a15bf1b0ce39b857ff4d2215f87e44224dc1e200365b17e2c20d7c249f9d16efc29aba017a85a0000000000018000000bafb50dfe518c4590f3968c3820390471552816439a070431ec326dddda234470b45cfd6334a8b668f6c908b0dc93ba99fa47a4df841e0f5ca5fbec5c66e638ea0000000000019000000a0253ab8bcb5f77c2a3b42e8073413923c7d1000d4c7a292f0051b886ea4d8406c1bd43b14ddae6a86c91c6f8e98959418b402304ecdb1fa78887e894ec88982a000000000001a000000e4f40ea32c5e866e55eb941d1837369c9d878ce2fef054d138d019e9c557972a3e3def99339db5532bc96a3cca0c7d439b256767f8a8b96b27d72ed6eddd188ea000000000001b000000344bd27a201be19a228ee08d3252d4750a596ab925b0ca62ca2f5aefae3a2f00731fec7461c8b27ffe27d9e7615aced882e0c2e0936828bb6f8d7a96a0694d8ea000000000001c000000849d0a9b85c7e3c7445befff55072a41cfe870609474f8c7828ddfde92287474fc913a69f165e671eb1970c22b7030406b14c341543b09a224fdace34bd21887a000000000001d0000003a86d2e92e58cdaa62cfb8659dd55747b790675f6c1e3fe4f9b751cf8af5936afc62d4083180d3ea1a62690688e49b8217a14900268c0f0c1e3e01f384a2618ba000000000001e000000a6df17a72449a974ea0f0b16218ffc71b1a9cf39344d78f56d99929eec7c3f2fbc866fe94f05e168f4525b20d16b9e0560373f54a5b653e2b1a6d4e8f98e6188a000000000001f0000006628cc88f5376b0c7bb81f3d5e34a4074efc55a744d04210ed54fd6223ca913d86f5545c3bb0fc4e0de036eef28ba2eaa7fc526f7751b31d37de2e68869da982a00000000000200000008e598d551255ea6e2a2c24cc37857e7aff370e9f075c6dba002d78202d386465227d95c870188ace2805eb107ed602e87e7d05cc748e3383daedf93358bec18fa00000000000210000008eab287d1b9b32e04138224e060d443e9292e308717f09e6a78ef04b5393d07be6402d56289f182f5f4d538ffcb68c4751141e02b67fd10ef646c6b6c4eac687a000000000002200000090849d70901bd3634d5941fdc5c8f2253df8fa84f3d871242920ad9dd62d6c3e54176e880ce7421e7818852ec6028aa14226f017005b00dfd76e3faa9f58e087a0000000000023000000d4e5d04094bf7e1cff67be1a00b498bd9c51b400374a357e6dfb735eb0290273de26806d8afe0a615d21a1b61887d646d2d9b3bf5a903496c86eb64c32c6f78ca00000000000240000008e1290b58a819d63481349930b9bdebd902bf851b75fc412ac65561fcca3704d4cbf39f50bce307afcd9df086bdb8aeeaaa25a3da3b97370a2c98db23bc13983a000000000002500000034d4e13375534eb9c18e5e604c6a2e3d8e37f11f6a254fa8722d691b990dbd23df506524a3772cdf864f16cdc455def6136c47a96148c7214838ab4c422f6584a00000000000260000003cd0126d9991a33a8a92713e0784a0bd1a3c980a38b4ea207ba58006313c7409bdbc786ff11a9947f5f05e632e117b4529b5a8c201784c926989a7773529e48ca00000000000270000002a6144082dd5dc2418ce8c568b642c782b930e284a17b39f0024d9af347fa9568cdc9c852d947f8ef623d0c3ba4af1fd9dbefbbaeaba5d9c4b8f1df27d12ad8ca000000000002800000062ac2790523f9f9fce7e4f70f154b47a9cbcad7a1d4e5cc030a8b36470c613742a14c65f0662deb5846b302cab7ac34fce54b4704793c24d31dd62b469cd5c83a0000000000029000000de1f271809b8ca8ccc89c0fb9cbd4f8df4a11e029aa9b6e4038250479f471e60cb705fbabf8126d49dfc3fcc805b7a9c7579f1f4d694afca97e0ec08d7e13685a000000000002a000000de1713e80edb490e13bccb292f173b2646932d6742a834a3ecf894cebdc01a5bc94758db3a36abee9da592f7e63962d86afa4e0daeaba24efb831fadf4092d84a000000000002b000000fa24d4ce531089bacb4e3a2fd8c91f0a6490b94f393e085c6ece3b1393f9fd289132f3aeed2b5ee53303f94bd9c955e79a57d9490f123b3779effca484b7488fa000000000002c000000ace4cc18d9180f122334c94c08258b97ed9d8b0ee4583893969542f9abefa846f025a92ca2a8df756e17e87caa594d813fae5e044083410563d15e20f7068e84a000000000002d000000c0b39247464c873fe89a06315db8bceb1abb2433bf99bd43e76a5277731ce855b161828d0a6e89525aa30e391ee86127c099d4c56d472f2d1dea07dd9908bb83a000000000002e000000ac8831aeba2d4a07352e19f62a68fe7ad40f605dbcecaedee98c778cbbed695f4eb2464b452aef92ebe466605260ac5c44b60b44851f9ef76ca1e1ce70f3938aa000000000002f000000e851df2c5db7a05bce595b614e2e1f1c389343c21da1521f36757ccb8bb83e233c50e351ffd5e41e059b3d29b2b9fad6e6ab97b6f5ef662ce7e7ed0ebf1f3983a00000000000300000001cf28f41a2080646f1a422ce64a9cdc2e804665277e8b91ee6a45cb31017325e0a14b2f927f516db7f5c052d1e610edd76058622faba89c29ebd1f4537278788a000000000003100000048ecb210c638767bda5c00299426d3cfe889073d4db2523b1ec59354048bb34257cbf322c4af00409b5729191420c6caa6b36e94b0080c92e196065f410c058da0000000000032000000c4bcc59b0997b14d1f265a6b9807915815863fefb97d8deaf19854c0d0404a5146086bdb3da8adb59d737fa088e83e2e628c166705a874fd529ea938d1203b82a000000000003300000004da11b993ebdc6dca1610d56ae69c5a52b69df9671aa303842a0bc265cc0c4734653280885583dee459ff531a928ea8bdd78e16e40b131130b862121a696481a00000000000340000000e4417738cec550543b50d87f2a79f275bc2d351f702b647a37181a29904ad3759c609c6e7216e4bf40835f1d188546798f644adf0b73d55fa39c3dca448c888a00000000000350000003c20ca4d7b1ed3fca480520f8bb414d9cab176f94d1305f86c1bf613ac60cc0a0cec06b817bdf6287f1766c32c6ff17ca35d9c614bac4d83e68855ff487ec485a0000000000036000000d688153a10370fc924d110db4a0c3f8001a0c17494f22fd34e7971cc16aa8c0400932b12000ce187b172d2bf5ecc60c979a7c8685dd399626f662f9102b4048ea00000000000370000003cb8068b44f944250e75bf98ff339a3597ea7afbfd98b08841a29215e6e38c3ddc92a405aadbc9f9511731d55152f9aa12fb8ce40fae6d39fec33c99004e8687a00000000000380000005425161290e18063982cf80e990d729719956398626dec7fdbc37657a903a251c2230d3f50da8762edf81f986cfeb3bdf01c0e2de8c3de972d655553c6aebd8da0000000000039000000e0dfef13f6b7e8d92659cc0b2037b76f88d08b0984f8f59114915c145acfaa615f95dbb40f6346b61916b586cfd4dc0cc3e890108269475af3f5a92f2912e382a000000000003a000000fca32649168970c482797daf42539023b384bc80861a2dfac75a6b2626feb861fa590ff21be838bc6d1afd9ec4c224f56dc3834114352cb6e1d3160c85c3cf80a000000000003b000000fa10dc13d4892a347a95026d1a103b3173bdf6d281680573c37bf682573d193664b4fd5dd6632f7f561383f5c9f04b1e9905539f1c3859ac2fc59868adc8e486a000000000003c000000d28d75595f1bbb718ecbcf07f43be3e13a216dfb15faf0a549a6a60ec85c406e833eddfcdb93831ddf2c11392b70cb4dc23250068a52e8e796e81dff1814478ea000000000003d000000600c213209d006cf868656f21b70db275f209d42e93c492ba5e4aae51e970b121e8253fcc4d09ecd274cb5e123a54db28ad9e3982e49dae755fc262f78ac0a8fa000000000003e000000247098831fd101baf04bff8a5793892f594ee2fa5ef9089e47713b955a23620cc25ccea6670c4fa8c884a44fa5e311dcbab923c19e4efd07796a6925c6ea0b8aa000000000003f000000604b1aece731bbc80efc01c4e4014276aa70b1b8ea602a85677d87aa0437b706c5f10032b484f0608bc99c126cf42dae882af6609bea34e5394fe4561df93185a0000000000040000000a245cd2853c657e860210a58af3005b7954c6868f5aefd9f122d3c9a56c43c1f64dc919a2122f9c7d54efeabf2090a2894caff670cf5c1a39bef06c66e2af883a0000000000041000000e4b0ecb7aebaa5a6158a76401363248372422f86fef27327cc42b896201fc247fa44b9afad1ea5c5476f9fd3cb6886196c50693abff268f06d40359591c5af86a0000000000042000000ae697d8c691ebb149c1cc94222e5ad61c7c215fd9fd558f8c871f4bbc2ec033ea0c02d62f2ad6b343558830b645dcdaad7c26c27953de597880510d19889d787a00000000000430000009e8c57de644e24d02a06538b9e6ab51c004513a26db263a78d492dc00d769f3f11afb67fab91c69459f2db2fb7392fc945c9223a467a546d46d5df7075e71e83a00000000000440000004c5231b56831ca57cb56fd32e88b120b6bde3632c2fd6023ff4d719ca00e49729165fdd7fe54e74e0fbd6d4bd3c08d3dd915b6d5c6d96cc5b0a9db4484cb2883a00000000000450000004ce875e7501aac4e3c582e41c830c09db2c628fc98b6726b551e44ba5abd74113e2310e690084378b9824a919c4f561984b94e1e09d9d0f18c8203aab410778ca0000000000046000000700cbd3048575698aa404f242159eea526f908ff4e9d8f9879eb20ddb4aa1c1daa968bed21a2cc8aaca05008e1ba05a206a1d6415dc23e761234f2f1a42a1e88a000000000004700000056bb6d762d0458fc54a916826f7d8227aecb9c911e85aff53e7ecaa68bd6b65bd8acbec40e510d6f5645f49dce523d8e0e2d331f51cbb7c829e72972a8a2ab8ba0000000000048000000320ed291ac6a9fc51eeb64fe041021a8a2dcd58a8e9981573c7125d0a15e4075e36c46da115671bbce776bde81fd4a57a73567a132d3afdc5d8eceb109a2ab8ca00000000000490000007ad7bec4bd7ea98e4129440792158b6b7159e36a427d29cf5ad6d7d67528f86aa605bb98f7c909c9ef8a9299775fec0d27974a3ff2a483f78960fe8bd3b8c581a000000000004a000000723835dd1b2e3776e176db9e0f717e06c30f871c2feee4d3d11aafb1b1c36a7a570dbb360a3e8f9aab49dd3291dcd26a04d64ed6999bea1c87fe4e9c9b1c7784a000000000004b000000100dfb3cf427a29b63097b8657d62bd067594d3e6d2a26cb5a6acffa5558161dfc31f4f3ce632d620053ed05074c98eb17953b77ab24d9b3d8dbfb115691018aa000000000004c000000140ca77cf221a40c98ae1e059250b69bcd591c98429a83976c4daa2cebec7f2713bb5ce829c84182b3eaf6daa58be413266a05bb1f36b6afd85814ff82567786a000000000004d000000ce38b47f137ca3d6e73a2511a33230607edb4b89dbc01264033ebad604086f08985eb37cec1c91b1c3c0316ffe7b8f4ed8118668749a145f05da2cda48e5cb80a000000000004e000000c09aeb6ea49bf2322693854b057c4cfa1cb4860cad8838430280d8198b8bfa1f9c62a24b856b8abfcea26cd04f1d12156ea16278d545b4b33ce3e5f30cdeff86a000000000004f000000e64200e5c0b87af871d86745a907be6204cd08ca4ddfa04d70dd771c086b8f27096be5c066eb815362840c4a6d1ddcb81d2aa8985a7cdecd6b1b21dd1540fc87a0000000000050000000b0588410183b717275f7b324c550c7d0f367cc23d5ecf4543560454104ef864642fe9d0f27bc99a48f01699cecd3a57dab6013e9000686d4e18f600d3463e681a00000000000520000007c133748a25d7d4db7bb4c67003acdb0c169f0a1645f9ea774b28e1409d4ae085b63278f830ac6078411497e13d8a830a7c4ea4d7c41a442759c83c32e5a3187a000000000005300000036b28d99c29186ede99c0cd2851495dca51800a1b3be3fce8fd86abe1919b40172b88300888b62ca730e0f19e96dc19f66e868555241466a0a82eb5f1f36c883a00000000000540000004895c48a465f14ce40f313b8e43bfebe232619f70319cca7b137a340aeda79558c07edab3ed69711f1b24c4e96320663073fc50057233287d6fab3caf5e5c281a0000000000055000000402b72ae38ffaf6f8b7ba9f6929e296dd8eed96ec3ebc8ee37ec420ccd1feb75faa73731f22d56c93cddb9424319c5039a69aefa7474ef4fe06da7e6802c218da0000000000056000000a4197a7cff97f0f75b749d498157677dee41b1812788cd27290efc346c28393a1c24e09fec4c33118f13adec08103370237d4163ac53a9fe240ffa4957ff1884a0000000000057000000f86bb90bfd440e3f52627330123cc323a284e178b760e42340fa5db81aca201f65828a79137b6ecf1077d4f8f65dd130288948083a916c025ebe43d154e14285a00000000000580000008ea117ad6b5bb6f03c451ef38c6a3788d2788f199392b9e84d2409adddf6880b7810a7e774766dd557307c0eadaa0e5fdd18b45d746706b0b96e9805d741b184a00000000000590000004a9719cdb4a3fc418990c17a95403afd05bbafcac307f32a93d813509230c80ee46741f8327be63a9cedb8a168d3afe1de63e053bf2c7aafebbe665602a5ec83a000000000005a0000007ac323207325a648bb439d0635263e083087fc9af0e013c0af0f48743dafc823b80ae2167f917b73a68230d7fca9ad9e685eea00caf7554baac076e926670c8aa000000000005b000000e8780dae8e4ba930b69eb219b23588142bea92c0eaf6be79055525298c19cb73a716f189e97db2f37b51021d291cd38f788a73f4c5b03361e5674eee1b651886a000000000005c000000b47f8da994967a2d84dabb776bba20457d36097c6ecaba726ad1d378260aad5c726ce36bdf9a3a1a1f4758ae6bafb8a7b653980b25d975c5aa466fa816986c8ba000000000005d000000143e817166094c507e73577694ddcab4e7bef267198e2e2e6a77916b94d53f586508ead2881d46e524406a4e157b6a923806f8646f20432a25119ae98cef2f85a000000000005e000000ae04df789cb3f4f25a70239770c02c33e3e3d28adfbff849e04fb228c45d6d6515702c1a9ea6ef016b77f019145641420eb1a5babdfeb03c5d1aef7998974e8fa000000000005f0000004cb9ed901e70cfcb7cf0fd39e56a87c1fa44dc45e2eb06c0ca3e57377a61361201b7f2fa7491a0861764ccad352d9e700cdfac5d381805accc38ea17cbf5b58da0000000000060000000b22f3cff56627ed7bd8fddd967cdab0918ceed9a5bb7d774821254a5ec511f04f09fe66ed53c9ac448f0fde4442b02492b1ad85c073bda37b5e666cfd648078aa00000000000610000005e51cc11d9d1423dc476cadc7260b6c6d0549e17ee77dcdb432389071815a12e34e8c468f2f729414a08bfced7421ac84c1df18d52c6d0f85066e0b9fde74688a0000000000062000000fef9d8271e319e3716350e02f2c7a5b7f4772ae78efb3cc6b3776a2c887ac60173593943ce13caee0d35d64eaaadbea4580620f3820def8d4ee26ce72f7ce088a000000000006300000090e890d8805b8c38ffd1e525f4691e0f79f3cc24cec2100fd733bdb4a821634b596163cbc49fbebee606855908b8ec456467eaeabb9816affd47244236815286a0000000000064000000ecd8dadc1ed13aca82e754f6ce97fb640eb71c0ca36a22fc552a1b4f4f290d7a1bac725cf1694898cacaa5f743cf59a1244c17049f6dae01f59b7f69812abe89a0000000000065000000b0830eba3af685f8269bdf95f9a36b6e3ebded139693e2a67efddc97a1eb296018982ba369195124463afa410c7eedb19d22c46ab0dedb45ac1d4cee48cfbe88a0000000000066000000064a6109fe99f2305384a0ee3411466c3c8bd6a1b05ef1f83a63ad9a4300511618f1a15b7d7377b838bedb177ab8c97837067c5053bba9e578c1fb59c5a62386a0000000000067000000d4add3bb7324a067dffa9f354cf6721e1fef66d160885bfb752223e6e58b68099a377d529b6737550342277b35802b05e4587d8802e1188a6e4fa712654da988a00000000000680000007e50bdbe599c36e6dd1e2ed050e985908be145c069a1e13a968eede2db12f423248581370dcd06cf126f4903aec001edb3ce025cb7435992bc55126d9911388ba0000000000069000000c0ca104be60d37cf3427d158d9b3a96a2786659903ef6eeb9fc8c1760a6e243ffaaa679bf79dd77c18c252741f6422d661324b87626b0ba0e8033784fa34c481a000000000006a0000000ed1274d3e4b76ebcb053f12067006868e3a00db6fa612ec6203e2ac06d1e145b3a47cb5bc52456b5077df87ab42b97ad7893cca9b6db14ad3c9e7c2dc9ca189a000000000006b00000018b8b894227e948081b6d16f96353fe759572bac07f952c5661506feea04750b85d8e798ef38a88d68b4392accc27cf7424ba2cfc43ca7dbd4b8cec8b602ba8ea000000000006c000000fcbfea26cb4b62c58df5937ce2f35871fe98ea8c2fb81bd1fe1d30e37c51a9233b41ad42eb7aceebb3fb375f0e4cb1dbf84942d82c994079ee67f5b324ec3580a000000000006d000000bc5a39af70ade80ad9d0391ac4ab9fbdab66f7d75c22a6f2ac346bd9c963e329a1e0f9238854f73833356df9332f61c0235ca162f43776a90373725a4ffb5d8fa000000000006e000000c0ac058191813bb4242f64c44dcbc2656533355e78b4355b3e8f82e882f8f145e4e1398c36f0b9254ea359f4cce28506d76673fb01608876223a9a0072b4688ca000000000006f0000002c92b3ba02b8cc737469edc377e821ddcbe66773b98917c71eb37d1c4ac2b915db4b2535ccc92b70b64c158bb50877b1131ccb5d836d52148ef55db653db4387a0000000000070000000c6cb62279da69eea2b400caf83a989bdf2306618dbfa63f214382dd565c3754eb9edd09b5f6e9273f13248ba82537e9576317bda672b664f0998bc480fa8d68ca0000000000071000000ce430578a1af09d63dfe42c2f96298f00710044f405aca939480166ddda0da0f0e202c5139c433b94b99723fdbe985852b7c7429e0b47f888e32addc408d4188a00000000000720000000a54c99ad5ef3d75c04bc6a052282799f423c1c04d419b393b7e33e6b6aeae26244820f5a0374980023778ed941f8bd10d530ef1eb9f407e309eedad5550078ca0000000000073000000f8cd2a6ed8a79c98a144dea769edf38356b695670ea3ac10b159c050ed472d09eab7b1c63a2c60338569d161fd69ced54033496783df0ec347a9de6e610da589a000000000007400000070d60b1491c56c2b182e304a54f897a2231643d9eea438c0d3e64861fa4cc56a578175dbbf99004ed3cf32faba8a31001ec195afacc0e5aa11d73eb235ba8986a00000000000750000004c94bb0c5e7c03e2ab8950555f83dcde553b836620038e0de4072e2ebc8b4b7c8221cbd9b1e3255581dde9d12070bccadc9e49339b46104756017a01311c5f8ba00000000000760000005ab5430edf220af81689b42269e031136653e0de5978b2d030441a2e47d3a22403c8eb38cd235799ef89d5bdc50e8443fbed6bb36f2f127036c837bf445e3880a0000000000077000000a08717eac3848b9998442f054fc98da2d06ca319cd255b17192c55a1ac8ade07a6e3e586244c597998d11bcafd2d7eaed22c170d035e9731c87781fb6e30658ba000000000007800000026dd9627fb845cce0fa61fa40d330995a0dcf5db7b78a5f4f82fc7a4224f7a00bd04cec25449cf82afa7c249a9d683f43af8e11e528198fc51032b20d37b048aa0000000000079000000dac8fca1e044d41d8c582725cecbb87a0ac72e4f00ed032991bf76a8e6566365b2912cbcd58edabd3a086e666767690a7238e3d0fb8ee81d8b71ef15679b7381a000000000007a0000001054cca661dcc2de0cc2c75643066ed8d0624b4d74d2a1712669daedd293bc58b9bb63bb2b8946926a986848fe86b042a2ce8775927458b0c747bafbb43cfa89a000000000007b00000012b0ddc52f6fac3cc2eb468b7ee0827eebeed995d682555c68a304270527c27ff0d618763fad2897e62bf6d1117581eaf46df132698c12e7c86a5d05bec3b88aa000000000007c000000ca6bab1b2ebcfa81d5a219a4ac4c8a73be041e1381467e86e4f2df7e553c531898a35e211d0459dcfc4b5d6a6639f27408e5d802fb2362ebc00561a84f134586a000000000007d000000088a753e9adbce6098f40618c02af1f6fea0b08025bb15757870812cefae2377b1b247c087201c2a046e45a58dfc54811403a3b6bf40195f185d0fda62d96a85a000000000007e0000002ce133f7bfae8b32b285234f67c950c0406f9656f84ad53029714688f7124b200e8c8419596f380d89e7665fb635e00e7be4d26a662d1acfabdf4551c16db68ba000000000007f00000096edaa3d41f8a00c0fe32aa8f745298f629ffbc363c82e20501508069dc54d2a33a882acbbd4b524508dfa4996b003b2c118b20e6be7799ed529421d74203781a0000000000080000000fa9c60f4ea62a92d5b57effea8b84dba779c70f744266ca9fe019b3c5667ee25344c9b6d6d6fabba13b9e203d0d9b41234f3a4cae7ecdca1f8a080b663692283a0000000000081000000de310f86ff8ad84bd3c0ddc6b9beaed3b495decef51944cfafd85918a14d3b5b1e1378446c46200992cbe45e163f5116028bd246eb00b3fdf8294de208d98289a00000000000820000004e4faa8993595a79151eb25fce130b10faf6c552f8a7538f1412d9881c95be24c71a5c7c15e7f5c9156863a265a9bfe821d6eea89e7dc45d9162a96a961a5383a00000000000830000004ed516d6e3cccb641e9aea96dc2fc24c7ffbc68ef624f718a0adea6f6dd17947ab723669263164bf7bcc258aef41c14e5c4b8cbfaa9aa21fc2cc56aea91a8c85a00000000000840000003c86f75b473676807cda70589a4e32e608970685591631265ab6eced02cb744ae8391d9c27de7141a620cad1210d5652e8c8ce851c2d77323400125c7d63198fa0000000000085000000120e4a3d309d02993666d76573d73492b1e3dcf34c01f7db4c69828bc6565f6db76b2fb44c11ccf20c7cf146dae3c82181d7e4db721e86967ac5f11dc4df628da0000000000086000000601b3ea7529ab3a5b1b9df950bac94af27c6e4bb4fab61909f82411f6af1eb679ec0bdbeab60fee249bc57fafaf0b95b7cd5da48a69810443ad338f0994dc784a00000000000870000000e8654687042fbbf6285d162790e9fb045b4ce6684c64e92cde1665f5f0ba25bcbb5642fe6a30b8c7d8d7d7813e4b370937ecfecd0d427cb7eec4bf1fcea5881a0000000000088000000981ef199b0f93be4b84e125f011840e30a5b82ebd3808028b3127bc54395ed2abc72e4fd09fa18aca0361a736fd3aa525c3678c3438eb84c15dcf920abe4508da0000000000089000000066077809a8c4c5e5f42294151bf386c2051494d62518b5c5c6989adfb5d5c5ae8d9e07109e6eb5cac3a50c9cbe08a011e0cf9b70403b2f94065a61ea2f7378ea000000000008a0000008ebac5deb0a013196067c4efc8bc629bd456fe989cc6c03bfda313c8e980302b0de2e60bc93a6d97aaab9743071e91d2c22a138eb3506ba8217c84470dec2e84a000000000008b000000a8772cd1852e52223618c239c2b80add3c99f09194e2a3a2b9236ab51cd1a90169589095586399393ded0e1fb133db940c9d40785211a7ac4a9057af195ede8ba000000000008c000000d671ab039f8753c3c4360db8eda0ff176fdbb9b0a7424e07b6eb5cd2d7ecd91b56b6c69f684607dccd18d5f5b79623194044f9e2907fc22dbb4b1f9695163982a000000000008d000000ba31415004e03b70d30fbcc0875dee3f2fa2a25a5cbe10c726cddefae729b065a629833f41ea5c568da428fd337cc3805b25ca2f6b5e311722b40fc1c8c51b85a000000000008e000000569173e6c03a687c68a7d6a03151ebad1b32a7a7a9f36efe1e7dd629b32b110893b1d40bd7ce33ec929e4cfe5ca479268db73903aa27a900b577d1aaec718c85a000000000008f000000d2ec2da2ff83d4d02ac3c05de03d2bad2d779db069ec05b2a59089da05d94e756ebed5bf6fb935f68c5340bdb7c6fdc997bd9ec1e455b15d075cbdc5b4a86385a00000000000900000004eef97104a77d147969c9791fb1d15faf9f219d0502005248b9309099ee7c41aa5312de3cd3d9a1fdb22aeb6f7c33c2799814db5ccfdd17680845dd7eac3a08da0000000000091000000deebd38fc001f2144267fcc12c92b4f2986f93066c90f991d675c33964da122028b2510635318118afccc7ac8f62a08a25061751fe0b09ea611d87b53c48ac86a00000000000920000005c032b9a7a5dfd7287a9b6bc62079511b3b8a7fe533e4da176b6ff1c701b9c3328a66a36b00d553e649c3ec9745b7feb81c1cf40656babf67b45e5ee5213d58ea0000000000093000000de7a7b67420f7f27832f3a45c9be0b95f78912ea49e181e16867aadd927d441f3d612b8eab444aa919bf3984233d5aea1c00a7d0534936dc59c9e81fd344538ba000000000009500000064155e8dd281fb886a70ef059ce81d95254297d5f0c8fba8cd7825bc6158383256cadf5d033e4f6216e06ebded905ab040759ae4bec3c7866a0ed86309c7d989a0000000000096000000be19dc9bafb43988f0d5d9102beab45a0157302700138d2874a2dd01761f3d4a3c24598e5a6d16b462637069242235738fe38a1779f0f95aa44b280094b9a286a0000000000098000000eaec32a080d56f9e42f16d0e19a7235944cc3e7d5c5d44f9474b4ce53041d75b74757a0af211ebab9ab0e02a2717ac9bea61d9185a44710221d533703e63b282a0000000000099000000dc46085ff8f2965fa9fc95e1ed5a10703b19362fb2ca9d5ff29b9b477180c1369da2cfd8a27a1b90c539cb7fa7f213bd6bcb196cae27942fc547d4d92381b783a000000000009a000000c42fb34814d7277d451a7567142bc7423669b0c4d8fde56ffb56371c88a83776d256abfe2658962460fc45203349f4a7657f6a28d628ce964b442457c4808580a000000000009b000000beda3290b070aa450aaaa40f5e5d3b7e4d17ddaf4c51af83f8b48440709fc2299326f05101ea98476b6311ab924894c62f9d4244df64edfdcf53021f29224c83a000000000009c0000001c14d6062f0c9b9f6066d478466cc1a88c7857fe4ee7aaf4b8373a8d257b350cb240261e8f021f60fa687e29a1c1321476eeb5cd208de2c2daaa48591b766c8da000000000009d000000c4360f588b6e13aaacecc792592e1f40b2807bace3e510a842cca80020ac044f4cb22e954795650b303bc175d34b115be270051c1988fb0a0beccbed363f7a8ca000000000009e000000ac1ec1b7582800b690dc0ad1b7b99f293f8322a8c41f649f893be3f5c136a07a06d8226382d56c0625ca175ed7c801b99f7d1fd6a3e9e0137b8d6c4fd0207981a000000000009f00000024861fa47fc23724e4de3f8d2f2a899521f1a656bce79dedab709b8c82805668960ccaaa93da4f97b27c45596f592bbd4900e86954c561947227da36a1a0448fa00000000000a00000008a38a0a93218953e5ecf325dc0eed222ebbd954cf923b4e152563aae37e93c1c320cc799eba9eb418222c930ef074f759b29ca89533f9a532b8d910c4d0da38fa00000000000a20000003aaa85cd7004f477b68ad70548b7b09baa520e6a30dd2d3c6e7420af33946f340b3e3c1fa2602342d116705d84b6a69d50f590cb35a069e31a91885bf2f65c85a00000000000a300000036b2c2851f5603d6a19c37a38dd0d2fa49dc7634d08524e0e23d8af1d3e4d92810eafc01af69c0dde3910fbcaa9634b2a95358570360242aa6528ceb29515d87a00000000000a400000094925ae0d3788f2181e81f1205591c4e92d36b44cdc1785dbdfd9c9ff3f6b44c1f854e64f38925d56b2ac87c80dc6df3ecf93a3f2458db80d29dce0c63a40483a00000000000a5000000924bbc3326019f0969a616bfbe2a308b30aa51a3673866e3693e571e3eadef03c73b5f05fcac77e1b5b8538146a5f48c24f52aaea3c46529f94a77b51789308aa00000000000a600000002491c7ce185679eb15c919c6929d57091bc02a09d254a19c09fc96cdb4eb05723edbd8b10403063cac07cd7172fd783bdff5178133b7833c1455836f003218ca00000000000a7000000aad95becddf4d955b854e3d095134a810e1fd6e8ae2ee39be109d12d9c7eff04c35c3e306f9c3b075a6844095abf99af4b235ca1d28df48ad2931d064a83a58aa00000000000a8000000f2a7e78bb8dda40bcec63f19a85546bacd2c3b85b31b49e9eed563922ced741f34cf2ed35c814b7423e5d3ff0b402805bcf155d7be04414aba808ec20a8c1e84a00000000000a9000000e4a1c49f03021e73f8ec44e4a4b42e3e12dc13c8e4048bbfcb376f115dc479156130846bf110a7a69a8d913ef930d90e1f09441558ac6d095d39ce57e3163286a00000000000aa000000a26d35527f155adca5f63bc5d22124a48f1d4e1a0e4b87bdc3e533c213ebd6074320e404aac5383223f65b767f237eca45fcc53ba34285c996d588937daf3b86a00000000000ab000000844330a23a39128c52f6e0ec20d40b1bed5cd4595627c52d02bb4857c77ec834359d565430951f94201b3e7c41402d0bb629bb307ded835a086c60335a4b428ba00000000000ac0000005c794e27451f8450b48d0c471f3bea88155114ff5dafcb9eaabe927b93c26c2a8fc8a67568aadf04e6c9867e8184175a8c5261c59ee52aa0479d9ed12cce3e83a00000000000ad000000fcda3c5fca1abe21fd020fd6464ea4a4c44618db40c0d42a90276c397a1a5b5e087493515b50a5d771c1d131bdce85a1ac1b7eb77d9a018f024ae7e0124a3d88a00000000000ae00000062cebd9ead6a02fa89b8008c924850eb0787b19e282010b6a128e7d2f8b3db7afe98bf76cc58d5676ead274d2d3577881f4a9317ec998cb955d4d38ee900d188a00000000000af0000007a44ec95c30cb2c1891cacff7d959b196b3baa2735ec25d8b0a3c7aabc46733250a3d5654e7a2441e29960b65fa195532ae7c1ba6e0f5e2837816eb6bff33e8aa00000000000b00000003cd1c801ba1c0ac102f5b3d2490eaffaa2ab8034f4fb6ee2e5e056cacf9f2c01d26eace0ceb8127c5d2f16086a8b46ca9cb68c037b95be2fe02a6746fdb79889a00000000000b1000000628e9971a8e777e991d335c9a4fc650066dda2ed2294556466cd691ef4eab05ea0a0617fa325636210ab0746efb3457600d542a69d25cb2049b8620123a8738da00000000000b2000000c4ee2645de875efecb6f83897e3e1fc3aa049ff5c723a175ce03737370c76c50584d5cc44ed6121ec607a5111766166178fc23614ef7dee3a7a213456eb4f683a00000000000b3000000caa543a6264d1cb170b5bb3820c02988f75223885c91d02293aba09cde83b02f9856cc89dc225ec8f2a6742c5c899f484904558a58f65b63a80fba9912ecda88a00000000000b4000000c053b506d12d0a02a3672e3ae398422f1e554d3eab2226e0ce456e700a430a10f204d7cabe1459536b731421305e82e3723f98968a712173d1147bd2ad386785a00000000000b5000000bef5761682cc45ae2ad6c67757faa943266a9bd6cfe4c67d85295c2eb7134b2736b3500dbde0642c307554e9b8f2aa578682c722b4162dded2f704ac39dd7a83a00000000000b60000002003a685ef611939d8d45411d700c359b174d24207f7c61ccbff98120a1dd87fa4333955702dc824686273db1d039e685edae9bd89fa61fddc86b2c2d779128fa00000000000b70000003e87fb6da9be0ae3f36d8acaccd4a88b123d31f8424e5e336e452d869ff06e44a0a5e23636021843a62ebca4407bd3057a03ff8a6e9371107ddfb71690a8ba82a00000000000b8000000c08db12a0db534cdbb8ab7f0ec065202211f09fa8101f1fda77eb75fcdeba533738c8fabbc49acc821f7c017dab9bd111a9f917b7577e284a8d60bee76887a81a00000000000b9000000100decf36b1768adbc2e6c4490f4d09da689be13d6d427683e569235fcba391270722dfd8f5f3b864d9032e5723456afc5a32c556e213a108b99a45c1624bf8aa00000000000ba000000b407b19b7a6fdad3fd17a5678466dcc97754664e917dc6ad7a27ad8270c75017d6d222c75e195cfb040245486664bd51e4eb6377aa8e35d8153f215640a89f82a00000000000bc000000d217a12b85fa01b397a2fe3f6780ed676ad10ce97da53c1f603dd16507546f5c7dcb20d59ed7f5753977510529ca8a2853f838f92a23eba338ceaf73a34e6c83a00000000000bd000000067031e08f825603eec10a3353cce827a42893d686dbd61f2052eb591314d0235fae9ebb9055ded06785820a352021c6cf1d069c5f72e6f4eb14aa3da4ce108ba00000000000be000000ec1cd3e1342f6e5cda06663876b6f62b3ec105390f99657574d720e0ea81642e1a7aeb2c63c720d59d9bfef38d555acab92321695a252146d189fea724fd7e8fa00000000000bf000000bc282459877e12e74283cbf75e5d9ee4ecbbb0e6c318294c9d865a218d30363231cfb4ef8baf6dde21579d59fc074220e344dca2d9b2fede3aea66cef3e78d81a00000000000c0000000aed437fb18e81aa143733dd59e570f18daaa5961601fff192c337ac17e54e51bc99344c0ba697f80aeda69a0f6ab48e01461e696e1ac69b34d473b703d7cf284a00000000000c1000000aa5aee580e2cb4c5cf68e7755b3560aefd982e4235f1fa232df4ff799458713bbe8cad5e50b8c2019c51484289df58582a51b03675208a0e0ede9e3f7b5ed28ca00000000000c2000000b8ef12f869cd6ca104b399d98edc3b1152de0c68884649b6628be52e8e1d2728c614fcce62bf8af96a394e5cea48d94d9501b57787b10ef78ab3ea054be57d88a00000000000c3000000badc441e60285b2a882b08a65a18e3f12bff32e72d1c878c503f3382fce4204d7976f81d06d2982d92b729602556e6654d78af02b3d19cbe5d7154873d255e88a00000000000c40000002e1cf7bd5a1152b52cce7b68fcc550fabe8cfb224a558cf54d903d1cebff036b0678fa570f83123474d0dcdbdc93b63fe8f6a1e023c0ec637c5236b23823208aa00000000000c5000000dca9f83a2a09d4dc046122b6e1137e56110d0fd4c8ad8bc05e25658e66f6135effec6a2dbe1f39c5fd6384e0ac663f0bd82206dea2fdef33cfbfe27603b3fa8fa00000000000c600000048f8d0b6461c6c49c938cc2824c99c7cb5338055e8f3df9ec458a5b56fa07d1035190691e2f4ec4ae7062279d7685064a8b84d3cff158d826be7bf1ca25a2a85a00000000000c7000000062a9d0b893993b9322b5109e1304188a3f01ffab02f574800014fe687bfee27ef4db8ff6f9d55e8f6e82c8df82bc360d195920d64b6d3952505a32b106e868b04e8030000684bb971a052c806516da251a6677713e4956c53e9db51aa563bc64bd67d60df5ef1d368a8c8db9bf5884f1743d470eae678773b1332c01946fd9d2d179d5f17d1d22fe712b4350460bb2f6f31f1b6aa80506db3ad85d19ca0111b0f4ce28e0106fe8b0d2bb2733bcfcdf605bb6672f6ac3bc5a9cf935f959d4d59af37b656b272d78725d5f70e521514493e7000f57987976397ec798f195ae84adb6e3f4425f4ffbae43ab4a889cc332c4ab02d5498a41edf7f7eb0c26e1eec5d8c138b874918413224a45b10d8e75f89e7c9147f11e014bf2eacec357457cd8f4a1223118562e291b157800f8826cbc69fee5ac3c619ac631470a92e53ebc83f01a459413b62631e64fcf53d18e4064adea71a556aeff18519d8c8a5d71711e1e1b3ab2fcc0000008d016749aa0eae2507bcace98e622b7f938a572790dcea8b891b56681639462c9150410a64e29f4279f3f1a7502db2da3ab164913be8c63a3eafdec2bec8a88db8b08da3bbaad64e49685ee3eddbab023838317bde6ce6884b9bea853a79db35e2dfc3f800000000009c6b7300140282a21f0b5fce41d68e6603133b3e70559a05c350dd56121d454e50e012e3cd18dbf67489f167f74327198b3c2ecbba2c0e54d47d89fcc694924d127674d265880164e385e6fadf99a736382250a927b5bebc91647fc93db112360288570b41d96aa27c06353be104968a60c7c6b2bda5f86a1e2cc80799396e847e7c1d3fcca58502205764e459637a5ca232e214d6db89a37e9b54fa59e8532d1dcbbefc84de0b7b81643142563235f28adf6cd68ad36ff94323d9a89dab4e5633f6feca30ccd3810288d421b6610c3ce2bbd8d8412b67ac87b74df1ce6e83fa4476c7df50570ebd01ef453b78d786720ddc50fe9eec9e1bb778551ebdb6b3d7c437601db6b431df8c012e1e514fbb9288439d7c24994616dbd440779d06763a59ddff8f8879b51baa620fa7e65e70cf5ea9b6ba639434acbbebc1bafefab95460a096ae5e3ea0ee3284141f009ea4b42555a6c064c46268295d20b4a2ab40e6ffef9db17cc3239b53d694093b72aecd01a6652c2083a1d7e1f1db20034afddd0b97d7f269c2a19fb5a5c3ec3db62b51376ea34c93d2c8812ad4d9e04b19047522a6cab6bc81ebc407b74720582cbce935080642414245b50103bd00000049c2401000000000a62e3447b5ca359edfd0c0db372f0177040daf7549056ffcae595379b3a13c343bb7033f6aec4517a5168468af9f1f31017145dee39417af887d5a56bd628d06289472c7b69de5a1c24c54d077a1c3b8357309ef1b2054f0b58fc679e2a74e0005424142450101fa695c98d2c2f7da542e6768b77d7f475b753931b584a94386fcc19d0e392a53216eb795b35dbeaddb1ab1d5fc02dd3da52cab7bbec95f0c8c9c35ef2a86448b"
}
Staking API
Tip: Staking API is only available in the networks support staking or parachain staking pallet(like moonbeam, bifrost)
validators
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/validators' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
}'
Request URL
POST /api/scan/staking/validators
Payload
Name | Type | Require |
---|---|---|
order | string | no (desc,asc) |
order_field | string | no(rank_validator,bonded_nominators,bonded_owner,count_nominators,validator_prefs_value,bonded_total) |
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653622762,
"data": {
"list": [
{
"rank_validator": 0,
"bonded_nominators": "20399801549815659",
"bonded_owner": "0",
"count_nominators": 106,
"validator_prefs_value": 1000000000,
"latest_mining": 10480520,
"reward_point": 7620,
"session_key": {
"babe": "",
"grandpa": "",
"im_online": "",
"authority_discovery": ""
},
"stash_account_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"controller_account_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"node_name": "",
"reward_account": "",
"reward_pot_balance": "100000",
"grandpa_vote": 17,
"bonded_total": "20399801549815659"
}
]
}
}
waiting-validator
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/waiting' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1
}'
Request URL
POST /api/scan/staking/waiting
Payload
Name | Type | Require |
---|---|---|
order | string | no (desc,asc) |
order_field | string | no(bonded_nominators,bonded_owner,count_nominators,validator_prefs_value) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653622966,
"data": {
"count": 723,
"list": [
{
"bonded_owner": "255744025137111",
"bonded_nominators": "0",
"count_nominators": 672,
"validator_prefs_value": 30000000,
"stash_account_display": {
"address": "15BQUqtqhmqJPyvvEH5GYyWffXWKuAgoSUHuG1UeNdb8oDNT",
"display": "HashQuark",
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"account_index": "12FDrF"
},
"node_name": "",
"reward_account": "",
"reward_pot_balance": "10000"
}
]
}
}
voted
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/voted' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "15fTw39Ju2jJiHeGe1fJ5DtgugUauy9tr2HZuiRNFwqnGQ1Q"
}'
Request URL
POST /api/scan/staking/voted
Payload
Name | Type | Require |
---|---|---|
address | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653623075,
"data": {
"list": [
{
"rank_validator": 136,
"bonded_nominators": "20565424533356769",
"bonded_owner": "0",
"count_nominators": 146,
"validator_prefs_value": 30000000,
"latest_mining": 0,
"reward_point": 0,
"session_key": null,
"stash_account_display": {
"address": "13RENAu9cpMpxp3EYzWFGpZXgvMZGDrnconYugNdynQz1sDQ",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "14MceVAhD8moRWR3U3vLWBU5R9tqjSVWHA4sMfMuwSUPn3vb",
"display": "Blockdaemon",
"sub_symbol": "7",
"identity": true
}
},
"controller_account_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"node_name": "",
"reward_account": "",
"reward_pot_balance": "",
"grandpa_vote": 0,
"bonded_total": "0",
"bonded": "1220196079709868"
}
]
}
}
nominators
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/nominators' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 20,
"page": 0,
"address": "165LPQijvZdnmxcuCfxGWvcoSVtoJnCFm1UjjijzsSGGAk22"
}'
Request URL
POST /api/scan/staking/nominators
Payload
Name | Type | Require |
---|---|---|
address | string | yes |
row | int | yes |
page | int | yes |
order | string | no (desc,asc) |
order_field | string | no(rank_nominator,bonded) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653623386,
"data": {
"count": 24,
"list": [
{
"rank_nominator": 0,
"nominator_stash": "16crvXKCK3T3ibTKBijCeBakkXLao4enFZ8b5wEVM96VtW1s",
"bonded": "0",
"account_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"validator_stash": ""
}
]
}
}
era-stat
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/era_stat' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 20,
"page": 0,
"address": "165LPQijvZdnmxcuCfxGWvcoSVtoJnCFm1UjjijzsSGGAk22"
}'
Request URL
POST /api/scan/staking/era_stat
Payload
Name | Type | Require |
---|---|---|
address | string | yes |
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653628919,
"data": {
"count": 235,
"list": [
{
"era": 285,
"start_block_num": 4171582,
"end_block_num": 4185803,
"reward": "100000",
"slash": "100000",
"block_produced": "4171867,4172690",
"reward_point": 0
}
]
}
}
validator
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/validator' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"stash": "111B8CxcmnWbuDLyGvgUmRezDCK1brRZmvUuQ6SrFdMyc3S"
}'
Request URL
POST /api/scan/staking/validator
Payload
Name | Type | Require |
---|---|---|
stash | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653629114,
"data": {
"info": {
"rank_validator": 0,
"bonded_nominators": "20399801549815659",
"bonded_owner": "0",
"count_nominators": 106,
"validator_prefs_value": 1000000000,
"latest_mining": 0,
"reward_point": 0,
"session_key": {
"babe": "0xaaf2ec61d23ac5c99332d22967b60c9f7b3e97651a418be4fe9a26e940c3bd7b",
"grandpa": "0x97e17c240e964ac8dd66be3a2101fe5f2e87018600adf561dccaa6e3384f52e5",
"im_online": "0x72b1e51d22dc72ec18d154a7ffabdf92ba98855dfeb1bc3063073d5da36ce77d",
"authority_discovery": "0x7c14e138770e2befbfe15592c2e0b485014bca2bb7731e5c634693501c1fe220"
},
"stash_account_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"controller_account_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"grandpa_vote": 0,
"bonded_total": "0",
"status": "active"
}
}
}
bond-stat
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/validator/bond_stat' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"stash": "111B8CxcmnWbuDLyGvgUmRezDCK1brRZmvUuQ6SrFdMyc3S"
}'
Request URL
POST /api/scan/staking/validator/bond_stat
Payload
Name | Type | Require |
---|---|---|
stash | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653629483,
"data": {
"list": [
{
"era": 724,
"owner": "0",
"total_bond": "20399801549815659",
"avg": "45723625609189.3771043771043771",
"total_avg": "21279162506345801.8888888888888889"
}
]
}
}
reward-slash
curl -X POST 'https://polkadot.api.subscan.io/api/scan/account/reward_slash' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 20,
"page": 1,
"address": "15fTw39Ju2jJiHeGe1fJ5DtgugUauy9tr2HZuiRNFwqnGQ1Q"
}'
Request URL
POST /api/scan/account/reward_slash
Payload
Name | Type | Require | Description |
---|---|---|---|
row | int | yes | |
page | int | yes | |
address | string | yes | |
category | string | no | enum (Reward Slash) |
is_stash | bool | no | |
block_range | string | no | (blockNum range like (1000-1200)) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653629735,
"data": {
"count": 537,
"list": [
{
"account": "15fTw39Ju2jJiHeGe1fJ5DtgugUauy9tr2HZuiRNFwqnGQ1Q",
"amount": "470522486256",
"block_num": 10473980,
"block_timestamp": 1653580638,
"event_id": "Reward",
"event_method": "Rewarded",
"event_idx": 434,
"event_index": "10473980-434",
"extrinsic_hash": "0x7e869c950a6ab553f2ea12e3e4ed3f49f0fc41c006c6bda52ae600cac96ea073",
"extrinsic_idx": 4,
"extrinsic_index": "10473980-4",
"module_id": "staking",
"params": "[{\"type\":\"[U8; 32]\",\"type_name\":\"AccountId\",\"value\":\"0xce46eb5500a059797f47cf38f119ecb0eeb360b856f67fcb7a74e98f52b84157\"},{\"type\":\"U128\",\"type_name\":\"BalanceOf\",\"value\":\"470522486256\"}]",
"stash": "15fTw39Ju2jJiHeGe1fJ5DtgugUauy9tr2HZuiRNFwqnGQ1Q"
}
]
}
}
unbonding
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/unbonding' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "YOUR_STASH_ADDRESS"
}'
Request URL
POST /api/scan/staking/unbonding
Payload
Name | Type | Require |
---|---|---|
address | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"native": [
{
"amount": "20000000000",
"until": 5849004
}
]
}
}
nominator
curl -X POST 'https://polkadot.api.subscan.io/api/scan/staking/nominator' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "16crvXKCK3T3ibTKBijCeBakkXLao4enFZ8b5wEVM96VtW1s"
}'
Request URL
POST /api/scan/staking/nominator
Payload
Name | Type | Require |
---|---|---|
address | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653630318,
"data": {
"nominator_stash": "16crvXKCK3T3ibTKBijCeBakkXLao4enFZ8b5wEVM96VtW1s",
"stash_account_display": {
"address": "16crvXKCK3T3ibTKBijCeBakkXLao4enFZ8b5wEVM96VtW1s",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"staking_info": {
"controller": "16FUBfV1anDuq6bQqTKf7yYVHGwu3gWJcYzJBB9WJcu49jZN",
"reward_account": "stash",
"reward_display": {
"address": "13dqRWDWXp1ozd8vRoQTRpgvtnTgPMZ7YJkfvczMPJ1587wb",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"controller_display": {
"address": "16FUBfV1anDuq6bQqTKf7yYVHGwu3gWJcYzJBB9WJcu49jZN",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
},
"bonded": "124017311547775",
"status": "active"
}
}
NominationPool API
Tip: This API is only available in Polkadot,Kusama,Westend.
pools
curl -X POST 'https://westend.api.subscan.io/api/scan/nomination_pool/pools' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
}'
Request URL
POST /api/scan/nomination_pool/pools
Payload
Name | Type | Require |
---|---|---|
state | string | no(Destroying Open Blocked Destroyed) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1654763949,
"data": {
"count": 66,
"list": [
{
"pool_id": 1,
"metadata": "FIRST POOL",
"state": "Open",
"pool_account": {
"address": "5EYCAe5ijiYfAXEth5DCfmQ9jnv4BFmdonKpbxwrc2nAw5uj",
"display": "Pool#1(Stash)"
},
"nominator_account": {
"address": "5DiHoyQWyP4aW6PcHoY6djTPT9B7Cy5ZqDfMxnBKUhFv9FKy"
},
"pool_reward_account": {
"address": "5EYCAe5ijiYfAXEth5DCfmQ9jnv4BFmdonKpbxwrc2nAw5uj",
"display": "Pool#1(Stash)"
},
"nominate_count": 0,
"memberCount": 11,
"total_bonded": "0",
"reward_amount": "0"
}
]
}
}
pool detail
curl -X POST 'https://westend.api.subscan.io/api/scan/nomination_pool/pool' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"pool_id": 1
}'
Request URL
POST /api/scan/nomination_pool/pool
Payload
Name | Type | Require |
---|---|---|
pool_id | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1654764078,
"data": {
"pool_id": 1,
"metadata": "FIRST POOL",
"state": "Open",
"pool_account": {
"address": "5EYCAe5ijiYfAXEth5DCfmQ9jnv4BFmdonKpbxwrc2nAw5uj",
"display": "Pool#1(Stash)"
},
"nominator_account": {
"address": "5DiHoyQWyP4aW6PcHoY6djTPT9B7Cy5ZqDfMxnBKUhFv9FKy"
},
"pool_reward_account": {
"address": "5EYCAe5ijiYfAXEth5DCfmQ9jnv4BFmdonKpbxwrc2nAw5uj",
"display": "Pool#1(Stash)"
},
"nominate_count": 0,
"memberCount": 11,
"total_bonded": "0",
"reward_amount": "0",
"depositor_account": {
"address": "5DiHoyQWyP4aW6PcHoY6djTPT9B7Cy5ZqDfMxnBKUhFv9FKy"
},
"root_account": {
"address": "5DiHoyQWyP4aW6PcHoY6djTPT9B7Cy5ZqDfMxnBKUhFv9FKy"
},
"state_toggler_account": {
"address": "5DiHoyQWyP4aW6PcHoY6djTPT9B7Cy5ZqDfMxnBKUhFv9FKy"
}
}
}
pool-activities
Get nomination pool activities list
curl -X POST 'https://westend.api.subscan.io/api/scan/nomination_pool/activities' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"pool_id": 1
}'
Request URL
POST /api/scan/nomination_pool/activities
Payload
Name | Type | Require |
---|---|---|
pool_id | int | yes |
row | int | yes |
page | int | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1654764171,
"data": {
"count": 1,
"list": [
{
"pool_id": 1,
"event_index": "10693887-12",
"extrinsic_index": "10693887-2",
"block_num": 10693887,
"block_timestamp": 1651660806,
"module_id": "nominationpools",
"event_id": "Created"
}
]
}
}
pool-rewards
curl -X POST 'https://westend.api.subscan.io/api/scan/nomination_pool/rewards' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "5ES1f2Q6PjK9DtZSKvRBCd2GeWfU1ExFjcmeA31jTqw1u8iK"
}'
Request URL
POST /api/scan/nomination_pool/rewards
Payload
Name | Type | Require |
---|---|---|
address | string | no |
pool_id | int | no |
row | int | yes |
page | int | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1654765478,
"data": {
"count": 1,
"list": [
{
"pool_id": 6,
"module_id": "nominationpools",
"event_id": "PaidOut",
"extrinsic_index": "11180970-3",
"event_index": "11180970-9",
"block_timestamp": 1654587198,
"amount": "1390109349",
"account_display": {
"address": "5ES1f2Q6PjK9DtZSKvRBCd2GeWfU1ExFjcmeA31jTqw1u8iK"
}
}
]
}
}
pool-members
curl -X POST 'https://westend.api.subscan.io/api/scan/nomination_pool/pool/members' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"pool_id": "1"
}'
Request URL
POST /api/scan/nomination_pool/pool/members
Payload
Name | Type | Require |
---|---|---|
pool_id | int | no |
row | int | yes |
page | int | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655113061,
"data": {
"count": 7,
"list": [
{
"pool_id": 45,
"bonded": "3000000000000",
"claimable": "0",
"account_display": {
"address": "5D7zYmyEEmtTVg6RhUcCRP11J1Rc6FK2Xh2hUZQzD5K57bHF"
}
}
]
}
}
pool-member
curl -X POST 'https://westend.api.subscan.io/api/scan/nomination_pool/pool/member/vote' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "5D7zYmyEEmtTVg6RhUcCRP11J1Rc6FK2Xh2hUZQzD5K57bHF"
}'
Request URL
POST /api/scan/nomination_pool/pool/member/vote
Payload
Name | Type | Require |
---|---|---|
address | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655456115,
"data": {
"pool_id": 2,
"bonded": "1420000000000"
}
}
Account API
accounts
Account list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/accounts' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 0
}'
Request URL
POST /api/scan/accounts
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
order | string | no (desc,asc) |
order_field | string | no(balance) |
min_balance | string | no |
max_balance | string | no |
filter | string | no(validator nominator councilMember techcomm registrar system module evm nominationPool proxy proxies multisig multisigMember fellowship onChainIdentity) |
address | array string | no (max:100) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653374584,
"data": {
"count": 967943,
"list": [
{
"account_display": {
"account_index": "127Ac3",
"address": "15fNZmAVqLdg6JMD9ZRtzhXrouzd2D4YTWdg3WYW8yZae6F2",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"identity": false,
},
"address": "15fNZmAVqLdg6JMD9ZRtzhXrouzd2D4YTWdg3WYW8yZae6F2",
"balance": "8223.4312040139",
"balance_lock": "8172.7073040139",
"count_extrinsic": 10,
"is_erc20": false,
"is_evm_contract": false,
"fellowship_rank": 1,
"assets_tag": [
"Whale"
],
"registrar_info": {
"registrar_index": 1,
"registrar_fee": "0"
},
"ring_lock": "8172.7073040139"
}
]
}
}
account-statistics
curl -X POST 'https://crab.api.subscan.io/api/scan/accounts/statistics' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"type":"role"
}'
Request URL
POST /api/scan/accounts/statistics
Payload
Name | Type | Require |
---|---|---|
type | string | no(assets,role) |
Example Role type Response
{
"code": 0,
"message": "Success",
"generated_at": 1674012922,
"data": [
{
"role": "registrar",
"count": 1
},
{
"role": "proxies",
"count": 1140
},
{
"role": "multisig",
"count": 413
},
{
"role": "multisigMember",
"count": 865
},
{
"role": "validator",
"count": 16
},
{
"role": "nominator",
"count": 22429
},
{
"role": "proxy",
"count": 1107
},
{
"role": "nominationPool",
"count": 416
}
]
}
Example Assets type Response
{
"code": 0,
"message": "Success",
"generated_at": 1677207181,
"data": [
{
"name": "Whale",
"max_balance": "0",
"min_balance": "13281536626674830",
"total": "2651412049964972151481434",
"account_count": 97
},
{
"name": "Dolphin",
"max_balance": "13281536626674830",
"min_balance": "1328153662667480",
"total": "847270455523017511",
"account_count": 224
},
{
"name": "Fish",
"max_balance": "1328153662667480",
"min_balance": "132815366270",
"total": "431931610772807017",
"account_count": 7596
},
{
"name": "Shrimp",
"max_balance": "132815366270",
"min_balance": "0",
"total": "36788464394507",
"account_count": 885
}
]
}
account-tokens
curl -X POST 'https://crab.api.subscan.io/api/scan/account/tokens' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "162NZmCZ8d2koaQqnFb5t9GCPE4UXFELjiCE5kWxDWnZPBMC"
}'
Request URL
POST /api/scan/account/tokens
Payload
Name | Type | Require |
---|---|---|
address | string | yes (ss58 or eth_address) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653375440,
"data": {
"native": [
{
"symbol": "CRAB",
"unique_id": "CRAB",
"decimals": 9,
"balance": "1000000000",
"lock": "3",
"reserved": "7",
"bonded": "9",
"unbonding": "11",
"democracy_lock": "13",
"election_lock": "14"
},
{
"symbol": "CKTON",
"unique_id": "CKTON",
"decimals": 9,
"balance": "2000000000",
"lock": "4",
"reserved": "8",
"bonded": "10",
"unbonding": "12",
"democracy_lock": "15"
}
],
"builtin": [
{
"symbol": "AUSD",
"unique_id": "AUSD",
"decimals": 9,
"balance": "1000000"
}
],
"assets": [
{
"symbol": "MARK",
"unique_id": "(String)",
"decimals": 10,
"balance": "10000000000"
}
],
"ERC20": [
{
"symbol": "EVO",
"unique_id": "EVO(String)",
"decimals": 0,
"balance": "1"
}
]
}
}
tokens holders list
curl -X POST 'https://crab.api.subscan.io/api/scan/token/holders' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"token": "DOT",
"row":20
}'
Request URL
POST /api/scan/token/holders
Payload
Name | Type | Require |
---|---|---|
token | string | no |
unique_id | string | no |
order | string | no(asc desc) |
order_field | string | no(balance locked) |
row | int | yes |
page | int | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1653375440,
"data": {
"list": [
{
"account_display": {
"address": "15fNZmAVqLdg6JMD9ZRtzhXrouzd2D4YTWdg3WYW8yZae6F2"
},
"ring_lock": "1",
"balance": "1",
"count_extrinsic": 4
}
]
}
}
Price API
price
Historical price query
curl -X POST 'https://polkadot.api.subscan.io/api/open/price' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"time": 1665107
}'
Request URL
POST /api/open/price
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
base | string | no | ||
quote | string | no | Quote Currency, USD or current network token | |
time | int | yes | unix timestamp or block num |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1593479990,
"data": {
"price": "5.9032161816",
"time": 1593391878,
"height": 479676,
"records": [
{
"price": "5.9032161816",
"height": 479676,
"time": 1593391878
}
]
}
}
price-converter
The conversion calculator returns the amount of the target currency base on the amount of source currency and historical price
Networks Supported Token
Network | token |
---|---|
kusama | KSM |
polkadot | DOT |
kulupu | KLP |
darwinia | RING KTON |
dock | DOCK |
spiritnet | KILT |
crab-parachain | CRAB |
crab | CRAB |
phala | PHA |
khala | PHA |
bifrost-kusama | BNC |
bifrost | BNC |
curl -X POST 'https://polkadot.api.subscan.io/api/open/price_converter' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"time":594309,
"value":1000,
"from":"USD",
"quote":"DOT"
}'
Request URL
POST /api/open/price_converter
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
value | decimal | yes | currency amount to convert | |
from | string | yes | Base Currency, USD or current network token | |
quote | string | yes | Quote Currency, USD or current network token | |
time | int | no | unix timestamp or block num |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1593479990,
"data": {
"output": "37.606618692359901",
"price": {
"price": "5.9032161816",
"time": 1593391878,
"height": 479676,
"records": [
{
"price": "5.9032161816",
"height": 479676,
"time": 1593391878
}
]
}
}
}
price-history
curl -X POST 'https://polkadot.api.subscan.io/api/scan/price/history' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"start": "2019-07-04",
"end": "2020-07-05"
}'
Request URL
POST /api/scan/price/history
Payload
Name | Type | Require |
---|---|---|
start | Date(2019-07-04) | yes |
end | Date(2019-07-04) | yes |
format | no(hour 6hour 12hour day) | no |
currency | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"ema30_average": "153.1241241",
"ema7_average": "0",
"list": [
{
"feed_at": 1594857864,
"price": "152.42365362"
}
]
}
}
currencies
List of currencies that support price query and conversion
curl -X POST 'https://polkadot.api.subscan.io/api/open/currencies' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/open/currencies
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1593479990,
"data": {
"currencies": [
"DOT/USD"
]
}
}
Governance API
treasury-proposals
curl -X POST 'https://polkadot.api.subscan.io/api/scan/treasury/proposals' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 0
}'
Request URL
POST /api/scan/treasury/proposals
payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"data": {
"count": 1,
"list": [
{
"proposal_id": 133,
"created_block": 10701429,
"status": "proposed",
"reward": "26350000000000",
"reward_extra": "0",
"beneficiary": {
"address": "1Hzs7WqYz2T3EcXN1L4uGLHeE3h5rUuneVkLX5qmmUUvcNo",
"display": "Hashed Systems",
"judgements": [{
"index": 1,
"judgement": "Reasonable"
}
],
"account_index": "1D2Z",
"identity": true,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"proposer": {
"address": "1Hzs7WqYz2T3EcXN1L4uGLHeE3h5rUuneVkLX5qmmUUvcNo",
"display": "Hashed Systems",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "1D2Z",
"identity": true,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
}
}
]
},
"message": "Success",
"generated_at": 1628587129
}
treasury-proposal
curl -X POST 'https://polkadot.api.subscan.io/api/scan/treasury/proposal' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"proposal_id": 0
}'
Request URL
POST /api/scan/treasury/proposal
payload
Name | Type | Require |
---|---|---|
proposal_id | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1631867717,
"data": {
"info": {
"proposal_id": 0,
"created_block": 1142221,
"status": "awarded",
"reward": "100000000000000",
"reward_extra": "0",
"beneficiary": {
"address": "1629Shw6w88GnyXyyUbRtX7YFipQnjScGKcWr1BaRiMhvmAg",
"display": "Patract",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
},
{
"index": 1,
"judgement": "Reasonable"
}
],
"account_index": "",
"identity": true,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"proposer": {
"address": "13DgX3GSb1tAGCWjW4dcSnNZZDEaKrFceYtAMaEBMFfQH9rz",
"display": "Lipeng",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
},
{
"index": 1,
"judgement": "Reasonable"
}
],
"account_index": "16eQvjDK",
"identity": true,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"council": {
"proposal_id": 7,
"status": "executed",
"proposal_hash": "0x0ef205a930527a8eba28d4a598b915a0263aa55b5028c7021ac38c7d75f36d0e",
"member_count": 8,
"created_block": 1233220,
"updated_block": 1278467,
"aye_votes": 8,
"nay_votes": 0,
"proposer": {
"address": "15aKvwRqGVAwuBMaogtQXhuz9EQqUWsZJSAzomyb5xYwgBXA",
"display": "JAM ☠️🐍",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "1Jmx",
"identity": true,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
}
},
"timeline": [
{
"block": 1233220,
"status": "motionAt",
"time": 1597937658,
"prophecy": false,
"index": 0,
"extrinsic_index": "1233220-3",
"params": {
"council_index": 7
}
},
{
"block": 1142221,
"status": "proposed",
"time": 1597390542,
"prophecy": false,
"index": 0,
"extrinsic_index": "1142221-2",
"params": null
}
]
}
}
}
treasury tippers
curl -X POST 'https://polkadot.api.subscan.io/api/scan/treasury/tippers' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"hash":"0xc576ed3af7ceae72a694551b788165339de488bc038e334453b1d66c4e720d11",
}'
Request URL
POST /api/scan/treasury/tippers
payload
Name | Type | Require |
---|---|---|
hash | string | yes |
Example Response ```json
{ "code": 0, "message": "Success", "generated_at": 1683253168, "data": { "list": [ { "extrinsic_index": "14958998-2", "amount": "1000000000000", "rewarder": { "address": "14mR4xpU4BwYTTFNwMJ7KJ81yqNiNxGUFL4e3GxVsN27YNTE", "display": "Fabi", "identity": true, "merkle": {} } } ] } }
## techcomm-proposals
```shell
curl -X POST 'https://polkadot.api.subscan.io/api/scan/techcomm/proposals' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 0
}'
Request URL
POST /api/scan/techcomm/proposals
payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587153,
"data": {
"count": 1,
"list": [
{
"proposal_id": 11,
"created_block": 4443330,
"status": "proposed",
"member_count": 5,
"aye_votes": 1,
"nay_votes": 0,
"call_module": "Democracy",
"call_name": "fast_track"
}
]
}
}
techcomm-proposal
curl -X POST 'https://polkadot.api.subscan.io/api/scan/techcomm/proposal' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"proposal_id": 1
}'
Request URL
POST /api/scan/techcomm/proposal
payload
Name | Type | Require |
---|---|---|
proposal_id | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1631867820,
"data": {
"info": {
"proposal_id": 1,
"created_block": 801623,
"updated_block": 801924,
"aye_votes": 2,
"nay_votes": 0,
"status": "executed",
"proposal_hash": "0x7e418d777b59fc3f841d578bb416d5ae308f445e14b2b2d93e6418d27e125ef4",
"proposer": {
"address": "15yty4Usitt9SGMgWvZdrRjcCeBa7dtrGpdkVck86BTiJoDz",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "1C6E7TL9hQkTqfPdZFjmdLkFiijMqriwosxozZLeAkCpmPk",
"display": "Parity",
"sub_symbol": "🦾",
"identity": true
}
},
"member_count": 2,
"executed_success": true,
"value": "0",
"call_module": "Democracy",
"call_name": "fast_track",
"params": "[{\"name\":\"proposal_hash\",\"type\":\"Hash\",\"value\":\"0xd2d18f5066ac84b98fa9eaff4f273c4da9cfd871136c3cbfa4896c6942c017e2\",\"valueRaw\":\"\"},{\"name\":\"voting_period\",\"type\":\"BlockNumber\",\"value\":201600,\"valueRaw\":\"\"},{\"name\":\"delay\",\"type\":\"BlockNumber\",\"value\":201600,\"valueRaw\":\"\"}]",
"pre_image": {
"hash": "0xd2d18f5066ac84b98fa9eaff4f273c4da9cfd871136c3cbfa4896c6942c017e2",
"created_block": 1188789,
"updated_block": 1205128,
"status": "used",
"amount": "0",
"call_module": "System",
"call_name": "set_code",
"params": "https://subscan.oss-cn-hangzhou.aliyuncs.com/NotePreImage/wasm/polkadot/0xd2d18f5066ac84b98fa9eaff4f273c4da9cfd871136c3cbfa4896c6942c017e2",
"author": {
"address": "1KvKReVmUiTc2LW2a4qyHsaJJ9eE9LRsywZkMk5hyBeyHgw",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "12BCSi",
"identity": false,
"parent": {
"address": "1C6E7TL9hQkTqfPdZFjmdLkFiijMqriwosxozZLeAkCpmPk",
"display": "Parity",
"sub_symbol": "🦾",
"identity": true
}
}
},
"votes": [
{
"account": {
"address": "165PL4saAAYjj5HefKBMEgCz7ToHgC8GT7cbNSvnsJiL13Zf",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "14JezNxa4Fqzsf7ef9prYrNy71Cd1Ff3cZizFrntwviVuC9m",
"display": "W3F",
"sub_symbol": "🦾",
"identity": true
}
},
"passed": true,
"extrinsic_hash": "0x9806cd135fabbc986cfee9cc17fc5f1c5b4014e7ad40884cec039a3a15a8bfa4",
"extrinsic_index": "801924-3",
"voting_time": 1595334330
}
],
"timeline": [
{
"block": 801928,
"status": "approved",
"time": 1595334354,
"prophecy": false,
"index": 4,
"extrinsic_index": "801928-3",
"params": null
},
{
"block": 801928,
"status": "executed",
"time": 1595334354,
"prophecy": false,
"index": 6,
"extrinsic_index": "801928-3",
"params": {
"council_index": 7
}
}
]
}
}
}
council-proposals
curl -X POST 'https://polkadot.api.subscan.io/api/scan/council/proposals' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/council/proposals
payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587151,
"data": {
"count": 1,
"list": [
{
"proposal_id": 21,
"created_block": 928088,
"status": "executed",
"member_count": 2,
"aye_votes": 1,
"nay_votes": 0,
"call_module": "Treasury",
"call_name": "Reject_proposal"
}
]
}
}
council-proposal
curl -X POST 'https://polkadot.api.subscan.io/api/scan/council/proposal' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"proposal_id": 31
}'
Request URL
POST /api/scan/council/proposal
payload
Name | Type | Require |
---|---|---|
proposal_id | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1631867893,
"data": {
"info": {
"proposal_id": 31,
"created_block": 2002546,
"updated_block": 2022852,
"aye_votes": 8,
"nay_votes": 0,
"status": "executed",
"proposal_hash": "0x6ebf1d28c27b73e693361813691a29b6f803e428dad2d140d762a28e87d1de2b",
"proposer": {
"address": "1hCMdtRsaRA4ZTEKpPKPvEjK9rZpGhyFnRHSDhqFMCEayRL",
"display": "RTTI-5220 (POLKADOT)",
"judgements": [
{
"index": 0,
"judgement": "KnownGood"
}
],
"account_index": "",
"identity": true,
"parent": {
"address": "14JezNxa4Fqzsf7ef9prYrNy71Cd1Ff3cZizFrntwviVuC9m",
"display": "W3F",
"sub_symbol": "🦾",
"identity": true
}
},
"member_count": 8,
"executed_success": true,
"value": "0",
"call_module": "Treasury",
"call_name": "approve_proposal",
"params": "[{\"name\":\"proposal_id\",\"type\":\"Compact\\u003cProposalIndex\\u003e\",\"value\":16,\"valueRaw\":\"\"}]",
"pre_image": {
"hash": "",
"created_block": 1188789,
"updated_block": 1205128,
"status": "used",
"amount": "0",
"call_module": "System",
"call_name": "set_code",
"params": "",
"author": {
"address": "",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "12BCSi",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
},
"votes": [
{
"account": {
"address": "13RDY9nrJpyTDBSUdBw12dGwhk19sGwsrVZ2bxkzYHBSagP2",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "16SDAKg9N6kKAbhgDyxBXdHEwpwHUHs2CNEiLNGeZV55qHna",
"display": "🍺 Gav 🥃",
"sub_symbol": "🏛 Council 🏛",
"identity": true
}
},
"passed": true,
"extrinsic_hash": "0x04c051e22e6cc964666c075073c161fcc256405d08e4f7854e169e9e8cf7869b",
"extrinsic_index": "2022852-2",
"voting_time": 1602697470
}
],
"timeline": [
{
"block": 2022853,
"status": "approved",
"time": 1602697476,
"prophecy": false,
"index": 3,
"extrinsic_index": "2022853-2",
"params": null
},
{
"block": 2022853,
"status": "closed",
"time": 1602697476,
"prophecy": false,
"index": 2,
"extrinsic_index": "2022853-2",
"params": {
"council_index": 1
}
}
]
}
}
}
democracy-referendums
curl -X POST 'https://polkadot.api.subscan.io/api/scan/democracy/referendums' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/democracy/referendums
payload
Name | Type | Require |
---|---|---|
status | string | no(completed active) |
row | int | yes |
page | int | yes |
Example Response
status enum
started executed notPassed cancelled Passed
{
"code": 0,
"message": "Success",
"generated_at": 1628587149,
"data": {
"count": 1,
"list": [
{
"referendum_index": 29,
"created_block": 1209600,
"author": {
"address": "1KvKReVmUiTc2LW2a4qyHsaJJ9eE9LRsywZkMk5hyBeyHgw"
},
"vote_threshold": "SuperMajorityApprove",
"end": 1302328,
"status": "started",
"call_module": "Staking",
"call_name": "increase_validator_count"
}
]
}
}
democracy-referendum
curl -X POST 'https://polkadot.api.subscan.io/api/scan/democracy/referendum' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"referendum_index": 0
}'
Request URL
POST /api/scan/democracy/referendum
payload
Name | Type | Require |
---|---|---|
referendum_index | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1631867947,
"data": {
"info": {
"referendum_index": 1,
"created_block": 790302,
"updated_block": 799302,
"vote_threshold": "SimpleMajority",
"pre_image": {
"hash": "0xf86bf558643352cdfd4b6ebc74e5ef41afad5b73e41b157a59945253f48765be",
"created_block": 798096,
"updated_block": 799302,
"status": "used",
"amount": "0",
"call_module": "System",
"call_name": "set_code",
"params": "https://subscan.oss-cn-hangzhou.aliyuncs.com/NotePreImage/wasm/polkadot/0xf86bf558643352cdfd4b6ebc74e5ef41afad5b73e41b157a59945253f48765be",
"author": {
"address": "1KvKReVmUiTc2LW2a4qyHsaJJ9eE9LRsywZkMk5hyBeyHgw",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "KnownGood"
}
],
"account_index": "12BCSi",
"identity": true,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
},
"value": "0",
"status": "executed",
"delay": 1800,
"end": 797502,
"aye_amount": "242393133400000000",
"nay_amount": "0",
"turnout": "193619571000000000",
"executed_success": true,
"aye_without_conviction": "193169571000000000",
"nay_without_conviction": "0",
"timeline": [
{
"block": 799302,
"status": "executed",
"time": 1595318538,
"prophecy": false,
"index": 2,
"extrinsic_index": "799302-0",
"params": null
},
{
"block": 799302,
"status": "executingAt",
"time": -1,
"prophecy": true,
"index": 0,
"extrinsic_index": "797502-0",
"params": {
"council_index": 1
}
}
]
}
}
}
democracy-votes
curl -X POST 'https://polkadot.api.subscan.io/api/scan/democracy/votes' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/democracy/votes
payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
referendum_index | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"count": 1,
"list": [
{
"account": {
"display": "",
"account_index": "4wkDy",
"address": "HRosoqFwj5XJUiTrFFFqpEzzuqTXWAczPyjm23JVmg9FTYu",
"judgements": [
{
"index": 0,
"judgement": "KnownGood"
}
],
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"amount": "323446184712801",
"passed": true,
"extrinsic_hash": "0xa02acc5a6dba2bb45c04cf8e73f52e1b0c1499587a9b8632d5c677632b8059ec",
"extrinsic_index": "795597-3",
"conviction": "1",
"voting_time": 1595296242
}
]
}
}
democracy-proposals
curl -X POST 'https://polkadot.api.subscan.io/api/scan/democracy/proposals' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/democracy/proposals
payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
status | string | no |
order_field | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587144,
"data": {
"count": 1,
"list": [
{
"created_block": 1692250,
"proposal_id": 9,
"status": "tabled",
"call_module": "Staking",
"call_name": "increase_validator_count",
"seconded_count": 0
}
]
}
}
democracy-proposal
curl -X POST 'https://polkadot.api.subscan.io/api/scan/democracy/proposal' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"democracy_id": 1
}'
Request URL
POST /api/scan/democracy/proposal
payload
Name | Type | Require |
---|---|---|
democracy_id | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1631868025,
"data": {
"info": {
"proposal_id": 1,
"status": "tabled",
"created_block": 1179226,
"updated_block": 1612800,
"proposal_hash": "0x086650c6a3966e8179e5213fdb8bcc01b109d82d58c492c6f2c198f4237ec3cb",
"value": "1000000000000",
"call_module": "",
"call_name": "",
"params": "null",
"seconded_count": 0,
"timeline": [
{
"block": 1612800,
"status": "motionAt",
"time": 1600220184,
"prophecy": false,
"index": 0,
"extrinsic_index": "1612800-0",
"params": {
"referendum_index": 4
}
},
{
"block": 1179226,
"status": "proposed",
"time": 1597613130,
"prophecy": false,
"index": 0,
"extrinsic_index": "1179226-3",
"params": null
}
],
"pre_image": {
"hash": "0xf86bf558643352cdfd4b6ebc74e5ef41afad5b73e41b157a59945253f48765be",
"created_block": 798096,
"updated_block": 799302,
"status": "used",
"amount": "0",
"call_module": "System",
"call_name": "set_code",
"params": "https://subscan.oss-cn-hangzhou.aliyuncs.com/NotePreImage/wasm/polkadot/0xf86bf558643352cdfd4b6ebc74e5ef41afad5b73e41b157a59945253f48765be",
"author": {
"address": "1KvKReVmUiTc2LW2a4qyHsaJJ9eE9LRsywZkMk5hyBeyHgw",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "KnownGood"
}
],
"account_index": "12BCSi",
"identity": true,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
}
}
}
tips
curl -X POST 'https://polkadot.api.subscan.io/api/scan/treasury/tips' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/scan/treasury/tips
payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"data": {
"count": 1,
"list": [
{
"amount": "0",
"beneficiary": {
"account_index": "",
"address": "164tG1eWdbY4HfaUfLp1pPTRRj9Hfj82D24YBQib7crat1QB",
"display": "VAL-1",
"identity": true,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"block_num": 2131734,
"close_block_num": 2131737,
"extrinsic_index": "2131734-1",
"finder": {
"account_index": "",
"address": "1hCMdtRsaRA4ZTEKpPKPvEjK9rZpGhyFnRHSDhqFMCEayRL",
"display": "RTTI-5220 (POLKADOT)",
"identity": true,
"judgements": [
{
"index": 0,
"judgement": "KnownGood"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"hash": "0x8b750b6c5e3ad200506fb0f82caa57a7be7842ae12c32427c98ef23d18409487",
"reason": "Statink on Polkadot with Ledger tutorial: https://youtu.be/-jxJ7jursA4",
"status": "retract",
"tipper_num": 0
}
]
},
"message": "Success",
"generated_at": 1628587129
}
tip
curl -X POST 'https://polkadot.api.subscan.io/api/scan/treasury/tip' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"hash": "0x6bf9d1bd28c5e88693a7b86548d9f05ead2813195f4d4771cd44e2b5ed31d181"
}'
Request URL
POST /api/scan/treasury/tip
payload
Name | Type | Require |
---|---|---|
hash | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1631868080,
"data": {
"info": {
"block_num": 1525546,
"reason": "Supporting Polkadot Ambassador(Hyungsuk) as a community manager in Polkadot Eco-partners' Telegram and Discord Communities",
"hash": "0x6bf9d1bd28c5e88693a7b86548d9f05ead2813195f4d4771cd44e2b5ed31d181",
"extrinsic_index": "1525546-3",
"status": "closed",
"amount": "75000000000",
"close_block_num": 1973069,
"tipper_num": 4,
"finder": {
"address": "16YBdgR2NXVfcgVx8vmGimJMo8CFzULktruh1bTDUnY2Ss6Q",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"beneficiary": {
"address": "16YBdgR2NXVfcgVx8vmGimJMo8CFzULktruh1bTDUnY2Ss6Q",
"display": "Phala Network",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"timeline": [
{
"block": 1525546,
"status": "proposed",
"time": 1599695220,
"prophecy": false,
"index": 4,
"extrinsic_index": "1525546-3",
"params": null
},
{
"block": 1973069,
"status": "closed",
"time": 1602396462,
"prophecy": false,
"index": 4,
"extrinsic_index": "1973069-2",
"params": {
"council_index": 1
}
}
]
}
}
}
seconded
curl -X POST 'https://kusama.api.subscan.io/api/scan/democracy/seconded' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"proposal_id": 58,
"page": 0,
"row": 1
}'
Request URL
POST /api/scan/democracy/seconded
payload
Name | Type | Require |
---|---|---|
proposal_id | int | yes |
page | int | yes |
row | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1647396883,
"data": {
"count": 1,
"list": [
{
"proposal_id": 58,
"block_num": 11574051,
"account": "0294d53df32ffcce69720bff43ef091c4bb98746625ccd872c83020b6e60b92b",
"extrinsic_index": "11574051-3",
"event_index": "11574051-30",
"account_display": {
"address": "CdhpsY3pPg6rCxuHj55jUw7PoCHNLUTWHwWzhW6m58VQmXx",
"display": "Phala Network",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
]
}
}
bounties
curl -X POST 'https://polkadot.api.subscan.io/api/scan/bounties/proposals' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"page": 0,
"row": 1
}'
Request URL
POST /api/scan/bounties/proposals
payload
Name | Type | Require |
---|---|---|
page | int | yes |
row | int | yes |
status | string | no(historical active) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1648790183,
"data": {
"count": 1,
"list": [
{
"proposal_id": 11,
"status": "proposed",
"value": "75000000000000",
"description": "Anti-Scam Bounty",
"proposer": {
"address": "5FnKtu7Tdy2Zcs4VD2TD8TX8JPEwabafWkPv93F8Cu8ewrub",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
]
}
}
bounty info
curl -X POST 'https://polkadot.api.subscan.io/api/scan/bounties/proposal' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"proposal_id": 0
}'
Request URL
POST /api/scan/bounties/proposal
payload
Name | Type | Require |
---|---|---|
proposal_id | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1648790328,
"data": {
"proposal_id": 0,
"status": "claimed",
"created_block": 3093521,
"value": "24457900000000",
"description": "Polkadot Brand Update Immersion Phase",
"beneficiary": {
"address": "5Fk25SLJFnMY6Qn9JnHep6naH8KheFN4zXk2t7AtSK8t7icT",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"proposer": {
"address": "5Fk25SLJFnMY6Qn9JnHep6naH8KheFN4zXk2t7AtSK8t7icT",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"curator": {
"address": "5Hn6TH4yX5N54qV3BGVmfdw33snFkJ3GFqLk2tvsQXQrnnfz",
"display": "",
"judgements": [
{
"index": 0,
"judgement": "FeePaid"
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"curator_deposit": "5000000000",
"curator_fee": "10000000000",
"bond": "10000",
"expire_block": 6534539,
"timeline": [
{
"block": 3109841,
"status": "approved",
"time": 1609246800,
"prophecy": false,
"index": 0,
"extrinsic_index": "3109841-1",
"params": {
"council_index": 50
}
},
{
"block": 6419339,
"status": "awarded",
"time": 1629188760,
"prophecy": false,
"index": 2,
"extrinsic_index": "6419339-1",
"params": null
}
]
}
}
referendumV2 list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/referenda/referendums' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row":10,
"status":"completed"
}'
Request URL
POST /api/scan/referenda/referendums
payload
Name | Type | Require |
---|---|---|
page | int | no |
row | int | yes |
status | string | no(completed active) |
Origins | string | no |
Example Response
status enum
Submitted Decision Confirm Approved ConfirmAborted Rejected Cancelled Timeout Killed Executed ExecutedFailed
{
"code": 0,
"message": "Success",
"generated_at": 1672219941,
"data": {
"count": 2,
"list": [
{
"referendum_index": 1,
"created_block": 15438787,
"created_block_timestamp": "1670615070",
"origins_id": 10,
"origins": "treasurer",
"account": {
"address": "GLVeryFRbg5hEKvQZcAnLvXZEXhiYaBjzSDwrXBXrfPF7wj"
},
"call_module": "",
"call_name": "",
"status": "Rejected",
"latest_block_num": 15684998,
"latest_block_timestamp": 1670615070
},
{
"referendum_index": 0,
"created_block": 15426832,
"origins": "general_admin",
"account": {
"address": "GLVeryFRbg5hEKvQZcAnLvXZEXhiYaBjzSDwrXBXrfPF7wj"
},
"call_module": "System",
"call_name": "remark",
"status": "Rejected",
"latest_block_num": 15682703,
"latest_block_timestamp": 1670598540
}
]
}
}
referendumV2 info
curl -X POST 'https://polkadot.api.subscan.io/api/scan/referenda/referendum' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"referendum_index":0
}'
Request URL
POST /api/scan/referenda/referendum
payload
Name | Type | Require |
---|---|---|
referendum_index | int | yes |
Example Response
timeline.status enum
Submitted Decision ConfirmStarted Confirm Approved ConfirmAborted Rejected Cancelled Timeout Killed Executed ExecutedFailed
{
"code": 0,
"message": "Success",
"generated_at": 1672305439,
"data": {
"referendum_index": 0,
"created_block": 15426832,
"created_block_timestamp": "1670615070",
"origins_id": 3,
"origins": "general_admin",
"account": {
"address": "GLVeryFRbg5hEKvQZcAnLvXZEXhiYaBjzSDwrXBXrfPF7wj"
},
"deposit_balance": "100000000000000",
"decision_deposit_account": {
"address": "GLVeryFRbg5hEKvQZcAnLvXZEXhiYaBjzSDwrXBXrfPF7wj"
},
"decision_deposit_balance": "16666666500000",
"status": "Rejected",
"latest_block_num": 15682703,
"latest_block_timestamp": 1670598540,
"pre_image": {
"hash": "0xb54d0e07521b04f5d3ef54bf3c4cc4c0866b65873b38eafe58d3d754cb08bf89",
"created_block": 15426506,
"updated_block": 0,
"status": "Noted",
"amount": "0",
"call_module": "System",
"call_name": "remark",
"params":"[{\"name\":\"remark\",\"type\":\"Vec\<U8\>\",\"value\":\"Expect chaos.\"}]",
"author": {
"address": "JFArxqV6rqPSwBok3zQDnj5jL6vwsZQDwYXXqb1cFygnYVt"
}
},
"beneficiary": {
"address": "HHK8Yy2gtAUydPGGzotH5mzPe6u1iG8m5nnAxdqb9r99iCU"
},
"beneficiary_amount": "7300000000000",
"ayes_amount": "267410000000",
"ayes_count": 2,
"nays_amount": "0",
"nays_count": 0,
"abstains_count": 0,
"support_amount": "2674100000000",
"timeline": [
{
"block": 15426832,
"status": "Submitted",
"time": 1669046412,
"prophecy": false,
"index": 66,
"extrinsic_index": "",
"params": null
},
{
"block": 15426840,
"status": "Decision",
"time": 1669046460,
"prophecy": false,
"index": 53,
"extrinsic_index": "",
"params": null
},
{
"block": 15682703,
"status": "Rejected",
"time": 1670598540,
"prophecy": false,
"index": 1,
"extrinsic_index": "",
"params": null
}
]
}
}
referendumV2 votes
curl -X POST 'https://polkadot.api.subscan.io/api/scan/referenda/votes' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row":10,
"referendum_index":0
}'
Request URL
POST /api/scan/referenda/votes
payload
Name | Type | Require |
---|---|---|
referendum_index | int | yes |
page | int | no |
row | int | yes |
Example Response
status enum
Ayes Nays Abstains
{
"code": 0,
"message": "Success",
"generated_at": 1672281811,
"data": {
"count": 1,
"list": [
{
"account": {
"address": "D8DtYYJUUBoACJwJrLNyn8aYArumdViVWAcZRUKcxnSoV9D"
},
"amount": "2000000000000",
"status": "Aye",
"extrinsic_index": "15426860-6",
"conviction": "0.1",
"voting_time": 1669046580
}
]
}
}
referendumV2 track
curl -X POST 'https://polkadot.api.subscan.io/api/scan/referenda/tracks' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/referenda/tracks
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1672220221,
"data": {
"0": {
"name": "root",
"current_deciding": 0,
"max_deciding": 1,
"decision_deposit": "3333333333300000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 1800,
"min_approval": {
"Reciprocal": {
"factor": "222222224",
"x_offset": "333333335",
"y_offset": "333333332"
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"1": {
"name": "whitelisted_caller",
"current_deciding": 0,
"max_deciding": 30,
"decision_deposit": "3333333333300000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 100,
"min_enactment_period": 300,
"min_approval": {
"Reciprocal": {
"factor": "270899180",
"x_offset": "389830523",
"y_offset": "305084738"
}
},
"min_support": {
"Reciprocal": {
"factor": "8650766",
"x_offset": "18867926",
"y_offset": "41509433"
}
}
},
"10": {
"name": "staking_admin",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "166666666665000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 28800,
"min_approval": {
"LinearDecreasing": {
"length": 607142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "7892829",
"x_offset": "15544040",
"y_offset": "-7772020"
}
}
},
"11": {
"name": "treasurer",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "166666666665000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 28800,
"min_approval": {
"Reciprocal": {
"factor": "222222224",
"x_offset": "333333335",
"y_offset": "333333332"
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"12": {
"name": "lease_admin",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "166666666665000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 28800,
"min_approval": {
"LinearDecreasing": {
"length": 607142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "7892829",
"x_offset": "15544040",
"y_offset": "-7772020"
}
}
},
"13": {
"name": "fellowship_admin",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "166666666665000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 28800,
"min_approval": {
"LinearDecreasing": {
"length": 607142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "7892829",
"x_offset": "15544040",
"y_offset": "-7772020"
}
}
},
"14": {
"name": "general_admin",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "166666666665000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 28800,
"min_approval": {
"Reciprocal": {
"factor": "222222224",
"x_offset": "333333335",
"y_offset": "333333332"
}
},
"min_support": {
"Reciprocal": {
"factor": "49586777",
"x_offset": "90909091",
"y_offset": "-45454546"
}
}
},
"15": {
"name": "auction_admin",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "166666666665000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 28800,
"min_approval": {
"Reciprocal": {
"factor": "222222224",
"x_offset": "333333335",
"y_offset": "333333332"
}
},
"min_support": {
"Reciprocal": {
"factor": "49586777",
"x_offset": "90909091",
"y_offset": "-45454546"
}
}
},
"20": {
"name": "referendum_canceller",
"current_deciding": 0,
"max_deciding": 1000,
"decision_deposit": "1666666666650000",
"prepare_period": 2400,
"decision_period": 100800,
"confirm_period": 1800,
"min_enactment_period": 100,
"min_approval": {
"LinearDecreasing": {
"length": 607142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "7892829",
"x_offset": "15544040",
"y_offset": "-7772020"
}
}
},
"21": {
"name": "referendum_killer",
"current_deciding": 0,
"max_deciding": 1000,
"decision_deposit": "1666666666650000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 1800,
"min_enactment_period": 100,
"min_approval": {
"LinearDecreasing": {
"length": 607142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "7892829",
"x_offset": "15544040",
"y_offset": "-7772020"
}
}
},
"30": {
"name": "small_tipper",
"current_deciding": 0,
"max_deciding": 200,
"decision_deposit": "166666666665",
"prepare_period": 2400,
"decision_period": 100800,
"confirm_period": 1800,
"min_enactment_period": 14400,
"min_approval": {
"LinearDecreasing": {
"length": 357142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "1620729",
"x_offset": "3231018",
"y_offset": "-1615509"
}
}
},
"31": {
"name": "big_tipper",
"current_deciding": 0,
"max_deciding": 100,
"decision_deposit": "1666666666650",
"prepare_period": 2400,
"decision_period": 100800,
"confirm_period": 3600,
"min_enactment_period": 14400,
"min_approval": {
"LinearDecreasing": {
"length": 357142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "4149097",
"x_offset": "8230453",
"y_offset": "-4115227"
}
}
},
"32": {
"name": "small_spender",
"current_deciding": 0,
"max_deciding": 50,
"decision_deposit": "16666666666500",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 7200,
"min_enactment_period": 14400,
"min_approval": {
"LinearDecreasing": {
"length": 607142857,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "7892829",
"x_offset": "15544040",
"y_offset": "-7772020"
}
}
},
"33": {
"name": "medium_spender",
"current_deciding": 0,
"max_deciding": 20,
"decision_deposit": "49999999999500",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 14400,
"min_enactment_period": 14400,
"min_approval": {
"LinearDecreasing": {
"length": 821428571,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "14377233",
"x_offset": "27972031",
"y_offset": "-13986016"
}
}
},
"34": {
"name": "big_spender",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "166666666665000",
"prepare_period": 2400,
"decision_period": 201600,
"confirm_period": 28800,
"min_enactment_period": 14400,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"Reciprocal": {
"factor": "28326977",
"x_offset": "53763445",
"y_offset": "-26881723"
}
}
}
}
}
referendumV2 statistics
curl -X POST 'https://polkadot.api.subscan.io/api/scan/referenda/statistics' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/referenda/statistics
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1672303761,
"data": {
"referendum_locked": "7908180276500000",
"referendum_participate": "7910854376500000",
"voting_total": 1,
"confirm_total": 0,
"origins": [
{
"ID": 0,
"Origins": "root",
"Count": 1
},
{
"ID": 11,
"Origins": "treasurer",
"Count": 1
},
{
"ID": 14,
"Origins": "general_admin",
"Count": 1
},
{
"ID": 34,
"Origins": "big_spender",
"Count": 1
}
],
"OriginsCount": 4
}
}
fellowship referendum list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/fellowship/referendums' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row":10,
"status":"completed"
}'
Request URL
POST /api/scan/fellowship/referendums
payload
Name | Type | Require |
---|---|---|
page | int | no |
row | int | yes |
status | string | no(completed active) |
Origins | string | no |
Example Response
status enum
Submitted Decision Confirm Approved ConfirmAborted Rejected Cancelled Timeout Killed Executed ExecutedFailed
{
"code": 0,
"message": "Success",
"generated_at": 1672815270,
"data": {
"count": 1,
"list": [
{
"referendum_index": 0,
"created_block": 15598169,
"created_block_timestamp": "1670615070",
"origins_id": 10,
"origins": "fellows",
"account": {
"address": "GcDZZCVPwkPqoWxx8vfLb4Yfpz9yQ1f4XEyqngSH8ygsL9p"
},
"call_module": "",
"call_name": "",
"status": "Approved",
"latest_block_num": 15602369,
"latest_block_timestamp": 1670104026
}
]
}
}
fellowship referendum info
curl -X POST 'https://polkadot.api.subscan.io/api/scan/fellowship/referendum' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"referendum_index":0
}'
Request URL
POST /api/scan/fellowship/referendum
payload
Name | Type | Require |
---|---|---|
referendum_index | int | yes |
Example Response
timeline.status enum
Submitted Decision ConfirmStarted Confirm Approved ConfirmAborted Rejected Cancelled Timeout Killed Executed ExecutedFailed
{
"code": 0,
"message": "Success",
"generated_at": 1672814873,
"data": {
"referendum_index": 0,
"created_block": 15598169,
"created_block_timestamp": "1670615070",
"origins_id": 8,
"origins": "fellows",
"account": {
"address": "GcDZZCVPwkPqoWxx8vfLb4Yfpz9yQ1f4XEyqngSH8ygsL9p"
},
"deposit_balance": "0",
"decision_deposit_account": {
"address": "GLVeryFRbg5hEKvQZcAnLvXZEXhiYaBjzSDwrXBXrfPF7wj"
},
"decision_deposit_balance": "33333333000",
"status": "Approved",
"latest_block_num": 15602369,
"latest_block_timestamp": 1670104026,
"pre_image": {
"hash": "0xb54d0e07521b04f5d3ef54bf3c4cc4c0866b65873b38eafe58d3d754cb08bf89",
"created_block": 15426506,
"updated_block": 0,
"status": "Noted",
"amount": "0",
"call_module": "System",
"call_name": "remark",
"params":"[{\"name\":\"remark\",\"type\":\"Vec\<U8\>\",\"value\":\"Expect chaos.\"}]",
"author": {
"address": "JFArxqV6rqPSwBok3zQDnj5jL6vwsZQDwYXXqb1cFygnYVt"
}
},
"beneficiary": null,
"beneficiary_amount": "",
"ayes_amount": "13",
"ayes_count": 2,
"nays_amount": "0",
"nays_count": 0,
"abstains_count": 0,
"support_amount": "0",
"bare_ayes": "2",
"timeline": [
{
"block": 15598169,
"status": "Submitted",
"time": 1670078742,
"prophecy": false,
"index": 50,
"extrinsic_index": "",
"params": null
},
{
"block": 15598469,
"status": "Decision",
"time": 1670080548,
"prophecy": false,
"index": 0,
"extrinsic_index": "",
"params": null
},
{
"block": 15602069,
"status": "ConfirmStarted",
"time": 1670102214,
"prophecy": false,
"index": 0,
"extrinsic_index": "",
"params": null
},
{
"block": 15602369,
"status": "Confirm",
"time": 1670104026,
"prophecy": false,
"index": 2,
"extrinsic_index": "",
"params": null
}
]
}
}
fellowship referendum votes
curl -X POST 'https://polkadot.api.subscan.io/api/scan/fellowship/votes' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row":10,
"referendum_index":0
}'
Request URL
POST /api/scan/fellowship/votes
payload
Name | Type | Require |
---|---|---|
referendum_index | int | yes |
page | int | no |
row | int | yes |
Example Response
status enum
Ayes Nays
{
"code": 0,
"message": "Success",
"generated_at": 1672815678,
"data": {
"count": 2,
"list": [
{
"account": {
"address": "HL8bEp8YicBdrUmJocCAWVLKUaR2dd1y6jnD934pbre3un1"
},
"amount": "3",
"status": "Ayes",
"extrinsic_index": "15598438-2",
"conviction": "0",
"voting_time": 1670080362
},
{
"account": {
"address": "FcxNWVy5RESDsErjwyZmPCW6Z8Y3fbfLzmou34YZTrbcraL"
},
"amount": "10",
"status": "Ayes",
"extrinsic_index": "15598379-4",
"conviction": "0",
"voting_time": 1670080008
}
]
}
}
fellowship referendum track
curl -X POST 'https://polkadot.api.subscan.io/api/scan/fellowship/tracks' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/fellowship/tracks
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1672814526,
"data": {
"0": {
"name": "candidates",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "3333333333300",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"1": {
"name": "members",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "333333333330",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"2": {
"name": "proficients",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "333333333330",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"3": {
"name": "fellows",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "333333333330",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"4": {
"name": "senior fellows",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "333333333330",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"5": {
"name": "experts",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "33333333333",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"6": {
"name": "senior experts",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "33333333333",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"7": {
"name": "masters",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "33333333333",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"8": {
"name": "senior masters",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "33333333333",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
},
"9": {
"name": "grand masters",
"current_deciding": 0,
"max_deciding": 10,
"decision_deposit": "33333333333",
"prepare_period": 300,
"decision_period": 100800,
"confirm_period": 300,
"min_enactment_period": 10,
"min_approval": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 500000000,
"ceil": 1000000000
}
},
"min_support": {
"LinearDecreasing": {
"length": 1000000000,
"floor": 0,
"ceil": 500000000
}
}
}
}
}
fellowship referendum statistics
curl -X POST 'https://polkadot.api.subscan.io/api/scan/fellowship/statistics' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/fellowship/statistics
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1672815437,
"data": {
"fellowship_members": 45,
"active_fellowship_members": 45,
"voting_total": 0,
"confirm_total": 0,
"origins": [
{
"ID": 0,
"Origins": "candidates",
"Count": 1
},
{
"ID": 3,
"Origins": "fellows",
"Count": 1
}
],
"OriginsCount": 2
}
}
Runtime API
runtime-list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/runtime/list' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
Request URL
POST /api/scan/runtime/list
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"list": [
{
"spec_version": 9230,
"modules": "System|Babe|Timestamp|Indices|Balances|TransactionPayment|Authorship|Offences|Historical|Session|Grandpa|ImOnline|AuthorityDiscovery|ParachainsOrigin|Configuration|ParasShared|ParaInclusion|ParaInherent|ParaScheduler|Paras|Initializer|Dmp|Ump|Hrmp|ParaSessionInfo|ParasDisputes|Registrar|Auctions|Crowdloan|Slots|ParasSudoWrapper|AssignedSlots|Sudo|Mmr|Beefy|MmrLeaf|ValidatorManager|BridgeRococoGrandpa|BridgeWococoGrandpa|BridgeRococoMessages|BridgeWococoMessages|BridgeRococoMessagesDispatch|BridgeWococoMessagesDispatch|Collective|Membership|Utility|Proxy|Multisig|XcmPallet"
},
{
"spec_version": 9220,
"modules": "System|Babe|Timestamp|Indices|Balances|TransactionPayment|Authorship|Offences|Historical|Session|Grandpa|ImOnline|AuthorityDiscovery|ParachainsOrigin|Configuration|ParasShared|ParaInclusion|ParaInherent|ParaScheduler|Paras|Initializer|Dmp|Ump|Hrmp|ParaSessionInfo|ParasDisputes|Registrar|Auctions|Crowdloan|Slots|ParasSudoWrapper|AssignedSlots|Sudo|Mmr|Beefy|MmrLeaf|ValidatorManager|BridgeRococoGrandpa|BridgeWococoGrandpa|BridgeRococoMessages|BridgeWococoMessages|BridgeRococoMessagesDispatch|BridgeWococoMessagesDispatch|Collective|Membership|Utility|Proxy|Multisig|XcmPallet"
},
{
"spec_version": 9190,
"modules": "System|Babe|Timestamp|Indices|Balances|TransactionPayment|Authorship|Offences|Historical|Session|Grandpa|ImOnline|AuthorityDiscovery|ParachainsOrigin|Configuration|ParasShared|ParaInclusion|ParaInherent|ParaScheduler|Paras|Initializer|Dmp|Ump|Hrmp|ParaSessionInfo|ParasDisputes|Registrar|Auctions|Crowdloan|Slots|ParasSudoWrapper|AssignedSlots|Sudo|Mmr|Beefy|MmrLeaf|ValidatorManager|BridgeRococoGrandpa|BridgeWococoGrandpa|BridgeRococoMessages|BridgeWococoMessages|BridgeRococoMessagesDispatch|BridgeWococoMessagesDispatch|Collective|Membership|Utility|Proxy|Multisig|XcmPallet"
}
]
}
}
runtime-info
curl -X POST 'https://polkadot.api.subscan.io/api/scan/runtime/metadata' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"spec": 25
}'
Request URL
POST /api/scan/runtime/metadata
Payload
Name | Type | Require |
---|---|---|
spec | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"info": {
"metadata": [
{
"name": "System",
"prefix": "System",
"storage": [
{
"name": "Account",
"modifier": "Default",
"type": {
"origin": "Map",
"n_map_type": {
"hashers": [
"Blake2_128Concat"
],
"key_vec": [
"[U8; 32]"
],
"value": "frame_system:AccountInfo",
"keys_id": 0,
"value_id": 0
}
},
"fallback": "",
"docs": [
" The full account information for a particular account ID."
]
}
],
"calls": [
{
"lookup": "0000",
"name": "fill_block",
"docs": [
"A dispatch that will fill the block weight up to the given ratio."
],
"args": [
{
"TypeName": "",
"name": "ratio",
"type": "U32",
"type_name": "Perbill"
}
]
}
],
"calls_value": {
"type": 136
},
"events": [
{
"lookup": "0000",
"name": "ExtrinsicSuccess",
"docs": [
"An extrinsic completed successfully."
],
"args": [
"frame_support:weights:DispatchInfo"
],
"args_type_name": [
"DispatchInfo"
]
}
],
"events_value": {
"type": 18
},
"constants": [
{
"name": "DbWeight",
"type": "frame_support:weights:RuntimeDbWeight",
"type_value": 147,
"constants_value": "40787d010000000000e1f50500000000",
"docs": [
" The weight of runtime database operations the runtime can invoke."
]
}
],
"errors": [
{
"name": "InvalidSpecName",
"doc": [
"The name of specification does not match between the current runtime",
"and the new runtime."
]
}
],
"errors_value": {
"type": 152
},
"index": 0
}
]
}
}
}
V2 API
search account
Search by accountId
curl -X POST 'https://polkadot.api.subscan.io/api/v2/scan/search' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"key": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih"
}'
Request URL
POST /api/v2/scan/search
Payload
Name | Type | Require |
---|---|---|
key | string | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1635993577,
"data": {
"account": {
"account_display": {
"account_index": "1Rs7u",
"address": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
"display": "Polkadot.pro - Realgar",
"identity": true,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
},
"merkle":{
"tag_name":"Binance.com",
"tag_subtype":"Mandatory KYC and AML",
"tag_type":"Exchange"
}
},
"substrate_account": {
"address": "WANLfbkr6jWgCNaYJLuePheCsG3VQfsEUZRjHXZNfa8MfYn"
},
"address": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
"balance": "818617.0281089598",
"kton_balance": "",
"ring_lock": "",
"kton_lock": "",
"count_extrinsic": 1,
"derive_token": {
"TOKEN(UNIQUE_ID)": {
"token": "DOT(string)",
"balance": "100000000000",
"locked": "100000000000",
"unique_id": "DOT(string)",
"reserved": "(decimal)",
"bonded": "(decimal)",
"unbonding": "(decimal)"
}
},
"is_erc20": false,
"balance_lock": "589136.1599903102",
"bonded": "5891361599903102",
"bonded_kton": "0",
"democracy_lock": "0",
"display": "Polkadot.pro - Realgar",
"election_lock": "4500000000000000",
"democracy_lock_kton": "0",
"email": "hello@polkadot.pro",
"is_council_member": false,
"is_evm_contract": false,
"is_registrar": false,
"is_techcomm_member": false,
"is_fellowship_member": false,
"is_module_account": false,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"legal": "",
"lock": "589136.1599903102",
"nonce": 130,
"proxy": {
"proxy_account": [
{
"account_display": {
"address": "5D5LmAQdw3SHCmr3tX61uKbHi82XmQmQArqDJ2EerPoruhBn"
},
"proxy_type": "Any"
}
],
"real_account": [
{
"account_display": {
"address": "5FPRKZk6zBNUGQFWw8GXLaYW3cUjfUKR6CiAbP6sHbhF6fgC"
},
"proxy_type": "Any"
}
]
},
"multisig": {
"multi_account_member": [
{
"account_display": {
"address": "5FPRKZk6zBNUGQFWw8GXLaYW3cUjfUKR6CiAbP6sHbhF6fgC"
}
}
],
"threshold": 3,
"multi_account": [
{
"account_display": {
"address": "1FPRKZk6zBNUGQFWw8GXLaYW3cUjfUKR6CiAbP6sHbhF6fgC"
}
}
]
},
"registrar_info": {
"registrar_index": 1,
"registrar_fee": ""
},
"registrar_index": 1,
"registrar_fee": "",
"reserved": "807890000000",
"reserved_kton": "0",
"riot": "@realgar:matrix.org",
"role": "validator",
"staking_info": {
"controller": "1ZMbuCR3QiatxRsQdNnJYgydn3CWV4PELcTzpH4TNoNjxno",
"controller_display": {
"account_index": "1bwSw",
"address": "1ZMbuCR3QiatxRsQdNnJYgydn3CWV4PELcTzpH4TNoNjxno",
"display": "",
"identity": false,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"reward_display": {
"account_index": "",
"address": "",
"display": "",
"identity": true,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"reward_account": "stash"
},
"stash": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
"twitter": "@propolkadot",
"unbonding": "0",
"unbonding_kton": "0",
"vesting": {
"type": "",
"total_locked": "0",
"pallet_schedules": [
{
"locked": "0",
"per_block": "0",
"starting_block": 0
}
],
"orml_schedules": [
{
"start": 0,
"period": 0,
"period_count": 0,
"per_period": "0"
}
]
},
"web": "https://polkadot.pro"
}
}
}
accounts list
Account list
curl -X POST 'https://polkadot.api.subscan.io/api/v2/scan/accounts' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 0
}'
Request URL
POST /api/v2/scan/accounts
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
order | string | no (desc,asc) |
order_field | string | no(balance) |
min_balance | string | no |
max_balance | string | no |
filter | string | no(validator nominator councilMember techcomm registrar system module evm nominationPool proxy proxies multisig multisigMember fellowship onChainIdentity) |
address | array string | no (max:100) |
token_unique_id | string | no |
Response enum - assets_tag: (Dolphin | Whale)
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"count": 3,
"list": [
{
"account_display": {
"account_index": "",
"address": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
"display": "",
"identity": false,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"address": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
"substrate_account": {
"address": "WANLfbkr6jWgCNaYJLuePheCsG3VQfsEUZRjHXZNfa8MfYn"
},
"balance": "779909.2437836391",
"kton_balance": "0",
"balance_lock": "549420.8715579395",
"ring_lock": "0",
"kton_lock": "0",
"count_extrinsic": 10,
"derive_token": {
"string": {
"token": "(string)",
"balance": "(decimal)",
"locked": "(decimal)",
"unique_id": "(string)"
}
},
"is_erc20": false,
"is_evm_contract": false,
"lock": "549420.8715579395",
"fellowship_rank": 1,
"assets_tag": [
"Whale"
],
"registrar_info": {
"registrar_index": 1,
"registrar_fee": ""
}
}
]
}
}
reward-slash-v2
Tip: This API is only available in Polkadot, Kusama, Westend network
curl -X POST 'https://polkadot.api.subscan.io/api/v2/scan/account/reward_slash' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 20,
"page": 0,
"address": "15fTw39Ju2jJiHeGe1fJ5DtgugUauy9tr2HZuiRNFwqnGQ1Q"
}'
Request URL
POST /api/v2/scan/account/reward_slash
Payload
Name | Type | Require | Description |
---|---|---|---|
row | int | yes | |
page | int | yes | |
address | string | yes | |
is_stash | bool | no | |
category | string | no | enum (Reward Slash) |
block_range | string | no | |
claimed_filter | string | no | enum (unclaimed claimed) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1645752773,
"data": {
"count": 468,
"list": [
{
"era": 464,
"stash": "15fTw39Ju2jJiHeGe1fJ5DtgugUauy9tr2HZuiRNFwqnGQ1Q",
"account": "15fTw39Ju2jJiHeGe1fJ5DtgugUauy9tr2HZuiRNFwqnGQ1Q",
"validator_stash": "11MJU5Q1rQh5BKuuECePhSAutv3WEVx6f2x9eZk9HXkCC1e",
"amount": "685508498992",
"block_timestamp": 1631208942,
"event_index": "6755864-222",
"module_id": "staking",
"event_id": "Rewarded",
"slash_kton": "0",
"extrinsic_index": "6755864-1"
}
]
}
}
blocks-v2
Get Block list
curl -X POST 'https://mooonbase.api.subscan.io/api/v2/scan/blocks' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 10,
"page": 0
}'
Request URL
POST /api/v2/scan/blocks
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1648455491,
"data": {
"blocks": [
{
"block_num": 998,
"block_timestamp": 1622067444,
"hash": "0xb9448f974635ff2e83b61bfe696e128e0088c4578f4ebece3e7367fa1324d97d",
"event_count": 0,
"extrinsics_count": 3,
"finalized": true,
"account_display": {
"address": "0x623c9e50647a049f92090fe55e22cc0509872fb6",
"account_index": "",
"display": "",
"identity": false,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
],
"count": 998
}
}
extrinsics-v2
Extrinsic list
curl -X POST 'https://mooonbase.api.subscan.io/api/v2/scan/extrinsics' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 1,
"page": 1
}'
Request URL
POST /api/v2/scan/extrinsics
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
signed | string | no |
address | string | no |
module | string | no |
call | string | no |
block_num | int | no |
block_range | string | no |
success | bool | no |
after_id | int | no |
order | string | no(desc or asc) |
tip: For performance & security considerations, only the first 10000 results can use row & page. If you need to get
more data, you can use after_id
, params after_id
is the last record id
.
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1648456020,
"data": {
"count": 189,
"extrinsics": [
{
"id": 334035000001,
"block_num": 3340350,
"block_timestamp": 1594791900,
"extrinsic_index": "3340350-1",
"call_module_function": "transfer",
"call_module": "balances",
"nonce": 0,
"extrinsic_hash": "0x368f61800f8645f67d59baf0602b236ff47952097dcaef3aa026b50ddc8dcea0",
"success": true,
"fee": "0",
"fee_used": "0",
"finalized": true,
"account_display": {
"address": "5GNqxpgs8WeBPGKaZtdqVLbDr77az2n8rAmJAWcdjgwLgZXZ",
"display": "",
"account_index": "",
"identity": false,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
]
}
}
events-v2
Event list
curl -X POST 'https://mooonbase.api.subscan.io/api/v2/scan/events' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 10,
"page": 1
}'
Request URL
POST /api/v2/scan/events
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
module | string | no |
event_id | string | no |
block_num | int | no |
extrinsic_index | string | no |
block_range | string | no |
finalized | bool | no |
phase | int | no(enum 0, 1, 2) |
address | string | no(accountId) |
after_id | int | no |
order | string | no(desc or asc) |
tip: For performance & security considerations, only the first 10000 results can use row & page. If you need to get
more data, you can use after_id
, params after_id
is the last record id
.
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1648456900,
"data": {
"count": 8,
"events": [
{
"id": "700002",
"block_timestamp": 1622055540,
"event_index": "7-2",
"extrinsic_index": "7-2",
"phase": 0,
"module_id": "imonline",
"event_id": "HeartbeatReceived",
"extrinsic_hash": "",
"finalized": true
}
]
}
}
logs-v2
Logs list
curl -X POST 'https://crab.api.subscan.io/api/v2/scan/logs' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 100,
"page": 0,
"engine": "BABE",
"type": "PreRuntime",
"block_range": "421396-421396"
}'
Request URL
POST /api/v2/scan/logs
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
engine | string | no |
type | string | no |
block_range | string | no |
block_num | int | no |
after_id | int | no |
tip: For performance & security considerations, only the first 10000 results can use row & page. If you need to get
more data, you can use after_id
, params after_id
is the last record id
.
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1633769920,
"data": {
"count": 1,
"logs": [
{
"id": "42139600000",
"block_num": 421396,
"log_index": "421396-0",
"log_type": "PreRuntime",
"engine": "BABE",
"data": "{\"data\":\"0x02010000003b91cf0f00000000\",\"engine\":\"BABE\"}"
}
]
}
}
transfers-v2
Transfer list
curl -X POST 'https://crab.api.subscan.io/api/v2/scan/transfers' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row": 10,
"page": 1
}'
Request URL
POST /api/v2/scan/transfers
Payload
Name | Type | Require |
---|---|---|
row | int | yes |
page | int | yes |
address | string | no |
extrinsic_index | string | no |
block_range | string | no |
direction | string | yes(all sent received) |
min_amount | string | no |
max_amount | string | no |
currency | string | no (token usd) |
success | bool | no |
asset_symbol | string | no |
asset_unique_id | string | no |
after_id | array int | no |
tip: For performance & security considerations, only the first 10000 results can use row & page. If you need to get
more data, you can use after_id
, params after_id
is the last record block_num
&& event_idx
. For example: You can
use [3783422,2]
to get the data after block num is 3783422 and event_idx is 2
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1648457279,
"data": {
"count": 1,
"transfers": [
{
"from": "5EYCAe5gKAhHPwdktrtmXoAX8GfSVTkq2iBTWfpfoEnQxe6p",
"to": "5DyvrUL2kECZN75ExmfVK3dSEQkMnme5pW2iSDeAU9srcSoL",
"extrinsic_index": "3783422-2",
"event_idx": 2,
"success": true,
"hash": "",
"block_num": 3783422,
"block_timestamp": 1612150386,
"module": "balances",
"amount": "10653090.125505578",
"amount_v2": "0",
"fee": "0",
"nonce": 0,
"asset_symbol": "CRAB",
"asset_type": "",
"asset_unique_id": "CRAB",
"from_account_display": {
"address": "5EYCAe5gKAhHPwdktrtmXoAX8GfSVTkq2iBTWfpfoEnQxe6p",
"display": "modlda/claim",
"account_index": "",
"identity": false,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
},
"to_account_display": {
"address": "5DyvrUL2kECZN75ExmfVK3dSEQkMnme5pW2iSDeAU9srcSoL",
"display": "",
"account_index": "",
"identity": false,
"judgements": [
{
"index": 1,
"judgement": "Reasonable"
}
],
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": true
}
}
}
]
}
}
transactions-v2
Get evm transaction list
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/v2/transactions' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"block_num": 5226287
}'
Request URL
POST /api/scan/evm/v2/transactions
Payload
Name | Type | Require |
---|---|---|
page | int | no |
row | int | no |
block_num | int | no |
contract | string | no |
address | string | no(signer, evm address) |
block_range | string | no |
after_id | int | no |
tip: For performance & security considerations, only the first 10000 results can use row & page. If you need to get
more data, you can use after_id
, params after_id
is the last record extrinsic_id
.
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1668743513,
"data": {
"count": 1,
"list": [
{
"hash": "0x3b9c2b978a72b1f4b220c0640ada12bcb894cf692a0e7a1faca33f0acb7d6fde",
"from": "0xa1511e5c683a007056caa1d9a8d6a37464826280",
"to": "0x7139e2b08d58987a4327b11fec388536cc65d37a",
"value": "0",
"gas_price": "1000000000",
"gas_used": "0",
"success": true,
"block_timestamp": 1620872100,
"extrinsic_id": 522628700001,
"contract": "",
"method": "0xbe45fd62",
"effective_gas_price": "1000000000"
}
]
}
}
daily-v2
Statistics by time
curl -X POST 'https://polkadot.api.subscan.io/api/v2/scan/daily' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"start": "2020-07-03",
"end": "2020-07-04",
"format": "day",
"category": "transfer"
}'
}'
}'
Request URL
POST /api/v2/scan/daily
Payload
Name | Type | Require |
---|---|---|
start | Date(2019-07-04) | yes |
end | Date(2019-07-04) | yes |
format | string | yes(day hour 6hour) |
category | string | yes(transfer extrinsic NewAccount ActiveAccount Treasury TreasurySpend Unbond UnbondKton Fee Bonded BondedKton AvgBlockTime AccountHolderTotal) |
Example Response
{
"code": 0,
"data": {
"list": [
{
"time_utc": "2020-07-03T00:00:00Z",
"total": "65",
"transfer_amount": "6764435.1"
},
{
"time_utc": "2020-07-04T00:00:00Z",
"total": "0",
"transfer_amount": "0"
}
]
},
"message": "Success",
"generated_at": 1628587129
}
tracing states list v2
Get tracing states list
curl -X POST 'https://polkadot.api.subscan.io/api/scan/v2/tracing/states' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"row":1
}'
Request URL
POST /api/scan/v2/tracing/states
Payload
Name | Type | Require |
---|---|---|
page | int | no |
row | int | yes |
module | string | no |
name | string | no |
key_param | string | no |
keys | array string | no |
block_num | int | no |
extrinsic_index | string | no(*,-,extrinsic_index) |
block_range | string | no |
focus | string | no |
summary | bool | no |
sort | string | no(asc, desc) |
after_id | int | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1679984608,
"data": {
"count": 1314,
"tracing": [
{
"id": 2200060,
"block_num": 22,
"block_timestamp": 1586278770,
"trace_id": "22-60(string)",
"extrinsic_id": "(string)",
"phase": 1,
"method": "Put(string)",
"key": "26aa394eea5630e07c48ae0c9558cef7b06c3320c6ac196d813442e270868d63",
"key_params": ["(string)"],
"module": "System(string)",
"name": "ExtrinsicsRoot(string)",
"unset_value": true,
"value": "(string)",
"parsed_value": "(json string)"
}
]
}
}
tracing state v2
Get tracing state info
curl -X POST 'https://polkadot.api.subscan.io/api/scan/v2/tracing/state' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"trace_id": "22-49"
}'
Request URL
POST /api/scan/v2/tracing/state
Payload
Name | Type | Require |
---|---|---|
trace_id | string | yes |
up_change | bool | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1679985961,
"data": {
"id": 2200049,
"block_num": 22,
"block_timestamp": 1586278770,
"trace_id": "22-49",
"extrinsic_id": "",
"phase": 1,
"method": "Put",
"key": "3f1467a096bcd71a5b6a0c8155e208103f2edf3bdf381debe331ab7446addfdc",
"key_params": null,
"module": "TransactionPayment",
"name": "NextFeeMultiplier",
"unset_value": false,
"value": "0x95a8fcffffffffff",
"parsed_value": "18446744073709332629"
}
}
ParaChain API (beta)
meta
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/meta' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
--data-raw '{
}'
Request URL
POST /api/scan/parachain/meta
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"auction_count": 0,
"auction_active": false,
"online_count": 31,
"upcoming_count": 12,
"lease_period": 0,
"lease_offset": 0,
"ending_period": 0,
"retirement_period": 0,
"lease_periods_per_slot": 0,
"total_slot_num": 100
}
}
proposals
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/proposals' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
--data-raw '{
"status": 3
}'
Request URL
POST /api/scan/parachain/proposals
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
status | int | no | 0 | Enum(1:Proposal|2:Upcoming|3:Online) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"chains": [
{
"para_id": 12623,
"name": "KILT PC1"
}
],
"count": 1
}
}
auctions
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/auctions' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"page": 0,
"row": 2
}'
Request URL
POST /api/scan/parachain/auctions
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
auction_index | int | no | 0 | |
status | int | no | 0 | Enum(1:Started|2:Closed) |
row | int | yes | ||
page | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"auctions": [
{
"auction_index": 1,
"lease_index": 13,
"start_block": 4171,
"early_end_block": 4221,
"end_block": 4271,
"extinguish_block": 4226,
"status": 2,
"winners": [
{
"bid_id": "1-14-14",
"fund_id": "100-1",
"auction_index": 1,
"first_period": 14,
"last_period": 14,
"para_id": 100,
"bidder_account": "13UVJyLnbVp77Z2t6r2dFKqddAo3cATaBG6YMuEsWbbmFnpb",
"bidder_account_display": {
"address": "13UVJyLnbVp77Z2t6r2dFKqddAo3cATaBG6YMuEsWbbmFnpb",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"bid_count": 0,
"amount": "160000000000000",
"source": 2,
"status": 2,
"block_num": 4221,
"block_timestamp": 1618484502,
"extrinsic_index": "4221-0",
"event_index": "4221-2"
},
{
"bid_id": "1-15-16",
"fund_id": "",
"auction_index": 1,
"first_period": 15,
"last_period": 16,
"para_id": 200,
"bidder_account": "14E5nqKAp3oAJcmzgZhUD2RcptBeUBScxKHgJKU4HPNcKVf3",
"bidder_account_display": {
"address": "14E5nqKAp3oAJcmzgZhUD2RcptBeUBScxKHgJKU4HPNcKVf3",
"display": "",
"judgements": null,
"account_index": "",
"identity": false,
"parent": null
},
"bid_count": 0,
"amount": "10000000000000",
"source": 1,
"status": 2,
"block_num": 4184,
"block_timestamp": 1618484274,
"extrinsic_index": "4184-3",
"event_index": "4184-9"
}
]
}
],
"count": 1
}
}
bids
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/bids' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"page": 0,
"row": 1
}'
Request URL
POST /api/scan/parachain/bids
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
auction_index | int | no | 0 | |
bid_id | string | no | ||
fund_id | string | no | ||
para_id | int | no | 0 | |
from_block | int | no | 0 | start blockNum of range query |
to_block | int | no | 0 | end blockNum of range query |
status | int | no | 0 | Enum(1:Accepted|2:Leased|3:Renewal) |
source | int | no | 0 | Enum(1:Slot|2:Crowdloan) |
from_history | bool | no | false | |
bidder | string | no | ||
row | int | yes | ||
page | int | yes | ||
order | string | no | block_num desc | |
bidder | string | no | ||
first_period | int | no | first period | |
last_period | int | no | last period |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"bids": [
{
"bid_id": "1-13-14",
"fund_id": "",
"auction_index": 1,
"first_period": 13,
"last_period": 14,
"para_id": 300,
"bidder_account": "14Gjs1TD93gnwEBfDMHoCgsuf1s2TVKUP6Z1qKmAZnZ8cW5q",
"bidder_account_display": {
"address": "14Gjs1TD93gnwEBfDMHoCgsuf1s2TVKUP6Z1qKmAZnZ8cW5q",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"bid_count": 2,
"amount": "20000000000000",
"source": 1,
"status": 3,
"block_num": 4224,
"block_timestamp": 1618484520,
"extrinsic_index": "4224-2",
"event_index": "4224-4"
}
],
"count": 1
}
}
funds
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/funds' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"page": 0,
"row": 2
}'
Request URL
POST /api/scan/parachain/funds
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
fund_id | string | no | ||
bid_id | string | no | ||
auction_index | int | no | 0 | |
para_id | int | no | 0 | |
para_ids | array int | no | [] | |
from_block | int | no | 0 | start blockNum of range query |
to_block | int | no | 0 | end blockNum of range query |
status | int | no | 0 | Enum(1:Created|2:Leased|3:Ended|4:Dissolved) |
statuses | array int | no | [] | Enum(1:Created|2:Leased|3:Ended|4:Dissolved) |
from_history | bool | no | false | |
from_history | bool | no | false | |
owner | string | no | ||
page | int | yes | ||
order | string | no | last_change_block desc | |
progress | bool | no | Filtering in progress crowdloan | |
first_period | int | no | first period | |
last_period | int | no | last period |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"count": 1,
"funds": [
{
"fund_id": "100-1",
"bid_id": "1-14-14",
"para_id": 100,
"first_period": 14,
"last_period": 14,
"auction_index": 1,
"owner": "15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5",
"cap": "1000000000000000",
"end_block": 4250,
"raised": "160000000000000",
"balance": "160000000000000",
"status": 2,
"start_block": 4207,
"start_block_at": 1618484418,
"last_change_block": 4213,
"last_change_timestamp": 1618484454,
"extrinsic_index": "4207-3",
"owner_display": {
"address": "15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
}
}
]
}
}
fund contributes
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/contributes' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"page": 0,
"row": 2
}'
Request URL
POST /api/scan/parachain/contributes
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
fund_id | string | no | ||
para_id | int | no | 0 | |
row | int | yes | ||
page | int | yes | ||
order | string | no | block_num desc | |
who | string | no | filter by contributor | |
from_history | bool | no | false |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"contributes": [
{
"fund_id": "100-1",
"para_id": 100,
"who": "14E5nqKAp3oAJcmzgZhUD2RcptBeUBScxKHgJKU4HPNcKVf3",
"who_display": {
"address": "14E5nqKAp3oAJcmzgZhUD2RcptBeUBScxKHgJKU4HPNcKVf3",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"contributed": "50000000000000",
"contributing": "1",
"block_num": 4213,
"block_timestamp": 1618484454,
"extrinsic_index": "4213-2",
"event_index": "",
"status": 1,
"memo": ""
}
],
"count": 1
}
}
fund timeline
curl -X POST 'https://polkadot.api.subscan.io/api/scan/parachain/fund_timeline' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"fund_id": "2032-15",
"order": "desc"
}'
Request URL
POST /api/scan/parachain/fund_timeline
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
fund_id | string | no | ||
order | string | no(desc, asc) | desc |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1657182543,
"data": {
"count": 1,
"list": [
{
"fund_id": "2032-15",
"block_num": 8123870,
"block_timestamp": 1639446774,
"event_index": "8123870-19",
"extrinsic_index": "8123870-4",
"module_name": "crowdloan",
"event_name": "Created"
}
]
}
}
chain info
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/info' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"page": 0,
"row": 2
}'
Request URL
POST /api/scan/parachain/info
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
para_id | int | no | 0 | |
status | string | no | 0 | Enum(Onboarding|Parathread|Parachain) |
filter_anonymous | bool | no | false | |
row | int | yes | ||
page | int | yes | ||
order | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"chains": [
{
"para_id": 200,
"status": "Parathread",
"genesis_head": "000000000000000000000000000000000000000000000000000000000000000000a31c4ddd6b9dc3505d91f71c40edd4bef3d96c71b5de17be07912d5c21f4ced603170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c11131400",
"validation_code_url": "",
"manager": "",
"deposit": "0",
"validators": ["",""],
"source": 1,
"bid_id": "1-14-14",
"begin_period": 14,
"first_period": 15,
"last_period": 16,
"auction_index": 1,
"reserved_extrinsic_index": "",
"manager_display": {
"address": "",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"validators_display": [
{
"address": "",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
}
],
"fund_id": "",
"fund_account": "",
"fund_account_display": {
"address": "",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
}
}
],
"count": 1
}
}
auction prediction
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/predict' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
--data-raw '{
}'
Request URL
POST /api/scan/parachain/predict
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
auction_index | int | no | 0 |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": [
{
"bid_id": "1-14-14",
"fund_id": "100-1",
"auction_index": 1,
"first_period": 14,
"last_period": 14,
"para_id": 100,
"bidder_account": "13UVJyLnbVp77Z2t6r2dFKqddAo3cATaBG6YMuEsWbbmFnpb",
"bidder_account_display": {
"address": "13UVJyLnbVp77Z2t6r2dFKqddAo3cATaBG6YMuEsWbbmFnpb",
"display": "modlpy/cfundd",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"bid_count": 1,
"amount": "160000000000000",
"source": 2,
"status": 2,
"block_num": 4221,
"block_timestamp": 1618484502,
"extrinsic_index": "4221-0",
"event_index": "4221-2"
}
]
}
parachain list
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/list' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"page": 0,
"row": 2
}'
Request URL
POST /api/scan/parachain/list
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
status | string | no | 0 | Enum(Onboarding|Parathread|Parachain) |
filter_anonymous | bool | no | false | |
row | int | yes | ||
page | int | yes | ||
order | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"chains": [
{
"para_id": 1983,
"status": "Parachain",
"begin_period": 11,
"first_period": 12,
"last_period": 13,
"manager_display": {
"address": "5F2FJzwc8Ch6L5zejKh43DqXXCU3qSxeN8WTd3e3AwTfbCDe",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"reserved_extrinsic_index": "",
"fund_id": ""
"bid_id": "10-11-13"
}
],
"count": 9
}
}
auction competitors
curl -X POST 'https://rococo.api.subscan.io/api/scan/parachain/auctionCompetitors' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
--data-raw '{
}'
Request URL
POST /api/scan/parachain/auctionCompetitors
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
auction_index | int | no | 0 | |
includingFund | bool | no | false |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"1-1": [
{
"bid_id": "1-1-1",
"fund_id": "200-0",
"auction_index": 1,
"first_period": 1,
"last_period": 1,
"para_id": 200,
"bidder_account": "5EYCAe5ijiYdg22N9DSmHqUHxzP9hD2ufuM1Gtw5D43829Z8",
"bidder_account_display": {
"address": "5EYCAe5ijiYdg22N9DSmHqUHxzP9hD2ufuM1Gtw5D43829Z8",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"bid_count": 0,
"amount": "25000000000000",
"source": 2,
"status": 2,
"block_num": 150,
"block_timestamp": 1619058966,
"extrinsic_index": "150-0",
"event_index": "150-4"
}
]
}
}
auction leading blocks
curl -X POST 'https://polkadot.api.subscan.io/api/scan/parachain/auction_leading_blocks' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{"auction_id": 21}'
Request URL
POST /api/scan/parachain/auction_leading_blocks
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
auction_id | int | true |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1657851930,
"data": [{
"bid_id": "21-9-16",
"para_id": 2046,
"fund_id": "",
"leading_blocks": 31575
},
{
"bid_id": "21-9-16",
"para_id": 2044,
"fund_id": "",
"leading_blocks": 11820
},
{
"bid_id": "21-9-16",
"para_id": 2045,
"fund_id": "",
"leading_blocks": 10608
},
{
"bid_id": "21-9-16",
"para_id": 2048,
"fund_id": "",
"leading_blocks": 5649
},
{
"bid_id": "21-9-16",
"para_id": 2003,
"fund_id": "",
"leading_blocks": 3559
}
]
}
para fund Stat
curl -X POST 'https://kusama.api.subscan.io/api/scan/parachain/fundStat' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
--data-raw '{"start":"2021-06-10","end":"2021-06-30","format":"hour","fund_id":"2004-6"}'
Request URL
POST /api/scan/parachain/fundStat
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
start | bool | Yes | start time(eq:2021-06-10) | |
end | string | Yes | end time(eq:2021-06-30) | |
format | bool | No | day | hour,day,6hour |
fund_id | bool | Yes | fund id(eq:2004-6 ) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"list": [
{
"time_utc": "2021-06-10T00:00:00Z",
"time_hour_utc": "2021-06-10T00:00:00Z",
"time_six_hour_utc": "2021-06-10T00:00:00Z",
"total": "0"
}
]
}
}
best bid
curl -X POST 'https://kusama.api.subscan.io/api/scan/parachain/bestBid' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY'
--data-raw '{"bid_id":"1-13-20"}'
Request URL
POST /api/scan/parachain/bestBid
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
bid_id | string | Yes | no | bid id |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"bid_id": "1-13-20",
"fund_id": "2000-1",
"auction_index": 1,
"first_period": 13,
"last_period": 20,
"para_id": 2000,
"bidder_account": "6d6f646c70792f6366756e64d007000000000000000000000000000000000000",
"bidder_account_display": {
"address": "5EYCAe5ijiYdg22N9DSmHqUHxzP9hD2ufuM1Gtw5D43829Z8",
"display": "",
"judgements": [
{
"index": 1,
"judgement": ""
}
],
"account_index": "",
"identity": false,
"parent": {
"address": "",
"display": "",
"sub_symbol": "",
"identity": false
}
},
"bid_count": 0,
"amount": "491752906100722948",
"source": 2,
"status": 3,
"block_num": 8004479,
"block_timestamp": 1624237734,
"extrinsic_index": "8004479-0",
"event_index": "8004479-2"
}
}
account contributions
curl -X POST 'https://kusama.api.subscan.io/api/scan/account/contributions' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"who": "HxphiPhPEbXaqbjbbUDGdUtLLGq3dV3b4ETTFFqAWbEsttP",
"row": 100,
"page": 0,
"include_total"
}'
Request URL
POST /api/scan/account/contributions
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
who | string | yes | account address | |
row | int | yes | ||
page | int | yes | ||
include_total | bool | no | no | include total |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655277267,
"data": {
"count": 1,
"list": [{
"fund_id": "2012-53",
"para_id": 2012,
"contributed": "200000000000000",
"block_num": 10573992,
"block_timestamp": 1639830408,
"extrinsic_index": "10573992-2",
"event_index": "10573992-19",
"status": 1,
"memo": "",
"fund_status": 2,
"fund_event_index": "10683439-25",
"unlocking_block": 15725400,
"fund_auction_status": 2
}],
"total": "4715000000000000"
}
}
collators meta
curl -X POST 'https://astar.api.subscan.io/api/scan/collator/meta'
Request URL
POST /api/scan/collator/meta
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1656556504,
"data": {
"desired_candidates": 47,
"invulnerables": 27,
"candidates": 37,
"candidates_total_bond": "0",
"candidacy_bond": "3200000000000000000000000"
}
}
collators list
curl -X POST 'https://astar.api.subscan.io/api/scan/collator/list' \
--header 'Content-Type: application/json' \
--data-raw '{
"row": 3,
"page": 0
}'
Request URL
POST /api/scan/collator/list
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
row | int | yes | ||
page | int | yes | ||
account | string | no | account address | |
status | int | no(0:ALL 1:Invulnerable 2:Candidate) | 0 | |
include_total | bool | no | no | include total |
order | string | no(desc,asc) | ||
order_field | string | no(account,bond,last_change_block,last_authored_block) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1656553024,
"data": {
"count": 64,
"list": [{
"status": 2,
"account_display": {
"address": "VxHuVq48qM8STAEm8G8P2VzRQL6RuEix5jqbfxDXp6rtgrs"
},
"bond": "3200000000000000000000000",
"last_change_block": 1322117,
"last_authored_block": 1366217
}, {
"status": 2,
"account_display": {
"address": "W3K8VwY4qqmAUAa3jB5Pbq5Q9zkTgGfdrh6vwyh63BohKX2"
},
"bond": "3200000000000000000000000",
"last_change_block": 1322117,
"last_authored_block": 1366218
}, {
"status": 2,
"account_display": {
"address": "W8PzksJcA1Ag82GNvuxT6Ejp4KXqQexNXqysJyuxSvHSmH9"
},
"bond": "3200000000000000000000000",
"last_change_block": 1322117,
"last_authored_block": 1366219
}]
}
}
collator info
curl -X POST 'https://astar.api.subscan.io/api/scan/collator/info' \
--header 'Content-Type: application/json' \
--data-raw '{
"account": "VxHuVq48qM8STAEm8G8P2VzRQL6RuEix5jqbfxDXp6rtgrs",
}'
Request URL
POST /api/scan/collator/info
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
account | string | yes | account address |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1656558754,
"data": {
"status": 2,
"account_display": {
"address": "VxHuVq48qM8STAEm8G8P2VzRQL6RuEix5jqbfxDXp6rtgrs"
},
"bond": "3200000000000000000000000",
"last_change_block": 1322117,
"last_authored_block": 1366217
}
}
parachain timeline
curl -X POST 'https://polkadot.api.subscan.io/api/scan/parachain/timeline' \
--header 'Content-Type: application/json' \
--data-raw '{
"para_id": 2007,
"order": "asc"
}'
Request URL
POST /api/scan/parachain/timeline
Payload
Parameter | Type | Require | Default | Description |
---|---|---|---|---|
para_id | int | yes | parachain id | |
order | string | no(asc,desc) | desc |
Statuses
Module | Status | Extra Params |
---|---|---|
registrar | registered | |
registrar | reserved | |
registrar | deregistered | |
crowdloan | created | fund_id |
crowdloan | partially_refunded | fund_id |
crowdloan | all_refunded | fund_id |
crowdloan | dissolved | fund_id |
crowdloan | edited | fund_id |
auction | participated | auction_id |
auction | won | auction_id |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1658303867,
"data": {
"count": 2,
"list": [{
"para_id": 2007,
"block_num": 10809400,
"block_timestamp": 111,
"event_index": "10809400-2",
"extrinsic_index": "10809400-0",
"module": "auctions",
"status": "participated",
"params": {
"auction_id": 20
}
},
{
"para_id": 2007,
"block_num": 10882495,
"block_timestamp": 111,
"event_index": "10882495-8",
"extrinsic_index": "10882495-0",
"module": "auctions",
"status": "won",
"params": {
"auction_id": 20
}
}
]
}
}
EVM API
Tip: Evm API is only available in the network supports evm and ethereum pallet(like Moonbeam, Astar)
evm block
Get evm display block by blockNum
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/block' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"block_num": 5012287
}'
Request URL
POST /api/scan/evm/block
Payload
Name | Type | Require |
---|---|---|
block_num | int | yes |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"block_num": 5012287,
"block_hash": "0x2d1be5d00b303366b59a4b9cf930852137802297a470ec691add3aee8001427a",
"parent_hash": "0x07ddfee38a95dac16a195eb18a5e97f788f8897470d5337c671c770665fe8211",
"sha3_uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"author": "0x68d9882f0c95f1443966a87d90e6d7dc069a70a6",
"miner": "0x68d9882f0c95f1443966a87d90e6d7dc069a70a6",
"state_root": "0xd9a1f04aba02a4ca1b0bec92b8c12c435dfcb3b4222790f6f555f382fe249af1",
"transactions_root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"receipts_root": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"gas_used": "0",
"gas_limit": "4294967295",
"extra_data": "0x",
"logs_bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"timestamp": 1619580384,
"difficulty": "0",
"total_difficulty": "0",
"seal_fields": "[\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"0x0000000000000000\"]",
"uncles": "[]",
"block_size": "514",
"transaction_count": 0
}
}
transactions
Get evm transaction list
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/transactions' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"block_num": 5226287
}'
Request URL
POST /api/scan/evm/transactions
Payload
Name | Type | Require |
---|---|---|
block_num | int | no |
contract | string | no |
address | string | no(signer, evm address) |
page | int | no |
row | int | no |
block_range | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1655187389,
"data": {
"count": 1,
"list": [
{
"hash": "0xa47532a4508c18c79ab9954d2f0492c62e8b7452edee02f07818484cf944efab",
"from": "0x85297fb4c4006565aac113cd2f3f510ec8cc49cc",
"to": "0x68068501b1b27d0de067e2433c0554f2b9a52bfa",
"value": "0",
"gas_used": "56715",
"success": true,
"gas_price": "1000000000",
"block_timestamp": 1620872100,
"extrinsic_id": 522628700001,
"contract": "0x3b53d2c7b44d40be05fa5e2309ffeb6eb2492d88",
"contract_name": "",
"effective_gas_price": "1000000000"
}
]
}
}
account evm tokens
Get evm tokens by account address
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/account/tokens' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "0x3217f36ae34aca2ce60d218af8f47d29101204a8"
}'
Request URL
POST /api/scan/evm/account/tokens
Payload
Name | Type | Require |
---|---|---|
address | string | yes(evm address) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": [
{
"contract": "0x7139e2b08d58987a4327b11fec388536cc65d37a",
"holder": "0xbb3e51d20ca651fbe19b1a1c2a6c8b1a4d950437",
"balance": "9999000000000000000000"
}
]
}
erc20 tokens
Get evm tokens info by contract address
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/tokens' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"contracts": ["0x7139e2b08d58987a4327b11fec388536cc65d37a"]
}'
Request URL
POST /api/scan/evm/tokens
Payload
Name | Type | Require |
---|---|---|
contracts | array | no(evm address) |
page | int | no |
row | int | no |
search | string | no (erc20 symbol or name) |
category | string | no (erc20 or erc721) |
order | string | no (desc or asc) |
order_field | string | no (holders or transfer_count or symbol) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1642990882,
"data": {
"count": 1,
"list": [
{
"contract": "0x8eb2281bbd90ea671c9f6cb1e51102b7fe3d480e",
"name": "Apostle",
"symbol": "APO",
"decimals": 0,
"totalSupply": "2100000000000000",
"holders": 76,
"transfer_count": 930,
"price": "0",
"category": "erc20"
}
]
}
}
transaction
Get evm transaction
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/transaction' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"hash": "0x3b9c2b978a72b1f4b220c0640ada12bcb894cf692a0e7a1faca33f0acb7d6fde"
}'
Request URL
POST /api/scan/evm/transaction
Payload
Name | Type | Require |
---|---|---|
hash | string | no |
extrinsic_index | string | no |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": {
"block_num": 5145082,
"hash": "0x97c3163c0e4779cd14f4068bc55f8cdb8fa19469fd9af388e426211607b6c7b6",
"block_timestamp": 1620383694,
"success": true,
"error_type": "",
"error_msg": "Returned",
"trace_error_msg": "transaction error message",
"from": "0xbb3e51d20ca651fbe19b1a1c2a6c8b1a4d950437",
"to": {
"address": "0xd6fc3e187da47e33774b25c3d0adc619032bf686",
"is_contract": true,
"precompile_name": ""
},
"contract": "0xd6fc3e187da47e33774b25c3d0adc619032bf686",
"value": "1000000000000000000",
"gas_limit": "3000000",
"gas_price": "1000000000",
"gas_used": "0",
"nonce": 18,
"input_data": "f305d7190000000000000000000000000eae9babe944105dd3e0d81c24ef1f6f63d463c70000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000bb3e51d20ca651fbe19b1a1c2a6c8b1a4d9504370000000000000000000000000000000000000000000000000000000060953eb4",
"token_transfers": [
{
"contract": "0x0eae9babe944105dd3e0d81c24ef1f6f63d463c7",
"hash": "0x97c3163c0e4779cd14f4068bc55f8cdb8fa19469fd9af388e426211607b6c7b6",
"create_at": 1620383694,
"from": "0xbb3e51d20ca651fbe19b1a1c2a6c8b1a4d950437",
"to": "0x6b0e1c0c971b998593fb9b5abd17b5ed9b0c4f8f",
"value": "10000000000000000000",
"receipt_index": "0x97c3163c0e4779cd14f4068bc55f8cdb8fa19469fd9af388e426211607b6c7b6-0",
"token_id": "",
"event_idx": 0
}
],
"r": "0x25c5d6cf624a498e2451849708087baa8cc3c2088ba98e8afdf35bae0428f46a",
"s": "0x33cbdfdcdf38714733acf7703dd57b14295a6785d99978149acfc5267a51b3f8",
"v": 124,
"effective_gas_price": "1000000000"
}
}
contracts
Get contracts by contract address
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/contracts' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"contracts": ["0x7139e2b08d58987a4327b11fec388536cc65d37a"]
}'
Request URL
POST /api/scan/evm/contracts
Payload
Name | Type | Require |
---|---|---|
contracts | array | yes(evm address) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1628587129,
"data": [
{
"address": "0x02c1de58fc5cd6e97385d6234fe6d95856fa1cc1",
"deployer": "0x0f14341a7f464320319025540e8fe48ad0fe5aec",
"block_num": 4998447,
"deploy_at": 1619496876,
"verify_status": "",
"verify_time": 0,
"contract_name": "",
"method_identifiers": null,
"event_identifiers": null
}
]
}
contract detail
Get contract detail by address
curl -X POST 'https://crab.api.subscan.io/api/scan/evm/contract' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_KEY' \
--data-raw '{
"address": "0x0050f880c35c31c13bfd9cbb7d28aafaeca3abd2"
}'
Request URL
POST /api/scan/evm/contract
Payload
Name | Type | Require |
---|---|---|
address | string | yes(evm address) |
Example Response
{
"code": 0,
"message": "Success",
"generated_at": 1652852308,
"data": {
"address": "0x0050f880c35c31c13bfd9cbb7d28aafaeca3abd2",
"abi": [
{
"name": "owners",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "removeOwner",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address"
}
],
"outputs": [],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"name": "revokeConfirmation",
"type": "function",
"inputs": [
{
"name": "transactionId",
"type": "uint256"
}
],
"outputs": [],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"name": "isOwner",
"type": "function",
"inputs": [
{
"name": "",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "confirmations",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "getTransactionCount",
"type": "function",
"inputs": [
{
"name": "pending",
"type": "bool"
},
{
"name": "executed",
"type": "bool"
}
],
"outputs": [
{
"name": "count",
"type": "uint256"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "addOwner",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address"
}
],
"outputs": [],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"name": "isConfirmed",
"type": "function",
"inputs": [
{
"name": "transactionId",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "getConfirmationCount",
"type": "function",
"inputs": [
{
"name": "transactionId",
"type": "uint256"
}
],
"outputs": [
{
"name": "count",
"type": "uint256"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "transactions",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"outputs": [
{
"name": "destination",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
},
{
"name": "executed",
"type": "bool"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "getOwners",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "getTransactionIds",
"type": "function",
"inputs": [
{
"name": "from",
"type": "uint256"
},
{
"name": "to",
"type": "uint256"
},
{
"name": "pending",
"type": "bool"
},
{
"name": "executed",
"type": "bool"
}
],
"outputs": [
{
"name": "_transactionIds",
"type": "uint256[]"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "getConfirmations",
"type": "function",
"inputs": [
{
"name": "transactionId",
"type": "uint256"
}
],
"outputs": [
{
"name": "_confirmations",
"type": "address[]"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "transactionCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "changeRequirement",
"type": "function",
"inputs": [
{
"name": "_required",
"type": "uint256"
}
],
"outputs": [],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"name": "confirmTransaction",
"type": "function",
"inputs": [
{
"name": "transactionId",
"type": "uint256"
}
],
"outputs": [],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"name": "submitTransaction",
"type": "function",
"inputs": [
{
"name": "destination",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
}
],
"outputs": [
{
"name": "transactionId",
"type": "uint256"
}
],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"name": "MAX_OWNER_COUNT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "required",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"constant": true,
"stateMutability": "view"
},
{
"name": "replaceOwner",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "newOwner",
"type": "address"
}
],
"outputs": [],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"name": "executeTransaction",
"type": "function",
"inputs": [
{
"name": "transactionId",
"type": "uint256"
}
],
"outputs": [],
"payable": false,
"constant": false,
"stateMutability": "nonpayable"
},
{
"type": "constructor",
"inputs": [
{
"name": "_owners",
"type": "address[]"
},
{
"name": "_required",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable"
},
{
"type": "fallback",
"payable": true,
"stateMutability": "payable"
},
{
"name": "Confirmation",
"type": "event",
"inputs": [
{
"name": "sender",
"type": "address",
"indexed": true
},
{
"name": "transactionId",
"type": "uint256",
"indexed": true
}
],
"anonymous": false
},
{
"name": "Revocation",
"type": "event",
"inputs": [
{
"name": "sender",
"type": "address",
"indexed": true
},
{
"name": "transactionId",
"type": "uint256",
"indexed": true
}
],
"anonymous": false
},
{
"name": "Submission",
"type": "event",
"inputs": [
{
"name": "transactionId",
"type": "uint256",
"indexed": true
}
],
"anonymous": false
},
{
"name": "Execution",
"type": "event",
"inputs": [
{
"name": "transactionId",
"type": "uint256",
"indexed": true
}
],
"anonymous": false
},
{
"name": "ExecutionFailure",
"type": "event",
"inputs": [
{
"name": "transactionId",
"type": "uint256",
"indexed": true
}
],
"anonymous": false
},
{
"name": "Deposit",
"type": "event",
"inputs": [
{
"name": "sender",
"type": "address",
"indexed": true
},
{
"name": "value",
"type": "uint256",
"indexed": false
}
],
"anonymous": false
},
{
"name": "OwnerAddition",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true
}
],
"anonymous": false
},
{
"name": "OwnerRemoval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true
}
],
"anonymous": false
},
{
"name": "RequirementChange",
"type": "event",
"inputs": [
{
"name": "required",
"type": "uint256",
"indexed": false
}
],
"anonymous": false
}
],
"source_code": "pragma solidity ^0.4.15;\n\n\n/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.\n/// @author Stefan George - \u003cstefan.george@consensys.net\u003e\ncontract MultiSigWallet {\n\n /*\n * Events\n */\n event Confirmation(address indexed sender, uint indexed transactionId);\n event Revocation(address indexed sender, uint indexed transactionId);\n event Submission(uint indexed transactionId);\n event Execution(uint indexed transactionId);\n event ExecutionFailure(uint indexed transactionId);\n event Deposit(address indexed sender, uint value);\n event OwnerAddition(address indexed owner);\n event OwnerRemoval(address indexed owner);\n event RequirementChange(uint required);\n\n /*\n * Constants\n */\n uint constant public MAX_OWNER_COUNT = 50;\n\n /*\n * Storage\n */\n mapping (uint =\u003e Transaction) public transactions;\n mapping (uint =\u003e mapping (address =\u003e bool)) public confirmations;\n mapping (address =\u003e bool) public isOwner;\n address[] public owners;\n uint public required;\n uint public transactionCount;\n\n struct Transaction {\n address destination;\n uint value;\n bytes data;\n bool executed;\n }\n\n /*\n * Modifiers\n */\n modifier onlyWallet() {\n require(msg.sender == address(this));\n _;\n }\n\n modifier ownerDoesNotExist(address owner) {\n require(!isOwner[owner]);\n _;\n }\n\n modifier ownerExists(address owner) {\n require(isOwner[owner]);\n _;\n }\n\n modifier transactionExists(uint transactionId) {\n require(transactions[transactionId].destination != 0);\n _;\n }\n\n modifier confirmed(uint transactionId, address owner) {\n require(confirmations[transactionId][owner]);\n _;\n }\n\n modifier notConfirmed(uint transactionId, address owner) {\n require(!confirmations[transactionId][owner]);\n _;\n }\n\n modifier notExecuted(uint transactionId) {\n require(!transactions[transactionId].executed);\n _;\n }\n\n modifier notNull(address _address) {\n require(_address != 0);\n _;\n }\n\n modifier validRequirement(uint ownerCount, uint _required) {\n require(ownerCount \u003c= MAX_OWNER_COUNT\n \u0026\u0026 _required \u003c= ownerCount\n \u0026\u0026 _required != 0\n \u0026\u0026 ownerCount != 0);\n _;\n }\n\n /// @dev Fallback function allows to deposit ether.\n function()\n public\n payable\n {\n if (msg.value \u003e 0)\n emit Deposit(msg.sender, msg.value);\n }\n\n /*\n * Public functions\n */\n /// @dev Contract constructor sets initial owners and required number of confirmations.\n /// @param _owners List of initial owners.\n /// @param _required Number of required confirmations.\n constructor(address[] _owners, uint _required)\n public\n validRequirement(_owners.length, _required)\n {\n for (uint i=0; i\u003c_owners.length; i++) {\n require(!isOwner[_owners[i]] \u0026\u0026 _owners[i] != 0);\n isOwner[_owners[i]] = true;\n }\n owners = _owners;\n required = _required;\n }\n\n /// @dev Allows to add a new owner. Transaction has to be sent by wallet.\n /// @param owner Address of new owner.\n function addOwner(address owner)\n public\n onlyWallet\n ownerDoesNotExist(owner)\n notNull(owner)\n validRequirement(owners.length + 1, required)\n {\n isOwner[owner] = true;\n owners.push(owner);\n emit OwnerAddition(owner);\n }\n\n /// @dev Allows to remove an owner. Transaction has to be sent by wallet.\n /// @param owner Address of owner.\n function removeOwner(address owner)\n public\n onlyWallet\n ownerExists(owner)\n {\n isOwner[owner] = false;\n for (uint i=0; i\u003cowners.length - 1; i++)\n if (owners[i] == owner) {\n owners[i] = owners[owners.length - 1];\n break;\n }\n owners.length -= 1;\n if (required \u003e owners.length)\n changeRequirement(owners.length);\n emit OwnerRemoval(owner);\n }\n\n /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\n /// @param owner Address of owner to be replaced.\n /// @param newOwner Address of new owner.\n function replaceOwner(address owner, address newOwner)\n public\n onlyWallet\n ownerExists(owner)\n ownerDoesNotExist(newOwner)\n {\n for (uint i=0; i\u003cowners.length; i++)\n if (owners[i] == owner) {\n owners[i] = newOwner;\n break;\n }\n isOwner[owner] = false;\n isOwner[newOwner] = true;\n emit OwnerRemoval(owner);\n emit OwnerAddition(newOwner);\n }\n\n /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n /// @param _required Number of required confirmations.\n function changeRequirement(uint _required)\n public\n onlyWallet\n validRequirement(owners.length, _required)\n {\n required = _required;\n emit RequirementChange(_required);\n }\n\n /// @dev Allows an owner to submit and confirm a transaction.\n /// @param destination Transaction target address.\n /// @param value Transaction ether value.\n /// @param data Transaction data payload.\n /// @return Returns transaction ID.\n function submitTransaction(address destination, uint value, bytes data)\n public\n returns (uint transactionId)\n {\n transactionId = addTransaction(destination, value, data);\n confirmTransaction(transactionId);\n }\n\n /// @dev Allows an owner to confirm a transaction.\n /// @param transactionId Transaction ID.\n function confirmTransaction(uint transactionId)\n public\n ownerExists(msg.sender)\n transactionExists(transactionId)\n notConfirmed(transactionId, msg.sender)\n {\n confirmations[transactionId][msg.sender] = true;\n emit Confirmation(msg.sender, transactionId);\n executeTransaction(transactionId);\n }\n\n /// @dev Allows an owner to revoke a confirmation for a transaction.\n /// @param transactionId Transaction ID.\n function revokeConfirmation(uint transactionId)\n public\n ownerExists(msg.sender)\n confirmed(transactionId, msg.sender)\n notExecuted(transactionId)\n {\n confirmations[transactionId][msg.sender] = false;\n emit Revocation(msg.sender, transactionId);\n }\n\n /// @dev Allows anyone to execute a confirmed transaction.\n /// @param transactionId Transaction ID.\n function executeTransaction(uint transactionId)\n public\n ownerExists(msg.sender)\n confirmed(transactionId, msg.sender)\n notExecuted(transactionId)\n {\n if (isConfirmed(transactionId)) {\n Transaction storage txn = transactions[transactionId];\n txn.executed = true;\n if (external_call(txn.destination, txn.value, txn.data.length, txn.data))\n emit Execution(transactionId);\n else {\n emit ExecutionFailure(transactionId);\n txn.executed = false;\n }\n }\n }\n\n // call has been separated into its own function in order to take advantage\n // of the Solidity's code generator to produce a loop that copies tx.data into memory.\n function external_call(address destination, uint value, uint dataLength, bytes data) internal returns (bool) {\n bool result;\n assembly {\n let x := mload(0x40) // \"Allocate\" memory for output (0x40 is where \"free memory\" pointer is stored by convention)\n let d := add(data, 32) // First 32 bytes are the padded length of data, so exclude that\n result := call(\n sub(gas, 34710), // 34710 is the value that solidity is currently emitting\n // It includes callGas (700) + callVeryLow (3, to pay for SUB) + callValueTransferGas (9000) +\n // callNewAccountGas (25000, in case the destination address does not exist and needs creating)\n destination,\n value,\n d,\n dataLength, // Size of the input (in bytes) - this is what fixes the padding problem\n x,\n 0 // Output is ignored, therefore the output size is zero\n )\n }\n return result;\n }\n\n /// @dev Returns the confirmation status of a transaction.\n /// @param transactionId Transaction ID.\n /// @return Confirmation status.\n function isConfirmed(uint transactionId)\n public\n constant\n returns (bool)\n {\n uint count = 0;\n for (uint i=0; i\u003cowners.length; i++) {\n if (confirmations[transactionId][owners[i]])\n count += 1;\n if (count == required)\n return true;\n }\n }\n\n /*\n * Internal functions\n */\n /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.\n /// @param destination Transaction target address.\n /// @param value Transaction ether value.\n /// @param data Transaction data payload.\n /// @return Returns transaction ID.\n function addTransaction(address destination, uint value, bytes data)\n internal\n notNull(destination)\n returns (uint transactionId)\n {\n transactionId = transactionCount;\n transactions[transactionId] = Transaction({\n destination: destination,\n value: value,\n data: data,\n executed: false\n });\n transactionCount += 1;\n emit Submission(transactionId);\n }\n\n /*\n * Web3 call functions\n */\n /// @dev Returns number of confirmations of a transaction.\n /// @param transactionId Transaction ID.\n /// @return Number of confirmations.\n function getConfirmationCount(uint transactionId)\n public\n constant\n returns (uint count)\n {\n for (uint i=0; i\u003cowners.length; i++)\n if (confirmations[transactionId][owners[i]])\n count += 1;\n }\n\n /// @dev Returns total number of transactions after filers are applied.\n /// @param pending Include pending transactions.\n /// @param executed Include executed transactions.\n /// @return Total number of transactions after filters are applied.\n function getTransactionCount(bool pending, bool executed)\n public\n constant\n returns (uint count)\n {\n for (uint i=0; i\u003ctransactionCount; i++)\n if ( pending \u0026\u0026 !transactions[i].executed\n || executed \u0026\u0026 transactions[i].executed)\n count += 1;\n }\n\n /// @dev Returns list of owners.\n /// @return List of owner addresses.\n function getOwners()\n public\n constant\n returns (address[])\n {\n return owners;\n }\n\n /// @dev Returns array with owner addresses, which confirmed transaction.\n /// @param transactionId Transaction ID.\n /// @return Returns array of owner addresses.\n function getConfirmations(uint transactionId)\n public\n constant\n returns (address[] _confirmations)\n {\n address[] memory confirmationsTemp = new address[](owners.length);\n uint count = 0;\n uint i;\n for (i=0; i\u003cowners.length; i++)\n if (confirmations[transactionId][owners[i]]) {\n confirmationsTemp[count] = owners[i];\n count += 1;\n }\n _confirmations = new address[](count);\n for (i=0; i\u003ccount; i++)\n _confirmations[i] = confirmationsTemp[i];\n }\n\n /// @dev Returns list of transaction IDs in defined range.\n /// @param from Index start position of transaction array.\n /// @param to Index end position of transaction array.\n /// @param pending Include pending transactions.\n /// @param executed Include executed transactions.\n /// @return Returns array of transaction IDs.\n function getTransactionIds(uint from, uint to, bool pending, bool executed)\n public\n constant\n returns (uint[] _transactionIds)\n {\n uint[] memory transactionIdsTemp = new uint[](transactionCount);\n uint count = 0;\n uint i;\n for (i=0; i\u003ctransactionCount; i++)\n if ( pending \u0026\u0026 !transactions[i].executed\n || executed \u0026\u0026 transactions[i].executed)\n {\n transactionIdsTemp[count] = i;\n count += 1;\n }\n _transactionIds = new uint[](to - from);\n for (i=from; i\u003cto; i++)\n _transactionIds[i - from] = transactionIdsTemp[i];\n }\n}\n",
"creation_code": "0x60806040523480156200001157600080fd5b50604051620016d5380380620016d583398101604052805160208201519101805190919060009082603282118015906200004b5750818111155b80156200005757508015155b80156200006357508115155b15156200006f57600080fd5b600092505b845183101562000147576002600086858151811015156200009157fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16158015620000e757508483815181101515620000cf57fe5b90602001906020020151600160a060020a0316600014155b1515620000f357600080fd5b60016002600087868151811015156200010857fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff19169115159190911790556001929092019162000074565b84516200015c9060039060208801906200016e565b50505060049190915550620002029050565b828054828255906000526020600020908101928215620001c6579160200282015b82811115620001c65782518254600160a060020a031916600160a060020a039091161782556020909201916001909101906200018f565b50620001d4929150620001d8565b5090565b620001ff91905b80821115620001d4578054600160a060020a0319168155600101620001df565b90565b6114c380620002126000396000f30060806040526004361061011c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c27811461015e578063173825d91461019257806320ea8d86146101b35780632f54bf6e146101cb5780633411c81c1461020057806354741525146102245780637065cb4814610255578063784547a7146102765780638b51d13f1461028e5780639ace38c2146102a6578063a0e67e2b14610361578063a8abe69a146103c6578063b5dc40c3146103eb578063b77bf60014610403578063ba51a6df14610418578063c01a8c8414610430578063c642747414610448578063d74f8edd146104b1578063dc8452cd146104c6578063e20056e6146104db578063ee22610b14610502575b600034111561015c5760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b005b34801561016a57600080fd5b5061017660043561051a565b60408051600160a060020a039092168252519081900360200190f35b34801561019e57600080fd5b5061015c600160a060020a0360043516610542565b3480156101bf57600080fd5b5061015c6004356106b9565b3480156101d757600080fd5b506101ec600160a060020a0360043516610773565b604080519115158252519081900360200190f35b34801561020c57600080fd5b506101ec600435600160a060020a0360243516610788565b34801561023057600080fd5b50610243600435151560243515156107a8565b60408051918252519081900360200190f35b34801561026157600080fd5b5061015c600160a060020a0360043516610814565b34801561028257600080fd5b506101ec600435610939565b34801561029a57600080fd5b506102436004356109bd565b3480156102b257600080fd5b506102be600435610a2c565b6040518085600160a060020a0316600160a060020a031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561036d57600080fd5b50610376610aea565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103b257818101518382015260200161039a565b505050509050019250505060405180910390f35b3480156103d257600080fd5b5061037660043560243560443515156064351515610b4d565b3480156103f757600080fd5b50610376600435610c86565b34801561040f57600080fd5b50610243610dff565b34801561042457600080fd5b5061015c600435610e05565b34801561043c57600080fd5b5061015c600435610e84565b34801561045457600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610243948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610f4f9650505050505050565b3480156104bd57600080fd5b5061024