{ "openapi": "3.1.0", "info": { "title": "Submerge Crystal API v1", "description": "REST API for Submerge Crystal, the core indexer component of Submerge.\n\nSubmerge API endpoints are grouped under seven resource sets:\n- Blocks\n- Calls\n- Events\n- Extrinsics\n- Genesis\n- Metadata\n- Traces\n\nPublic API is limited by 5 requests per second.\nRequest query parameters use `snake_case`; response fields use `camelCase`.", "contact": { "name": "Helikon Labs", "url": "https://submerge.io", "email": "info@helikon.io" }, "license": { "name": "GPLv3", "url": "https://www.gnu.org/licenses/gpl-3.0.html" }, "version": "1.0.0" }, "servers": [ { "url": "https://coretime.polkadot.crystal.api.submerge.io/v1", "description": "API preview deployment for Polkadot Coretime." }, { "url": "https://people.polkadot.crystal.api.submerge.io/v1", "description": "API preview deployment for Polkadot People." } ], "paths": { "/blocks": { "get": { "tags": [ "block" ], "summary": "Get blocks", "description": "Returns all blocks from the database that satisfy the query parameters. It will return a paginated response, ordered descending by block number.", "operationId": "get_blocks", "parameters": [ { "name": "next_cursor", "in": "query", "description": "Opaque cursor for block pagination - returned in the endpoint response.\nThis parameter is mutually exclusive with all other parameters,\nand will return bad request if any other parameter is set.", "required": false, "schema": { "type": "string" } }, { "name": "page_size", "in": "query", "description": "Number of blocks per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "status", "in": "query", "description": "Filter results by block status. If not specified, all blocks are returned.", "required": false, "schema": { "$ref": "#/components/schemas/BlockStatus" } }, { "name": "min_block_number", "in": "query", "description": "Filter blocks by minimum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1534287 }, { "name": "max_block_number", "in": "query", "description": "Filter blocks by maximum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 2825701 }, { "name": "min_block_timestamp", "in": "query", "description": "Filter blocks by minimum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "max_block_timestamp", "in": "query", "description": "Filter blocks by maximum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "min_spec_version", "in": "query", "description": "Filter blocks by minimum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "max_spec_version", "in": "query", "description": "Filter blocks by maximum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "author", "in": "query", "description": "Filter results by block author. Either of the following:\n- Author's Substrate SS58 address string (e.g. `5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY`).\n- Author's Substrate account id encoded as a hexadecimal string (e.g. `0x008d8404893c7b4b80f397605cc96e61fec3c89676c8c2794a2a7d281d678b1a`).\n- Author's address encoded as a hexadecimal string with optional `0x` prefix (e.g. `0x008d8404893c7b4b80f397605cc96e61fec3c89676c8c2794a2a7d281d678b1a`).", "required": false, "schema": { "type": "string", "pattern": "^(?:[1-9A-HJ-NP-Za-km-z]{47,48}|(?:0x)?[0-9a-fA-F]{1-256})$" }, "example": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" } ], "responses": { "200": { "$ref": "#/components/responses/CursorBlockList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}": { "get": { "tags": [ "block" ], "summary": "Get blocks by reference", "description": "If a hash is passed, returns the matching block. If a number is passed, gives the blocks by that number - could be multiple blocks if there's a pruned block in that slot.", "operationId": "get_blocks_by_reference", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } } ], "responses": { "200": { "$ref": "#/components/responses/BlockList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/calls": { "get": { "tags": [ "call" ], "summary": "Get block calls", "description": "If a hash is passed, returns the calls for the matching block. If a number is passed, gives the calls for the blocks with that number - could be multiple blocks if there's a pruned block in that slot.", "operationId": "get_calls_by_block_reference", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the calls. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "page", "in": "query", "description": "Block call list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block calls per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "pallet_name", "in": "query", "description": "Filter blocks calls by pallet name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "system" }, { "name": "pallet_call_name", "in": "query", "description": "Filter blocks calls by call name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "setcode" }, { "name": "is_signed", "in": "query", "description": "Whether to include only calls within signed/unsigned extrinsics.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the block calls in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedCallList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/events": { "get": { "tags": [ "event" ], "summary": "Get block events", "description": "If a hash is passed, returns the events for the matching block. If a number is passed, gives the events for the block with that number - could be multiple blocks if there's a pruned block in that slot.", "operationId": "get_events_by_block_reference", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the events. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "page", "in": "query", "description": "Block event list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block events per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "pallet_name", "in": "query", "description": "Filter events calls by pallet name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "staking" }, { "name": "pallet_event_name", "in": "query", "description": "Filter blocks events by event name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "bonded" }, { "name": "include_args", "in": "query", "description": "Whether to include event arguments in the block events in the response.\nDefault is `false`. Setting this to `true` increases response size considerably.\nPrefer to use the `GET /event/{event_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedEventList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/events/{event_index}": { "get": { "tags": [ "event" ], "summary": "Get block events by index", "description": "Returns the events in the given block at the given index. It can return multiple events if a number is passed and there's a pruned block in that slot.", "operationId": "get_events_by_block_reference_and_index", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the event(s). Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "event_index", "in": "path", "description": "0-based index for the event(s) in the block(s).", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, { "name": "include_args", "in": "query", "description": "Whether to include event arguments in the event(s) in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /event/{event_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/EventList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/extrinsics": { "get": { "tags": [ "extrinsic" ], "summary": "Get block extrinsics", "description": "If a hash is passed, returns the extrinsics for the matching block. If a number is passed, gives the extrinsis for the block by that number - could be multiple blocks if there's a pruned block in that slot.", "operationId": "get_extrinsics_by_block_reference", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the extrinsics. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" }, "example": "13453264" }, { "name": "page", "in": "query", "description": "Block call list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block calls per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "is_signed", "in": "query", "description": "Whether to include only signed/unsigned extrinsics within the block.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "signer", "in": "query", "description": "Filter block extrinsics by signer. Either of the following:\n- Signer's Substrate SS58 address string (e.g. `5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY`).\n- Signer's Substrate account id encoded as a hexadecimal string (e.g. `0x008d8404893c7b4b80f397605cc96e61fec3c89676c8c2794a2a7d281d678b1a`).\n- Signer's address encoded as a hexadecimal string with optional `0x` prefix (e.g. `0x008d8404893c7b4b80f397605cc96e61fec3c89676c8c2794a2a7d281d678b1a`).", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedExtrinsicList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/extrinsics/{extrinsic_index}": { "get": { "tags": [ "extrinsic" ], "summary": "Get block extrinsics by index", "description": "Returns the extrinsics in the given block at the given index. It can return multiple extrinsics if a number is passed and there's a pruned block in that slot.", "operationId": "get_extrinsics_by_block_reference_and_index", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the extrinsic. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "extrinsic_index", "in": "path", "description": "0-based index for the extrinsic in the block.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 } } ], "responses": { "200": { "$ref": "#/components/responses/ExtrinsicList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/extrinsics/{extrinsic_index}/calls": { "get": { "tags": [ "call" ], "summary": "Get block extrinsic calls", "description": "Returns the calls for extrinsic in a block by block reference and 0-based extrinsic index.", "operationId": "get_calls_by_block_reference_and_extrinsic_index", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the extrinsic. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "extrinsic_index", "in": "path", "description": "0-based index for the extrinsic in the block.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, { "name": "page", "in": "query", "description": "Block call list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block calls per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "pallet_name", "in": "query", "description": "Filter blocks calls by pallet name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "system" }, { "name": "pallet_call_name", "in": "query", "description": "Filter blocks calls by call name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "setcode" }, { "name": "is_signed", "in": "query", "description": "Whether to include only calls within signed/unsigned extrinsics.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the block calls in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedCallList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/extrinsics/{extrinsic_index}/events": { "get": { "tags": [ "event" ], "summary": "Get block extrinsic events", "description": "Returns the events for extrinsic in a block by block reference and 0-based extrinsic index.", "operationId": "get_events_by_block_reference_and_extrinsic_index", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the extrinsic. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "extrinsic_index", "in": "path", "description": "0-based index for the extrinsic in the block.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, { "name": "page", "in": "query", "description": "Block event list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block events per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "pallet_name", "in": "query", "description": "Filter events calls by pallet name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "staking" }, { "name": "pallet_event_name", "in": "query", "description": "Filter blocks events by event name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "bonded" }, { "name": "include_args", "in": "query", "description": "Whether to include event arguments in the block events in the response.\nDefault is `false`. Setting this to `true` increases response size considerably.\nPrefer to use the `GET /event/{event_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedEventList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/blocks/{block_ref}/traces": { "get": { "tags": [ "trace" ], "summary": "Get block traces", "description": "If a hash is passed, returns the traces for the matching block. If a number is passed, returns the traces for the blocks with that number - could be multiple blocks if there's a pruned block in that slot.", "operationId": "get_traces_by_block_reference", "parameters": [ { "name": "block_ref", "in": "path", "description": "Block reference for the traces. Either a block number (integer ≥ 0), or a block hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "page", "in": "query", "description": "Block traces list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of traces traces in block per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedTraceList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/calls": { "get": { "tags": [ "call" ], "summary": "Get calls", "description": "Returns all calls from the database that satisfy the query parameters. It will return a paginated response, ordered descending by block number, then call id.", "operationId": "get_calls", "parameters": [ { "name": "next_cursor", "in": "query", "description": "Opaque cursor for call pagination - returned in the endpoint response.\nThis parameter is mutually exclusive with all other parameters,\nand will return bad request if any other parameter is set.", "required": false, "schema": { "type": "string" } }, { "name": "page_size", "in": "query", "description": "Number of calls per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "min_block_number", "in": "query", "description": "Filter calls by minimum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1534287 }, { "name": "max_block_number", "in": "query", "description": "Filter calls by maximum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 2825701 }, { "name": "min_block_timestamp", "in": "query", "description": "Filter calls by minimum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "max_block_timestamp", "in": "query", "description": "Filter calls by maximum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "min_spec_version", "in": "query", "description": "Filter calls by minimum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "max_spec_version", "in": "query", "description": "Filter calls by maximum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "pallet_name", "in": "query", "description": "Filter calls by pallet name. Case insensitive. Stored in `camelCase`.", "required": false, "schema": { "type": "string" }, "example": "system" }, { "name": "call_name", "in": "query", "description": "Filter calls by call name. Case insensitive. Stored in `camelCase`.", "required": false, "schema": { "type": "string" }, "example": "setcode" }, { "name": "is_signed", "in": "query", "description": "Whether to include only calls within signed/unsigned extrinsics.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the calls in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/CursorCallList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/calls/{call_hash}": { "get": { "tags": [ "call" ], "summary": "Get call by hash", "description": "Returns the call by its hash.", "operationId": "get_call_by_hash", "parameters": [ { "name": "call_hash", "in": "path", "description": "Call hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the call(s) in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Call with the given hash.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Call" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/calls/{call_hash}/args": { "get": { "tags": [ "call" ], "summary": "Get call arguments", "description": "Returns the arguments of a runtime call by its hash.", "operationId": "get_call_args_by_hash", "parameters": [ { "name": "call_hash", "in": "path", "description": "Call hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } } ], "responses": { "200": { "description": "Arguments for the runtime call with the given hash.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CallArgs" }, "example": { "args": { "dest": { "type": "Id", "value": "0xc35b9a45aadc8bb998ba7c4d17bda4d7d8e31f90a754a65709d3a3a71ff8fa7a" }, "value": "117284000000" }, "hash": "0xb778a81c1fd06d98b5ba1b37bb274101f7905ad5eca960f56ededf26248c4011" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/calls/{call_hash}/extrinsic": { "get": { "tags": [ "call" ], "summary": "Get call extrinsic", "description": "Returns the extrinsic of a call by call hash.", "operationId": "get_call_extrinsic_by_hash", "parameters": [ { "name": "call_hash", "in": "path", "description": "Hash of the extrinsic call in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } } ], "responses": { "200": { "description": "The extrinsic that contains the call.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Extrinsic" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/calls/{call_hash}/parent": { "get": { "tags": [ "call" ], "summary": "Get parent call", "description": "Returns a parent call by the sub call's hash.", "operationId": "get_parent_call_by_hash", "parameters": [ { "name": "call_hash", "in": "path", "description": "Sub call hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the call(s) in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Parent call for the given sub call hash.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Call" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/calls/{call_hash}/subs": { "get": { "tags": [ "call" ], "summary": "Get sub calls", "description": "Returns sub calls call by a parent call's hash.", "operationId": "get_sub_calls_by_hash", "parameters": [ { "name": "call_hash", "in": "path", "description": "Parent call hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "page", "in": "query", "description": "Block call list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block calls per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "pallet_name", "in": "query", "description": "Filter blocks calls by pallet name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "system" }, { "name": "pallet_call_name", "in": "query", "description": "Filter blocks calls by call name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "setcode" }, { "name": "is_signed", "in": "query", "description": "Whether to include only calls within signed/unsigned extrinsics.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the block calls in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedCallList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/events": { "get": { "tags": [ "event" ], "summary": "Get events", "description": "Returns all events from the database that satisfy the query parameters. It will return a paginated response, ordered descending by block number and ascending event index.", "operationId": "get_events", "parameters": [ { "name": "next_cursor", "in": "query", "description": "Opaque cursor for pagination - returned in the endpoint response.\nThis parameter is mutually exclusive with all other parameters,\nand will return bad request if any other parameter is set.", "required": false, "schema": { "type": "string" } }, { "name": "page_size", "in": "query", "description": "Number of events per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "min_block_number", "in": "query", "description": "Filter events by minimum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1534287 }, { "name": "max_block_number", "in": "query", "description": "Filter events by maximum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 2825701 }, { "name": "min_block_timestamp", "in": "query", "description": "Filter events by minimum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "max_block_timestamp", "in": "query", "description": "Filter events by maximum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "min_spec_version", "in": "query", "description": "Filter events by minimum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "max_spec_version", "in": "query", "description": "Filter events by maximum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "pallet_name", "in": "query", "description": "Filter events by pallet name. Case insensitive. Stored in `camelCase`.", "required": false, "schema": { "type": "string" }, "example": "balances" }, { "name": "event_name", "in": "query", "description": "Filter events by event name. Case insensitive. Stored in `camelCase`.", "required": false, "schema": { "type": "string" }, "example": "transfer" }, { "name": "include_args", "in": "query", "description": "Whether to include event arguments in the events in the response.\nDefault is `false`. Setting this to `true` increases response size considerably.\nPrefer to use the `GET /event/{event_hash}/args` endpoint per event instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/CursorEventList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/events/{event_hash}": { "get": { "tags": [ "event" ], "summary": "Get event by hash", "description": "Returns the event by its hash.", "operationId": "get_event_by_hash", "parameters": [ { "name": "event_hash", "in": "path", "description": "Event hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "include_args", "in": "query", "description": "Whether to include event arguments in the event(s) in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /event/{event_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Event with the given hash.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Event" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/events/{event_hash}/args": { "get": { "tags": [ "event" ], "summary": "Get event arguments", "description": "Returns the arguments of a runtime call by its hash.", "operationId": "get_event_args_by_hash", "parameters": [ { "name": "event_hash", "in": "path", "description": "Event hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } } ], "responses": { "200": { "description": "Arguments for the runtime event with the given hash.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventArgs" }, "example": { "args": { "amount": "171162271", "from": "0x96b4be4ad947987922c88449866e738b4f4d09dece5157d2c3ac9477d8c6512e", "to": "0x967cccc1ff3d1f37b9e6c8a39d8ba72ad85d35e19cc0717a72f1a21037606144" }, "hash": "0x2c923bb54d06dfb649aaaf1c198eb1af9e19ec52b8e90267984496c128ee7adc" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/extrinsics": { "get": { "tags": [ "extrinsic" ], "summary": "Get extrinsics", "description": "Returns all extrinsics from the database that satisfy the query parameters. It will return a paginated response, ordered descending by block number and ascending extrinsic index.", "operationId": "get_extrinsics", "parameters": [ { "name": "next_cursor", "in": "query", "description": "Opaque cursor for extrinsic pagination - returned in the endpoint response.\nThis parameter is mutually exclusive with all other parameters,\nand will return bad request if any other parameter is set.", "required": false, "schema": { "type": "string" } }, { "name": "page_size", "in": "query", "description": "Number of extrinsics per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "min_block_number", "in": "query", "description": "Filter extrinsics by minimum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1534287 }, { "name": "max_block_number", "in": "query", "description": "Filter extrinsics by maximum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 2825701 }, { "name": "min_block_timestamp", "in": "query", "description": "Filter extrinsics by minimum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "max_block_timestamp", "in": "query", "description": "Filter extrinsics by maximum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "min_spec_version", "in": "query", "description": "Filter extrinsics by minimum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "max_spec_version", "in": "query", "description": "Filter extrinsics by maximum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "is_signed", "in": "query", "description": "Whether to include only signed/unsigned extrinsics.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "signer", "in": "query", "description": "Filter extrinsics by signer. Either of the following:\n- Signer's Substrate SS58 address string (e.g. `5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY`).\n- Signer's Substrate account id encoded as a hexadecimal string (e.g. `0x008d8404893c7b4b80f397605cc96e61fec3c89676c8c2794a2a7d281d678b1a`).\n- Signer's address encoded as a hexadecimal string with optional `0x` prefix (e.g. `0x008d8404893c7b4b80f397605cc96e61fec3c89676c8c2794a2a7d281d678b1a`).", "required": false, "schema": { "type": "string", "pattern": "^(?:[1-9A-HJ-NP-Za-km-z]{47,48}|(?:0x)?[0-9a-fA-F]{1-256})$" }, "example": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" } ], "responses": { "200": { "$ref": "#/components/responses/CursorExtrinsicList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/extrinsics/{extrinsic_hash}": { "get": { "tags": [ "extrinsic" ], "summary": "Get extrinsic by hash", "description": "Returns the extrinsic by its hash.", "operationId": "get_extrinsic_by_hash", "parameters": [ { "name": "extrinsic_hash", "in": "path", "description": "Extrinsic hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } } ], "responses": { "200": { "description": "Extrinsic with the given hash.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Extrinsic" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/extrinsics/{extrinsic_hash}/call": { "get": { "tags": [ "call" ], "summary": "Get extrinsic root call", "description": "Returns the root call of an extrinsic by its hash.", "operationId": "get_extrinsic_root_call_by_hash", "parameters": [ { "name": "extrinsic_hash", "in": "path", "description": "Extrinsic hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the call(s) in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "The root call of the extrinsic.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Call" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/extrinsics/{extrinsic_hash}/calls": { "get": { "tags": [ "call" ], "summary": "Get extrinsic calls", "description": "Returns the calls in an extrinsic by extrinsic hash.", "operationId": "get_calls_by_extrinsic_hash", "parameters": [ { "name": "extrinsic_hash", "in": "path", "description": "Extrinsic hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:0x)?[0-9a-fA-F]{64}$" } }, { "name": "page", "in": "query", "description": "Block call list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block calls per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "pallet_name", "in": "query", "description": "Filter blocks calls by pallet name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "system" }, { "name": "pallet_call_name", "in": "query", "description": "Filter blocks calls by call name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "setcode" }, { "name": "is_signed", "in": "query", "description": "Whether to include only calls within signed/unsigned extrinsics.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "include_args", "in": "query", "description": "Whether to include call arguments in the block calls in the response.\nDefault is `false`. Setting this to `true` increases the response size considerably.\nPrefer to use the `GET /call/{call_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedCallList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/extrinsics/{extrinsic_hash}/events": { "get": { "tags": [ "event" ], "summary": "Get extrinsic events", "description": "Returns the events in an extrinsic by extrinsic hash.", "operationId": "get_events_by_extrinsic_hash", "parameters": [ { "name": "extrinsic_hash", "in": "path", "description": "Extrinsic hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:0x)?[0-9a-fA-F]{64}$" } }, { "name": "page", "in": "query", "description": "Block event list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of block events per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "pallet_name", "in": "query", "description": "Filter events calls by pallet name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "staking" }, { "name": "pallet_event_name", "in": "query", "description": "Filter blocks events by event name. Case insensitive.", "required": false, "schema": { "type": "string" }, "example": "bonded" }, { "name": "include_args", "in": "query", "description": "Whether to include event arguments in the block events in the response.\nDefault is `false`. Setting this to `true` increases response size considerably.\nPrefer to use the `GET /event/{event_hash}/args` endpoint per call instead.", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedEventList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/genesis": { "get": { "tags": [ "genesis" ], "summary": "Get genesis records", "description": "Returns a paginated list of all genesis storage records.", "operationId": "get_genesis_records", "parameters": [ { "name": "page", "in": "query", "description": "Genesis record list page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of genesis records per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedGenesisRecordList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata": { "get": { "tags": [ "metadata" ], "summary": "Get metadata list", "description": "Returns a list of metadata summaries for all runtime versions.", "operationId": "get_metadata_list", "parameters": [ { "name": "page", "in": "query", "description": "Page number to retrieve. 1-indexed.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1 }, { "name": "page_size", "in": "query", "description": "Number of items per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 100 } ], "responses": { "200": { "$ref": "#/components/responses/PaginatedMetadataList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}": { "get": { "tags": [ "metadata" ], "summary": "Get metadata by spec version", "description": "Returns the metadata by its spec version.", "operationId": "get_metadata", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 } ], "responses": { "200": { "description": "Full metadata with the given spec version.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Metadata" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/hex": { "get": { "tags": [ "metadata" ], "summary": "Get metadata hex", "description": "Returns the SCALE-encoded hexadecimal string for the prefixed metadata.", "operationId": "get_metadata_hex", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 } ], "responses": { "200": { "description": "SCALE-encoded prefixed metadata hexadecimal string.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HexString" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/json": { "get": { "tags": [ "metadata" ], "summary": "Get metadata JSON", "description": "Returns the original Substrate runtime metadata by its spec version in JSON representation.", "operationId": "get_metadata_json", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 } ], "responses": { "200": { "description": "Full metadata with the given spec version.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetadataJSON" }, "example": [ 1635018093, { "V14": { "extrinsic": { "signed_extensions": [ { "additional_signed": 122, "identifier": "CheckNonZeroSender", "ty": 385 }, { "additional_signed": 4, "identifier": "CheckSpecVersion", "ty": 386 }, { "additional_signed": 4, "identifier": "CheckTxVersion", "ty": 387 }, { "additional_signed": 13, "identifier": "CheckGenesis", "ty": 388 }, { "additional_signed": 13, "identifier": "CheckMortality", "ty": 389 }, { "additional_signed": 122, "identifier": "CheckNonce", "ty": 391 }, { "additional_signed": 122, "identifier": "CheckWeight", "ty": 392 }, { "additional_signed": 122, "identifier": "ChargeTransactionPayment", "ty": 393 }, { "additional_signed": 32, "identifier": "CheckMetadataHash", "ty": 394 } ], "ty": 380, "version": 4 }, "pallets": [], "ty": 396, "types": [] } } ] } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/pallets": { "get": { "tags": [ "metadata" ], "summary": "Get metadata pallets", "description": "Returns pallets in a metadata version.", "operationId": "get_metadata_pallets", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 } ], "responses": { "200": { "$ref": "#/components/responses/MetadataPalletSummaryList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/pallets/{pallet_index}": { "get": { "tags": [ "metadata" ], "summary": "Get metadata pallet", "description": "Returns the full metadata pallet by metadata spec version and pallet index.", "operationId": "get_metadata_pallet", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 2000000 }, { "name": "pallet_index", "in": "path", "description": "Metadata pallet index.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 50 } ], "responses": { "200": { "description": "Full metadata pallet with the given spec version and pallet index.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetadataPallet" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/pallets/{pallet_index}/calls": { "get": { "tags": [ "metadata" ], "summary": "Get metadata pallet calls", "description": "Returns the calls in a pallet in a metadata version.", "operationId": "get_metadata_pallet_calls", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 }, { "name": "pallet_index", "in": "path", "description": "Metadata pallet index.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 50 } ], "responses": { "200": { "$ref": "#/components/responses/MetadataPalletCallList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/pallets/{pallet_index}/constants": { "get": { "tags": [ "metadata" ], "summary": "Get metadata pallet constants", "description": "Returns the constants in a pallet in a metadata version.", "operationId": "get_metadata_pallet_constants", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 }, { "name": "pallet_index", "in": "path", "description": "Metadata pallet index.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 50 } ], "responses": { "200": { "$ref": "#/components/responses/MetadataPalletConstantList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/pallets/{pallet_index}/errors": { "get": { "tags": [ "metadata" ], "summary": "Get metadata pallet errors", "description": "Returns the errors in a pallet in a metadata version.", "operationId": "get_metadata_pallet_errors", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 }, { "name": "pallet_index", "in": "path", "description": "Metadata pallet index.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 50 } ], "responses": { "200": { "$ref": "#/components/responses/MetadataPalletErrorList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/pallets/{pallet_index}/events": { "get": { "tags": [ "metadata" ], "summary": "Get metadata pallet events", "description": "Returns the events in a pallet in a metadata version.", "operationId": "get_metadata_pallet_events", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 }, { "name": "pallet_index", "in": "path", "description": "Metadata pallet index.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 50 } ], "responses": { "200": { "$ref": "#/components/responses/MetadataPalletEventList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/metadata/{spec_version}/pallets/{pallet_index}/storage": { "get": { "tags": [ "metadata" ], "summary": "Get metadata pallet storage items", "description": "Returns the storage items in a pallet in a metadata version.", "operationId": "get_metadata_pallet_storage_items", "parameters": [ { "name": "spec_version", "in": "path", "description": "Metadata spec version.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1003 }, { "name": "pallet_index", "in": "path", "description": "Metadata pallet index.", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 50 } ], "responses": { "200": { "$ref": "#/components/responses/MetadataPalletStorageItemList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/traces": { "get": { "tags": [ "trace" ], "summary": "Get traces", "description": "Returns all traces from the database that satisfy the query parameters. It will return a paginated response, ordered descending by block number, then ascending trace index.", "operationId": "get_traces", "parameters": [ { "name": "next_cursor", "in": "query", "description": "Opaque cursor for trace pagination - returned in the endpoint response.\nThis parameter is mutually exclusive with all other parameters,\nand will return bad request if any other parameter is set.", "required": false, "schema": { "type": "string" } }, { "name": "page_size", "in": "query", "description": "Number of traces per page to be returned.", "required": false, "schema": { "type": "integer", "format": "int32", "default": 25, "maximum": 100, "minimum": 1 }, "example": 50 }, { "name": "min_block_number", "in": "query", "description": "Filter traces by minimum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1534287 }, { "name": "max_block_number", "in": "query", "description": "Filter traces by maximum block number.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 2825701 }, { "name": "min_block_timestamp", "in": "query", "description": "Filter traces by minimum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "max_block_timestamp", "in": "query", "description": "Filter traces by maximum block timestamp. In milliseconds.", "required": false, "schema": { "type": "integer", "format": "int64", "minimum": 0 }, "example": 1755773684012 }, { "name": "min_spec_version", "in": "query", "description": "Filter traces by minimum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "max_spec_version", "in": "query", "description": "Filter traces by maximum runtime spec version.", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 }, "example": 1090 }, { "name": "key_prefix", "in": "query", "description": "Filter traces by Substrate storage key prefix.", "required": false, "schema": { "$ref": "#/components/schemas/HexStringParam" } }, { "name": "key_params", "in": "query", "description": "Filter traces by Substrate storage key parameters.", "required": false, "schema": { "$ref": "#/components/schemas/HexStringParam" } } ], "responses": { "200": { "$ref": "#/components/responses/CursorTraceList" }, "400": { "$ref": "#/components/responses/BadRequest" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/traces/{trace_hash}": { "get": { "tags": [ "trace" ], "summary": "Get trace by hash", "description": "Returns the trace by its hash.", "operationId": "get_trace_by_hash", "parameters": [ { "name": "trace_hash", "in": "path", "description": "Trace hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } } ], "responses": { "200": { "description": "Trace with the given hash.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Trace" } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/traces/{trace_hash}/value": { "get": { "tags": [ "trace" ], "summary": "Get trace value", "description": "Returns the value of a trace record by its hash.", "operationId": "get_trace_value_by_hash", "parameters": [ { "name": "trace_hash", "in": "path", "description": "Trace hash in hex (with or without `0x` prefix, case-insensitive).", "required": true, "schema": { "type": "string", "pattern": "^(?:\\d+|(0x)?[a-f0-9A-F]{64})$" } } ], "responses": { "200": { "description": "SCALE-encoded value of the storage trace.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HexString" } } } }, "204": { "description": "Trace exists but has no value (null)." }, "400": { "$ref": "#/components/responses/BadRequest" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } } }, "components": { "schemas": { "AccountIdHex": { "type": "string", "description": "32-byte Substrate account id as lowercase hex, **always** `0x`-prefixed and lowercase in responses.", "example": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "pattern": "^0x[a-f0-9]{64}$" }, "Address20Hex": { "type": "string", "description": "20-byte address as lowercase hex, **always** `0x`-prefixed and lowercase in responses.", "example": "0x00112233445566778899aabbccddeeff00112233", "pattern": "^0x[a-f0-9]{40}$" }, "Address32Hex": { "type": "string", "description": "32-byte address as lowercase hex, **always** `0x`-prefixed and lowercase in responses.", "example": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "pattern": "^0x[a-f0-9]{64}$" }, "Block": { "type": "object", "description": "A block in the blockchain.", "required": [ "hash", "parentHash", "stateRoot", "extrinsicRoot", "number", "specVersion", "status", "extrinsicCount", "eventCount" ], "properties": { "author": { "$ref": "#/components/schemas/MultiAddress", "description": "Authoring validator address." }, "eventCount": { "type": "integer", "format": "int32", "description": "Number of events in the block.", "example": 56, "minimum": 0 }, "extrinsicCount": { "type": "integer", "format": "int32", "description": "Number of extrinsics in the block.", "example": 2, "minimum": 0 }, "extrinsicRoot": { "$ref": "#/components/schemas/Hash256Hex", "description": "Merkle root of included extrinsics." }, "hash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Block hash (Blake2 256-bit)." }, "number": { "type": "integer", "format": "int64", "description": "Block height.", "example": 27419831, "minimum": 0 }, "parentHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Parent block hash." }, "specVersion": { "type": "integer", "format": "int32", "description": "Runtime spec version.", "example": 1006001, "minimum": 0 }, "stateRoot": { "$ref": "#/components/schemas/Hash256Hex", "description": "Root hash of the state trie after executing this block." }, "status": { "$ref": "#/components/schemas/BlockStatus", "description": "Block status." }, "timestamp": { "type": "integer", "format": "int64", "description": "Block timestamp. Milliseconds.", "example": 1755773684012, "minimum": 0 }, "weight": { "type": "object", "description": "Block weight in JSON format. Schema depends on runtime metadata.", "examples": [ { "mandatory": { "proofSize": "592668", "refTime": "361766342408" }, "normal": { "proofSize": "0", "refTime": "0" }, "operational": { "proofSize": "0", "refTime": "0" } } ] } }, "example": { "author": { "type": "accountId", "value": "0x269a84431cd8dfc5762beadfa54a8f21597c12d4f31e51f9f6f985f65ba0c626" }, "eventCount": 56, "extrinsicCount": 2, "extrinsicRoot": "0x7893dd573a5033a6d785bf4038c237cbd8e1f3730d177d4f9b21c8d2c7b34454", "hash": "0xc82fe0d5752d42ae3d325f14206859f86cec7447f244d5b4bccfc2a00bd58df8", "number": 27419831, "parentHash": "0x1615581259dd1ac45fea1b23406367ca79c9f6dfa3b3b1115517c6e86250c42b", "specVersion": 1006001, "stateRoot": "0x8c8b0b599733c41bad79a617d8f2f0213a5d965d287cee16c9efd65f23001603", "status": "finalized", "timestamp": 1755773684012, "weight": { "mandatory": { "proofSize": "204955", "refTime": "701777135384" }, "normal": { "proofSize": "0", "refTime": "0" }, "operational": { "proofSize": "0", "refTime": "0" } } } }, "BlockStatus": { "type": "string", "description": "Block status.\n- `finalized`: Blocks that have been finalized on chain.\n- `proposed`: Blocks that have been authored but not yet finalized.\n- `pruned`: Blocks that have been removed or are no longer accessible.", "enum": [ "proposed", "pruned", "finalized" ], "example": "finalized" }, "Call": { "type": "object", "description": "A runtime call.", "required": [ "hash", "blockHash", "blockNumber", "specVersion", "blockStatus", "extrinsicIndex", "extrinsicHash", "callPath", "callIndex", "palletIndex", "palletName", "palletCallIndex", "palletCallName", "extrinsicIsSuccessful", "extrinsicIsSigned", "isSuccessful" ], "properties": { "args": { "type": "object", "description": "Call arguments in JSON format. Schema depends on the call's schema definition in the runtime metadata.", "examples": [ { "args": { "dest": { "type": "Id", "value": "0xc35b9a45aadc8bb998ba7c4d17bda4d7d8e31f90a754a65709d3a3a71ff8fa7a" }, "value": "117284000000" }, "hash": "0xb778a81c1fd06d98b5ba1b37bb274101f7905ad5eca960f56ededf26248c4011" } ] }, "blockHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Hash of the call's block." }, "blockNumber": { "type": "integer", "format": "int64", "description": "Number of the call's block.", "example": 3172595, "minimum": 0 }, "blockStatus": { "$ref": "#/components/schemas/BlockStatus", "description": "Status of the call's block." }, "blockTimestamp": { "type": "integer", "format": "int64", "description": "Timestamp of the call's block. Milliseconds.", "example": 1755773684012, "minimum": 0 }, "callIndex": { "type": "array", "items": { "type": "integer", "format": "int32", "minimum": 0 }, "description": "Index of the call, represented as an unsigned integer array.", "example": [ 0, 1, 0 ] }, "callPath": { "type": "string", "description": "Rust-style path of the call represented with parameter names or indices.", "example": "root::calls:0" }, "extrinsicHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Hash of the call's extrinsic." }, "extrinsicIndex": { "type": "integer", "format": "int32", "description": "Index of the call's extrinsic.", "example": 1, "minimum": 0 }, "extrinsicIsSigned": { "type": "boolean", "description": "Whether the call's extrinsic was signed." }, "extrinsicIsSuccessful": { "type": "boolean", "description": "Whether the call's extrinsic was successful.\nNote: The extrinsic can be successful where the call has failed (see the `Utility.ForceBatch`` call)." }, "hash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Artificial call hash." }, "isSuccessful": { "type": "boolean", "description": "Whether the call was successful." }, "palletCallIndex": { "type": "integer", "format": "int32", "description": "Index of the call in its pallet.", "example": 5, "minimum": 0 }, "palletCallName": { "type": "string", "description": "Name of the call.", "example": "SetCode" }, "palletIndex": { "type": "integer", "format": "int32", "description": "Pallet index of the call.", "example": 14, "minimum": 0 }, "palletName": { "type": "string", "description": "Pallet name of the call.", "example": "System" }, "parentCallHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Hash of the parent call if this call is a nested call (batch, multisig, etc.)." }, "specVersion": { "type": "integer", "format": "int32", "description": "Runtime spec version of the call's block.", "example": 2000000, "minimum": 0 } }, "example": { "args": { "args": { "dest": { "type": "Id", "value": "0xc35b9a45aadc8bb998ba7c4d17bda4d7d8e31f90a754a65709d3a3a71ff8fa7a" }, "value": "117284000000" }, "hash": "0xb778a81c1fd06d98b5ba1b37bb274101f7905ad5eca960f56ededf26248c4011" }, "blockHash": "0x758fadeb5004882de8ba39ee2105302ad0ce93ecd68fe26b6fa09de6608e7a77", "blockNumber": 3172595, "blockStatus": "proposed", "blockTimestamp": 1765432302000, "callIndex": [ 0 ], "callPath": "root", "extrinsicHash": "0x18acc73c8e38351bc5b266cffacf39944945dd66342dab8ce2f86f2c97b3006f", "extrinsicIndex": 0, "extrinsicIsSigned": true, "extrinsicIsSuccessful": true, "hash": "0xf54535692c6b98bf9198d98ee28af8bc4d0753da6d42912042561dd8d32f4eca", "isSuccessful": true, "palletCallIndex": 0, "palletCallName": "TransferKeepAlive", "palletIndex": 1, "palletName": "Balances", "parentCallHash": "0x9bacc73c8e38351bc5b756cffacf39944945dd66342dab8ce2f86f2c97b3006f", "specVersion": 2000000 } }, "CallArgs": { "type": "object", "description": "Call arguments wrapper." }, "CursorPaginationData": { "type": "object", "description": "Pagination data for cursor responses.", "required": [ "pageSize" ], "properties": { "nextCursor": { "type": "string", "description": "Cursor for the next page, `null` if there's no next page." }, "pageSize": { "type": "integer", "format": "int32", "description": "Number of items per cursor page.", "example": 1, "minimum": 1 } }, "example": { "nextCursor": "eyJjdXJzb3JfcG9zaXRpb24iOnsiYmxvY2tfbnVtYmVyIjozMzY0MzMzLCJibG9ja19oYXNoX2hleCI6IjB4ZjdlMjkyYWQ3ZDNkYzE4MzUzOWYwOGM4NDgwMmNiMDc2ZTc5NjNkYjA2NTA3MjAwNTY1M2NjNWU4YzdkMTE3MyIsImluZGV4IjowfSwicXVlcnkiOnsiaW5jbHVkZV9hcmdzIjpmYWxzZX19", "pageSize": 1 } }, "Error": { "type": "object", "description": "Generic error type.", "required": [ "message" ], "properties": { "message": { "type": "string", "format": "text", "description": "Error message.", "example": "Error message." } } }, "Event": { "type": "object", "description": "A runtime event.", "required": [ "hash", "blockHash", "blockNumber", "specVersion", "blockStatus", "palletIndex", "palletName", "palletEventIndex", "palletEventName", "phase", "index" ], "properties": { "args": { "type": "object", "description": "Call arguments in JSON format. Schema depends on the call's schema definition in the runtime metadata.", "examples": [ { "dispatchInfo": { "class": { "type": "Mandatory", "value": [] }, "paysFee": { "type": "Yes", "value": [] }, "weight": { "proofSize": "0", "refTime": "125000000" } } } ] }, "blockHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Hash of the event's block." }, "blockNumber": { "type": "integer", "format": "int64", "description": "Number of the event's block.", "example": 3172595, "minimum": 0 }, "blockStatus": { "$ref": "#/components/schemas/BlockStatus", "description": "Status of the event's block." }, "blockTimestamp": { "type": "integer", "format": "int64", "description": "Timestamp of the event's block. Milliseconds.", "example": 1755773684012, "minimum": 0 }, "extrinsicHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Hash of the event's extrinsic, if it was output from an extrinsic." }, "extrinsicIndex": { "type": "integer", "format": "int32", "description": "Index of the event's extrinsic, if it was output from an extrinsic.", "example": 3, "minimum": 0 }, "hash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Artificial event hash." }, "index": { "type": "integer", "format": "int32", "description": "Index of the event in block.", "example": 77, "minimum": 0 }, "palletEventIndex": { "type": "integer", "format": "int32", "description": "Index of the event in its pallet.", "example": 12, "minimum": 0 }, "palletEventName": { "type": "string", "description": "Name of the event.", "example": "Rewarded" }, "palletIndex": { "type": "integer", "format": "int32", "description": "Pallet index of the event.", "example": 14, "minimum": 0 }, "palletName": { "type": "string", "description": "Pallet name of the event.", "example": "Staking" }, "phase": { "type": "string", "description": "Event phase.", "example": "ApplyExtrinsic" }, "specVersion": { "type": "integer", "format": "int32", "description": "Runtime spec version of the event's block.", "example": 2000000, "minimum": 0 }, "traceIndex": { "type": "integer", "format": "int32", "description": "Index of the event's trace, if traces are enabled.", "example": 78, "minimum": 0 } }, "example": { "args": { "dispatchInfo": { "class": { "type": "Mandatory", "value": [] }, "paysFee": { "type": "Yes", "value": [] }, "weight": { "proofSize": "0", "refTime": "125000000" } } }, "blockHash": "0x5c4de7f2cea658d5d3804d495e8246354f709735d371fd54caaf59e80181bcaa", "blockNumber": 10758052, "blockStatus": "proposed", "blockTimestamp": 1765456362000, "extrinsicHash": "0x6963ce866a54258d9d6ca9222060f7270a8f5f6b83eaac88e899bb73fbbb68cb", "extrinsicIndex": 0, "hash": "0x2c923bb54d06dfb649aaaf1c198eb1af9e19ec52b8e90267984496c128ee7adc", "index": 1, "palletEventIndex": 0, "palletEventName": "ExtrinsicSuccess", "palletIndex": 0, "palletName": "System", "phase": "ApplyExtrinsic", "specVersion": 2000003, "traceIndex": 78 } }, "EventArgs": { "type": "object", "description": "Event arguments wrapper." }, "Extrinsic": { "type": "object", "description": "An extrinsic in a block. Signed or unsigned.", "required": [ "blockHash", "blockNumber", "specVersion", "blockStatus", "hash", "index", "version", "isSuccessful" ], "properties": { "blockHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Hash of the extrinsic's block." }, "blockNumber": { "type": "integer", "format": "int64", "description": "Number of the extrinsic's block.", "minimum": 0 }, "blockStatus": { "$ref": "#/components/schemas/BlockStatus", "description": "Status of the extrinsic's block." }, "blockTimestamp": { "type": "integer", "format": "int64", "description": "Timestamp of the extrinsic's block. Milliseconds.", "minimum": 0 }, "extra": { "type": "object", "description": "Extrinsic extras in JSON format - checkNonce, checkGenesis, chargeTransactionPayment, etc.", "examples": [ { "chargeAssetTxPayment": { "assetId": null, "tip": "0" }, "checkGenesis": {}, "checkMetadataHash": { "mode": { "type": "Disabled", "value": [] } }, "checkMortality": { "type": "Mortal84", "value": "0" }, "checkNonZeroSender": {}, "checkNonce": "8362", "checkSpecVersion": {}, "checkTxVersion": {}, "checkWeight": {} } ] }, "hash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Extrinsic hash." }, "index": { "type": "integer", "format": "int32", "description": "Extrinsic index.", "minimum": 0 }, "isSuccessful": { "type": "boolean", "description": "Whether the extrinsic was successful." }, "signature": { "$ref": "#/components/schemas/MultiSignature", "description": "Extrinsic signature address." }, "signer": { "$ref": "#/components/schemas/MultiAddress", "description": "Extrinsic signer address." }, "specVersion": { "type": "integer", "format": "int32", "description": "Runtime spec version of the extrinsic's block.", "minimum": 0 }, "traceIndex": { "type": "integer", "format": "int32", "description": "Trace index for the extrinsic.", "minimum": 0 }, "version": { "type": "integer", "format": "int32", "description": "Extrinsic version in metadata.", "minimum": 0 } }, "example": { "blockHash": "0x758fadeb5004882de8ba39ee2105302ad0ce93ecd68fe26b6fa09de6608e7a77", "blockNumber": 3172595, "blockStatus": "proposed", "blockTimestamp": 1765432302000, "extra": { "chargeAssetTxPayment": { "assetId": null, "tip": "0" }, "checkGenesis": {}, "checkMetadataHash": { "mode": { "type": "Disabled", "value": [] } }, "checkMortality": { "type": "Mortal84", "value": "0" }, "checkNonZeroSender": {}, "checkNonce": "8362", "checkSpecVersion": {}, "checkTxVersion": {}, "checkWeight": {} }, "hash": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "index": 2, "isSuccessful": true, "signature": { "type": "sr25519", "value": "0xabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab" }, "signer": { "type": "accountId", "value": "0x269a84431cd8dfc5762beadfa54a8f21597c12d4f31e51f9f6f985f65ba0c626" }, "specVersion": 2000000, "traceIndex": 2, "version": 4 } }, "GenesisRecord": { "type": "object", "description": "A storage item initialized at genesis.", "required": [ "keyPrefix", "value" ], "properties": { "keyParams": { "$ref": "#/components/schemas/HexString", "description": "Storage item key parameter(s) for the genesis record." }, "keyPrefix": { "$ref": "#/components/schemas/HexString", "description": "Storage item key prefix for the genesis record." }, "knownKey": { "type": "string", "description": "If the record is a known UTF-8 key, the string representation of the key.", "example": ":extrinsic_index" }, "palletIndex": { "type": "integer", "format": "int32", "description": "If the record is a storage item, the storage item's pallet index in the metadata.", "example": 0, "minimum": 0 }, "palletName": { "type": "string", "description": "If the record is a storage item, the storage item's pallet name in the metadata.", "example": "System" }, "palletStorageItemIndex": { "type": "integer", "format": "int32", "description": "If the record is a storage item, the storage item's index in the pallet metadata.", "example": 4, "minimum": 0 }, "palletStorageItemName": { "type": "string", "description": "If the record is a storage item, the storage item's name.", "example": "BlockHash" }, "value": { "$ref": "#/components/schemas/HexString", "description": "Value of the genesis record." } }, "example": { "keyParams": "0xb4def25cfda6ef3a00000000", "keyPrefix": "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746", "palletIndex": 0, "palletName": "System", "palletStorageItemIndex": 4, "palletStorageItemName": "BlockHash", "value": "0x4545454545454545454545454545454545454545454545454545454545454545" } }, "Hash256Hex": { "type": "string", "description": "32-byte Blake2b-256, **always** `0x`-prefixed and lowercase in responses.\nInputs elsewhere may accept mixed case or missing `0x`; the API normalizes outputs.", "example": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "pattern": "^0x[a-f0-9]{64}$" }, "HexString": { "type": "string", "description": "Arbitrary hex-encoded bytes, `0x`-prefixed.", "examples": [ "0xdeadbeef", "0x0123456789abcdef" ], "pattern": "^0x(?:[0-9a-f]{2})+$" }, "HexStringParam": { "type": "string", "description": "Arbitrary hex-encoded bytes, mixed case, optional `0x`-prefix.", "examples": [ "0xdeadbeef", "0x0123456789abcdef" ], "pattern": "^0x(?:[0-9a-f]{2})+$" }, "Metadata": { "type": "object", "description": "Parsed metadata specification complete with its pallets.", "required": [ "specVersion", "metadataVersion", "pallets" ], "properties": { "metadataVersion": { "type": "integer", "format": "int32", "description": "Metadata version.", "example": 14, "minimum": 0 }, "pallets": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataPallet" }, "description": "Metadata pallets.", "example": [ { "calls": [ { "docs": [ "Make some on-chain remark." ], "index": 0, "name": "Remark" } ], "constants": [ { "docs": [ "The maximum length of a block (in bytes)." ], "index": 1, "name": "BlockLength", "typeId": 156, "typeName": "frame_system::limits::BlockLength", "value": { "max": { "mandatory": "5242880", "normal": "3932160", "operational": "5242880" } }, "valueHex": "0x00003c000000500000005000" } ], "errors": [ { "docs": [ "The name of specification does not match between the current runtime", "and the new runtime." ], "index": 0, "name": "InvalidSpecName" } ], "events": [ { "docs": [ "`:code` was updated." ], "index": 2, "name": "CodeUpdated" } ], "index": 0, "name": "System", "storageItems": [ { "docs": [ "Hash of the previous block." ], "index": 8, "keyPrefix": "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc", "name": "ParentHash" } ] } ] }, "specVersion": { "type": "integer", "format": "int32", "description": "Metadata runtime spec version.", "example": 1001, "minimum": 0 } } }, "MetadataCall": { "type": "object", "description": "A call defined in a metadata pallet.", "required": [ "index", "name", "docs" ], "properties": { "docs": { "$ref": "#/components/schemas/MetadataItemDocumentation", "description": "Call documentation. One item per line in the array." }, "index": { "type": "integer", "format": "int32", "description": "Call's index inside the metadata pallet.", "example": 37, "minimum": 0 }, "name": { "type": "string", "description": "Call name. Camel case.", "example": "Transfer" } } }, "MetadataConstant": { "type": "object", "description": "A constant defined in a metadata pallet.", "required": [ "index", "name", "typeName", "valueHex", "docs" ], "properties": { "docs": { "$ref": "#/components/schemas/MetadataItemDocumentation", "description": "Constant documentation. One item per line in the array." }, "index": { "type": "integer", "format": "int32", "description": "Constant's index inside the metadata pallet.", "example": 7, "minimum": 0 }, "name": { "type": "string", "description": "Constant name. Camel case.", "example": "BountyDepositBase" }, "typeId": { "type": "integer", "format": "int32", "description": "Id of the constant's type.", "example": 3, "minimum": 0 }, "typeName": { "type": "string", "description": "Name of the constant's type.", "example": "TypeName" }, "value": { "type": "object", "description": "Metadata constant value in JSON format. Schema depends on the definition within the runtime metadata.", "examples": [ { "proofSize": "8388608", "refTime": "1600000000000" } ] }, "valueHex": { "$ref": "#/components/schemas/HexString", "description": "Value of the constant. SCALE-encoded hexadecimal string." } } }, "MetadataError": { "type": "object", "description": "An error defined in a metadata pallet.", "required": [ "index", "name", "docs" ], "properties": { "docs": { "$ref": "#/components/schemas/MetadataItemDocumentation", "description": "Error documentation. One item per line in the array." }, "index": { "type": "integer", "format": "int32", "description": "Error's index inside the metadata pallet.", "example": 17, "minimum": 0 }, "name": { "type": "string", "description": "Error name. Camel case.", "example": "AssignmentsEmpty" } } }, "MetadataEvent": { "type": "object", "description": "An event defined in a metadata pallet.", "required": [ "index", "name", "docs" ], "properties": { "docs": { "$ref": "#/components/schemas/MetadataItemDocumentation", "description": "Event documentation. One item per line in the array." }, "index": { "type": "integer", "format": "int32", "description": "Event's index inside the metadata pallet.", "example": 21, "minimum": 0 }, "name": { "type": "string", "description": "Event name. Camel case.", "example": "CandidateBacked" } } }, "MetadataItemDocumentation": { "type": "array", "items": { "type": "string" }, "description": "Metadata item documentation. One item per line in the array.", "example": [ "Call documentation line 1.", "Call documentation line 2." ] }, "MetadataJSON": { "description": "Original Substrate runtime metadata in JSON representation." }, "MetadataPallet": { "type": "object", "description": "A pallet defined in metadata, with its calls, constants, errors, events, and storage items.", "required": [ "index", "name", "calls", "constants", "errors", "events", "storageItems" ], "properties": { "calls": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataCall" }, "description": "Pallet's calls." }, "constants": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataConstant" }, "description": "Pallet's constants." }, "errors": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataError" }, "description": "Pallet's errors." }, "events": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataEvent" }, "description": "Pallet's events." }, "index": { "type": "integer", "format": "int32", "description": "Pallet's index inside the metadata.", "example": 53, "minimum": 0 }, "name": { "type": "string", "description": "Pallet's name.", "example": "Balances" }, "storageItems": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataStorageItem" }, "description": "Pallet's storage items." } }, "example": { "calls": [ { "docs": [ "Make some on-chain remark." ], "index": 0, "name": "Remark" } ], "constants": [ { "docs": [ "The maximum length of a block (in bytes)." ], "index": 1, "name": "BlockLength", "typeId": 156, "typeName": "frame_system::limits::BlockLength", "value": { "max": { "mandatory": "5242880", "normal": "3932160", "operational": "5242880" } }, "valueHex": "0x00003c000000500000005000" } ], "errors": [ { "docs": [ "The name of specification does not match between the current runtime", "and the new runtime." ], "index": 0, "name": "InvalidSpecName" } ], "events": [ { "docs": [ "`:code` was updated." ], "index": 2, "name": "CodeUpdated" } ], "index": 0, "name": "System", "storageItems": [ { "docs": [ "Hash of the previous block." ], "index": 8, "keyPrefix": "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc", "name": "ParentHash" } ] } }, "MetadataPalletSummary": { "type": "object", "description": "The summary of a pallet defined in metadata, with only its index and name.", "required": [ "index", "name" ], "properties": { "index": { "type": "integer", "format": "int32", "description": "Pallet's index inside the metadata.", "example": 53, "minimum": 0 }, "name": { "type": "string", "description": "Pallet's name.", "example": "Balances" } } }, "MetadataStorageItem": { "type": "object", "description": "A storage item defined in a metadata pallet.", "required": [ "index", "name", "keyPrefix", "docs" ], "properties": { "docs": { "$ref": "#/components/schemas/MetadataItemDocumentation", "description": "Storage item documentation. One item per line in the array." }, "index": { "type": "integer", "format": "int32", "description": "Storage item's index inside the metadata pallet.", "example": 0, "minimum": 0 }, "keyPrefix": { "$ref": "#/components/schemas/HexString", "description": "Storage item Substrate storage key prefix." }, "name": { "type": "string", "description": "Storage item name. Camel case.", "example": "Account" } } }, "MetadataSummary": { "type": "object", "description": "Basic fields to represent a runtime version metadata.", "required": [ "specVersion", "metadataVersion" ], "properties": { "metadataVersion": { "type": "integer", "format": "int32", "description": "Metadata version.", "example": 14, "minimum": 0 }, "specVersion": { "type": "integer", "format": "int32", "description": "Metadata runtime spec version.", "example": 1001, "minimum": 0 } }, "example": { "metadataVersion": 14, "specVersion": 1001 } }, "MultiAddress": { "oneOf": [ { "$ref": "#/components/schemas/MultiAddressAccountId" }, { "$ref": "#/components/schemas/MultiAddressAccountIndex" }, { "$ref": "#/components/schemas/MultiAddressRaw" }, { "$ref": "#/components/schemas/MultiAddress20" }, { "$ref": "#/components/schemas/MultiAddress32" } ], "description": "Discriminated union for the Substrate multi-address type.\nThe `type` tag selects the variant; `value` carries the payload.", "example": { "type": "accountId", "value": "0x008d8404893c7b4b80f397605cc96e61fec3c89676c8c2794a2a7d281d678b1a" }, "discriminator": { "propertyName": "type", "mapping": { "accountId": "#/components/schemas/MultiAddressAccountId", "address20": "#/components/schemas/MultiAddress20", "address32": "#/components/schemas/MultiAddress32", "index": "#/components/schemas/MultiAddressIndex", "raw": "#/components/schemas/MultiAddressRaw" } } }, "MultiAddress20": { "type": "object", "description": "20-byte address.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiAddress20Type", "description": "Must be `address20`." }, "value": { "$ref": "#/components/schemas/Address20Hex" } } }, "MultiAddress20Type": { "type": "string", "description": "Multi-address 20-byte address type.", "enum": [ "address20" ] }, "MultiAddress32": { "type": "object", "description": "32-byte address.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiAddress32Type", "description": "Must be `address32`." }, "value": { "$ref": "#/components/schemas/Address32Hex" } } }, "MultiAddress32Type": { "type": "string", "description": "Multi-address 32-byte address type.", "enum": [ "address32" ] }, "MultiAddressAccountId": { "type": "object", "description": "32-byte account id.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiAddressAccountIdType", "description": "Must be `accountId`." }, "value": { "$ref": "#/components/schemas/AccountIdHex", "description": "Account id as 32-byte hex." } } }, "MultiAddressAccountIdType": { "type": "string", "description": "Multi-address 32-byte account id type.", "enum": [ "accountId" ] }, "MultiAddressAccountIndex": { "type": "object", "description": "Account index.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiAddressIndexType", "description": "Must be `index`." }, "value": { "type": "integer", "format": "int32", "description": "Account index value.", "example": 83, "minimum": 0 } } }, "MultiAddressIndexType": { "type": "string", "description": "Multi-address account index type.", "enum": [ "index" ] }, "MultiAddressRaw": { "type": "object", "description": "Raw account address.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiAddressRawType", "description": "Must be `raw`." }, "value": { "$ref": "#/components/schemas/HexString" } } }, "MultiAddressRawType": { "type": "string", "description": "Multi-address raw account address type.", "enum": [ "raw" ] }, "MultiSignature": { "oneOf": [ { "$ref": "#/components/schemas/MultiSignatureECDSA" }, { "$ref": "#/components/schemas/MultiSignatureEth" }, { "$ref": "#/components/schemas/MultiSignatureEd25519" }, { "$ref": "#/components/schemas/MultiSignatureSr25519" } ], "description": "Discriminated union for the Substrate multi-signature type.\nThe `type` tag selects the variant; `value` carries the payload.", "example": { "type": "sr25519", "value": "0xabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab" }, "discriminator": { "propertyName": "type", "mapping": { "ecdsa": "#/components/schemas/MultiSignatureECDSA", "ed25519": "#/components/schemas/MultiSignatureEd25519", "eth": "#/components/schemas/MultiSignatureEth", "sr25519": "#/components/schemas/MultiSignatureSr25519" } } }, "MultiSignatureECDSA": { "type": "object", "description": "ECDSA signature.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiSignatureECDSAType", "description": "Must be `ecdsa`." }, "value": { "$ref": "#/components/schemas/SignatureHexString", "description": "ECDSA signature hex." } } }, "MultiSignatureECDSAType": { "type": "string", "description": "Multi-signature ECDSA type.", "enum": [ "ecdsa" ] }, "MultiSignatureEd25519": { "type": "object", "description": "Ed25519 signature.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiSignatureEd25519Type", "description": "Must be `ed25519`." }, "value": { "$ref": "#/components/schemas/SignatureHexString", "description": "Ed25519 signature hex." } } }, "MultiSignatureEd25519Type": { "type": "string", "description": "Multi-signature Ed25519 type.", "enum": [ "ed25519" ] }, "MultiSignatureEth": { "type": "object", "description": "Eth signature.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiSignatureEthType", "description": "Must be `eth`." }, "value": { "$ref": "#/components/schemas/SignatureHexString", "description": "Eth signature hex." } } }, "MultiSignatureEthType": { "type": "string", "description": "Multi-signature Eth type (ECDSA over secp256k1, applied to a Keccak-256 hash).", "enum": [ "eth" ] }, "MultiSignatureSr25519": { "type": "object", "description": "Sr25519 signature.", "required": [ "type", "value" ], "properties": { "type": { "$ref": "#/components/schemas/MultiSignatureSr25519Type", "description": "Must be `sr25519`." }, "value": { "$ref": "#/components/schemas/SignatureHexString", "description": "Sr25519 signature hex." } } }, "MultiSignatureSr25519Type": { "type": "string", "description": "Multi-signature Sr25519 type.", "enum": [ "sr25519" ] }, "PaginationData": { "type": "object", "description": "Pagination data for paged responses.", "required": [ "page", "pageSize", "total" ], "properties": { "page": { "type": "integer", "format": "int32", "description": "Current page number. 1-indexed.", "example": 1, "minimum": 1 }, "pageSize": { "type": "integer", "format": "int32", "description": "Number of items per page.", "example": 1, "minimum": 1 }, "total": { "type": "integer", "format": "int64", "description": "Total number of items across all pages.", "example": 10467367, "minimum": 0 } }, "example": { "page": 1, "pageSize": 1, "total": 324 } }, "SignatureHexString": { "type": "string", "description": "Hex-encoded Substrate extrinsic signature. Supports Sr25519/Ed25519 (64 bytes → 128 hex chars)\nand ECDSA (65 bytes → 130 hex chars). **Always** `0x`-prefixed and lowercase in responses.\nInputs elsewhere may accept mixed case or missing `0x`; the API normalizes outputs.", "examples": [ "0xabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab", "0xababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab" ], "pattern": "^0x([0-9a-f]{128}|[0-9a-f]{130})$" }, "Trace": { "type": "object", "description": "A trace record in a block.", "required": [ "hash", "blockHash", "blockNumber", "specVersion", "index", "keyPrefix", "extId", "storageMethod" ], "properties": { "blockHash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Hash of the trace's block." }, "blockNumber": { "type": "integer", "format": "int64", "description": "Number of the trace's block.", "example": 3172595, "minimum": 0 }, "extId": { "$ref": "#/components/schemas/HexString", "description": "ExtId value for the trace record." }, "hash": { "$ref": "#/components/schemas/Hash256Hex", "description": "Artificial hash of the trace (`sha256(block_hash || index)`)." }, "index": { "type": "integer", "format": "int32", "description": "Index of the trace within the block.", "example": 83, "minimum": 0 }, "keyParams": { "$ref": "#/components/schemas/HexString", "description": "Substrate storage parameters appended to the end of the storage key,\nif the storage item has parameters." }, "keyPrefix": { "$ref": "#/components/schemas/HexString", "description": "Substrate storage key prefix of the trace record." }, "knownKey": { "type": "string", "description": "If the trace record is for a known UTF-8 key, the string representation of the key.", "example": ":extrinsic_index" }, "palletIndex": { "type": "integer", "format": "int32", "description": "If the trace record is a storage item, the storage item's pallet index in the metadata.", "example": 14, "minimum": 0 }, "palletName": { "type": "string", "description": "If the trace record is a storage item, the storage item's pallet name in the metadata.", "example": "System" }, "palletStorageItemIndex": { "type": "integer", "format": "int32", "description": "If the trace record is a storage item, the storage item's index in the pallet metadata.", "example": 4, "minimum": 0 }, "palletStorageItemName": { "type": "string", "description": "If the trace record is a storage item, the storage item's name.", "example": "BlockHash" }, "parentId": { "type": [ "string", "null" ] }, "specVersion": { "type": "integer", "format": "int32", "description": "Runtime spec version of the call's block.", "example": 2000000, "minimum": 0 }, "storageMethod": { "$ref": "#/components/schemas/TraceStorageMethod", "description": "Trace storage method." } }, "example": { "blockHash": "0x2f08d6887f29369af351118631221891b47ca5f0c2ef14f4da0dd32c3bed0d77", "blockNumber": 3213251, "extId": "0x3e44", "hash": "0xebae2efe1479e7e4535c8ffb337359e252a54ac77a13c6095c9bbc5e78622daa", "index": 20, "keyParams": "0x5a3fb8de4321e12fad081eaeece61bc56d6f646c506f745374616b650000000000000000000000000000000000000000", "keyPrefix": "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9", "palletIndex": 0, "palletName": "System", "palletStorageItemIndex": 0, "palletStorageItemName": "Account", "parentId": null, "specVersion": 2000000, "storageMethod": "Put" } }, "TraceStorageMethod": { "type": "string", "description": "Block trace storage method.", "enum": [ "Put", "ChildPut", "ChildKill", "ClearPrefix", "ChildClearPrefix", "Append", "Genesis" ] } }, "responses": { "BadRequest": { "description": "Invalid path or query parameter(s).", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "BlockList": { "description": "List of matching blocks.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Block" } } } } }, "CursorBlockList": { "description": "List of matching blocks, with a cursor for the next page.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Block" }, "example": [ { "author": { "type": "accountId", "value": "0x269a84431cd8dfc5762beadfa54a8f21597c12d4f31e51f9f6f985f65ba0c626" }, "eventCount": 56, "extrinsicCount": 2, "extrinsicRoot": "0x7893dd573a5033a6d785bf4038c237cbd8e1f3730d177d4f9b21c8d2c7b34454", "hash": "0xc82fe0d5752d42ae3d325f14206859f86cec7447f244d5b4bccfc2a00bd58df8", "number": 27419831, "parentHash": "0x1615581259dd1ac45fea1b23406367ca79c9f6dfa3b3b1115517c6e86250c42b", "specVersion": 1006001, "stateRoot": "0x8c8b0b599733c41bad79a617d8f2f0213a5d965d287cee16c9efd65f23001603", "status": "finalized", "timestamp": 1755773684012, "weight": { "mandatory": { "proofSize": "204955", "refTime": "701777135384" }, "normal": { "proofSize": "0", "refTime": "0" }, "operational": { "proofSize": "0", "refTime": "0" } } } ] }, "pagination": { "$ref": "#/components/schemas/CursorPaginationData" } } } } } }, "CursorCallList": { "description": "List of matching events, with a cursor for the next page.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Call" }, "example": [ { "args": { "args": { "dest": { "type": "Id", "value": "0xc35b9a45aadc8bb998ba7c4d17bda4d7d8e31f90a754a65709d3a3a71ff8fa7a" }, "value": "117284000000" }, "hash": "0xb778a81c1fd06d98b5ba1b37bb274101f7905ad5eca960f56ededf26248c4011" }, "blockHash": "0x758fadeb5004882de8ba39ee2105302ad0ce93ecd68fe26b6fa09de6608e7a77", "blockNumber": 3172595, "blockStatus": "proposed", "blockTimestamp": 1765432302000, "callIndex": [ 0 ], "callPath": "root", "extrinsicHash": "0x18acc73c8e38351bc5b266cffacf39944945dd66342dab8ce2f86f2c97b3006f", "extrinsicIndex": 0, "extrinsicIsSigned": true, "extrinsicIsSuccessful": true, "hash": "0xf54535692c6b98bf9198d98ee28af8bc4d0753da6d42912042561dd8d32f4eca", "isSuccessful": true, "palletCallIndex": 0, "palletCallName": "TransferKeepAlive", "palletIndex": 1, "palletName": "Balances", "parentCallHash": "0x9bacc73c8e38351bc5b756cffacf39944945dd66342dab8ce2f86f2c97b3006f", "specVersion": 2000000 } ] }, "pagination": { "$ref": "#/components/schemas/CursorPaginationData" } } } } } }, "CursorEventList": { "description": "List of matching events, with a cursor for the next page.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Event" }, "example": [ { "args": { "dispatchInfo": { "class": { "type": "Mandatory", "value": [] }, "paysFee": { "type": "Yes", "value": [] }, "weight": { "proofSize": "0", "refTime": "125000000" } } }, "blockHash": "0x5c4de7f2cea658d5d3804d495e8246354f709735d371fd54caaf59e80181bcaa", "blockNumber": 10758052, "blockStatus": "proposed", "blockTimestamp": 1765456362000, "extrinsicHash": "0x6963ce866a54258d9d6ca9222060f7270a8f5f6b83eaac88e899bb73fbbb68cb", "extrinsicIndex": 0, "hash": "0x2c923bb54d06dfb649aaaf1c198eb1af9e19ec52b8e90267984496c128ee7adc", "index": 1, "palletEventIndex": 0, "palletEventName": "ExtrinsicSuccess", "palletIndex": 0, "palletName": "System", "phase": "ApplyExtrinsic", "specVersion": 2000003, "traceIndex": 78 } ] }, "pagination": { "$ref": "#/components/schemas/CursorPaginationData" } } } } } }, "CursorExtrinsicList": { "description": "List of matching extrinsics, with a cursor for the next page.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Extrinsic" }, "example": [ { "blockHash": "0x758fadeb5004882de8ba39ee2105302ad0ce93ecd68fe26b6fa09de6608e7a77", "blockNumber": 3172595, "blockStatus": "proposed", "blockTimestamp": 1765432302000, "extra": { "chargeAssetTxPayment": { "assetId": null, "tip": "0" }, "checkGenesis": {}, "checkMetadataHash": { "mode": { "type": "Disabled", "value": [] } }, "checkMortality": { "type": "Mortal84", "value": "0" }, "checkNonZeroSender": {}, "checkNonce": "8362", "checkSpecVersion": {}, "checkTxVersion": {}, "checkWeight": {} }, "hash": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "index": 2, "isSuccessful": true, "signature": { "type": "sr25519", "value": "0xabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab" }, "signer": { "type": "accountId", "value": "0x269a84431cd8dfc5762beadfa54a8f21597c12d4f31e51f9f6f985f65ba0c626" }, "specVersion": 2000000, "traceIndex": 2, "version": 4 } ] }, "pagination": { "$ref": "#/components/schemas/CursorPaginationData" } } } } } }, "CursorTraceList": { "description": "List of matching traces, with a cursor for the next page.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Trace" }, "example": [ { "blockHash": "0x2f08d6887f29369af351118631221891b47ca5f0c2ef14f4da0dd32c3bed0d77", "blockNumber": 3213251, "extId": "0x3e44", "hash": "0xebae2efe1479e7e4535c8ffb337359e252a54ac77a13c6095c9bbc5e78622daa", "index": 20, "keyParams": "0x5a3fb8de4321e12fad081eaeece61bc56d6f646c506f745374616b650000000000000000000000000000000000000000", "keyPrefix": "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9", "palletIndex": 0, "palletName": "System", "palletStorageItemIndex": 0, "palletStorageItemName": "Account", "parentId": null, "specVersion": 2000000, "storageMethod": "Put" } ] }, "pagination": { "$ref": "#/components/schemas/CursorPaginationData" } } } } } }, "EventList": { "description": "List of matching events.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Event" } } } } }, "ExtrinsicList": { "description": "List of matching extrinsics.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Extrinsic" } } } } }, "InternalServerError": { "description": "Internal server error.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "MetadataPalletCallList": { "description": "All calls in a pallet.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataCall" } } } } }, "MetadataPalletConstantList": { "description": "All constants in a pallet.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataConstant" } } } } }, "MetadataPalletErrorList": { "description": "All errors in a pallet.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataError" } } } } }, "MetadataPalletEventList": { "description": "All events in a pallet.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataEvent" } } } } }, "MetadataPalletStorageItemList": { "description": "All storage items in a pallet.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataStorageItem" } } } } }, "MetadataPalletSummaryList": { "description": "List of summaries of matching metadata pallets.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataPalletSummary" } } } } }, "NotFound": { "description": "Item not found.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "PaginatedCallList": { "description": "Paginated list of matching calls.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Call" }, "example": [ { "args": { "args": { "dest": { "type": "Id", "value": "0xc35b9a45aadc8bb998ba7c4d17bda4d7d8e31f90a754a65709d3a3a71ff8fa7a" }, "value": "117284000000" }, "hash": "0xb778a81c1fd06d98b5ba1b37bb274101f7905ad5eca960f56ededf26248c4011" }, "blockHash": "0x758fadeb5004882de8ba39ee2105302ad0ce93ecd68fe26b6fa09de6608e7a77", "blockNumber": 3172595, "blockStatus": "proposed", "blockTimestamp": 1765432302000, "callIndex": [ 0 ], "callPath": "root", "extrinsicHash": "0x18acc73c8e38351bc5b266cffacf39944945dd66342dab8ce2f86f2c97b3006f", "extrinsicIndex": 0, "extrinsicIsSigned": true, "extrinsicIsSuccessful": true, "hash": "0xf54535692c6b98bf9198d98ee28af8bc4d0753da6d42912042561dd8d32f4eca", "isSuccessful": true, "palletCallIndex": 0, "palletCallName": "TransferKeepAlive", "palletIndex": 1, "palletName": "Balances", "parentCallHash": "0x9bacc73c8e38351bc5b756cffacf39944945dd66342dab8ce2f86f2c97b3006f", "specVersion": 2000000 } ] }, "pagination": { "$ref": "#/components/schemas/PaginationData" } } } } } }, "PaginatedEventList": { "description": "Paginated list of matching events.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Event" }, "example": [ { "args": { "dispatchInfo": { "class": { "type": "Mandatory", "value": [] }, "paysFee": { "type": "Yes", "value": [] }, "weight": { "proofSize": "0", "refTime": "125000000" } } }, "blockHash": "0x5c4de7f2cea658d5d3804d495e8246354f709735d371fd54caaf59e80181bcaa", "blockNumber": 10758052, "blockStatus": "proposed", "blockTimestamp": 1765456362000, "extrinsicHash": "0x6963ce866a54258d9d6ca9222060f7270a8f5f6b83eaac88e899bb73fbbb68cb", "extrinsicIndex": 0, "hash": "0x2c923bb54d06dfb649aaaf1c198eb1af9e19ec52b8e90267984496c128ee7adc", "index": 1, "palletEventIndex": 0, "palletEventName": "ExtrinsicSuccess", "palletIndex": 0, "palletName": "System", "phase": "ApplyExtrinsic", "specVersion": 2000003, "traceIndex": 78 } ] }, "pagination": { "$ref": "#/components/schemas/PaginationData" } } } } } }, "PaginatedExtrinsicList": { "description": "Paginated list of matching extrinsics.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Extrinsic" }, "example": [ { "blockHash": "0x758fadeb5004882de8ba39ee2105302ad0ce93ecd68fe26b6fa09de6608e7a77", "blockNumber": 3172595, "blockStatus": "proposed", "blockTimestamp": 1765432302000, "extra": { "chargeAssetTxPayment": { "assetId": null, "tip": "0" }, "checkGenesis": {}, "checkMetadataHash": { "mode": { "type": "Disabled", "value": [] } }, "checkMortality": { "type": "Mortal84", "value": "0" }, "checkNonZeroSender": {}, "checkNonce": "8362", "checkSpecVersion": {}, "checkTxVersion": {}, "checkWeight": {} }, "hash": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "index": 2, "isSuccessful": true, "signature": { "type": "sr25519", "value": "0xabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab" }, "signer": { "type": "accountId", "value": "0x269a84431cd8dfc5762beadfa54a8f21597c12d4f31e51f9f6f985f65ba0c626" }, "specVersion": 2000000, "traceIndex": 2, "version": 4 } ] }, "pagination": { "$ref": "#/components/schemas/PaginationData" } } } } } }, "PaginatedGenesisRecordList": { "description": "Paginated list of genesis record items.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/GenesisRecord" }, "example": [ { "keyParams": "0xb4def25cfda6ef3a00000000", "keyPrefix": "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746", "palletIndex": 0, "palletName": "System", "palletStorageItemIndex": 4, "palletStorageItemName": "BlockHash", "value": "0x4545454545454545454545454545454545454545454545454545454545454545" } ] }, "pagination": { "$ref": "#/components/schemas/PaginationData" } } } } } }, "PaginatedMetadataList": { "description": "Response with a paginated list of metadata summaries.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataSummary" }, "example": [ { "metadataVersion": 14, "specVersion": 1001 } ] }, "pagination": { "$ref": "#/components/schemas/PaginationData" } } } } } }, "PaginatedTraceList": { "description": "Paginated list of matching traces.", "headers": { "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "pagination" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Trace" }, "example": [ { "blockHash": "0x2f08d6887f29369af351118631221891b47ca5f0c2ef14f4da0dd32c3bed0d77", "blockNumber": 3213251, "extId": "0x3e44", "hash": "0xebae2efe1479e7e4535c8ffb337359e252a54ac77a13c6095c9bbc5e78622daa", "index": 20, "keyParams": "0x5a3fb8de4321e12fad081eaeece61bc56d6f646c506f745374616b650000000000000000000000000000000000000000", "keyPrefix": "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9", "palletIndex": 0, "palletName": "System", "palletStorageItemIndex": 0, "palletStorageItemName": "Account", "parentId": null, "specVersion": 2000000, "storageMethod": "Put" } ] }, "pagination": { "$ref": "#/components/schemas/PaginationData" } } } } } }, "TooManyRequests": { "description": "Rate limit exceeded.", "headers": { "Retry-After": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Limit": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-RateLimit-Remaining": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, "X-Retry-After": { "schema": { "type": "integer", "format": "int32", "minimum": 0 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } }, "tags": [ { "name": "block", "description": "Endpoints related to blocks." }, { "name": "call", "description": "Endpoints related to calls in extrinsics." }, { "name": "event", "description": "Endpoints related to events." }, { "name": "extrinsic", "description": "Endpoints related to extrinsics." }, { "name": "genesis", "description": "Endpoints related to genesis records." }, { "name": "metadata", "description": "Endpoints related to metadata." }, { "name": "system", "description": "Endpoints related to system management (workers, monitoring, etc.)." }, { "name": "trace", "description": "Endpoints related to block traces." } ] }