For the complete documentation index, see llms.txt. This page is also available as Markdown.

state_getMetadata - Bittensor

Example code for the state_getMetadata JSON-RPC method. Complete guide on how to use state_getMetadata JSON-RPC in GetBlock Web3 documentation.

Returns the full SCALE-encoded runtime metadata — pallets, calls, events, storage layout, runtime APIs. Required by every Substrate client to know how to encode extrinsics and decode storage.

Substrate native JSON-RPC method. Call against a GetBlock endpoint configured for the Substrate interface. For typed SDK access, use Polkadot.js (TypeScript) or substrateinterface (Python).

Parameters

Parameter
Type
Required
Description

blockHash

string

No

Block hash to query metadata at. Omit for the latest block.

Request Example

curl --location --request POST 'https://go.getblock.io/<ACCESS-TOKEN>/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc": "2.0",
    "method": "state_getMetadata",
    "params": [],
    "id": "getblock.io"
}'
import axios from 'axios';

const data = JSON.stringify({
    "jsonrpc": "2.0",
    "method": "state_getMetadata",
    "params": [],
    "id": "getblock.io"
});

const config = {
    method: 'post',
    url: 'https://go.getblock.io/<ACCESS-TOKEN>/',
    headers: {
        'Content-Type': 'application/json'
    },
    data: data
};

axios(config)
    .then(response => console.log(JSON.stringify(response.data, null, 2)))
    .catch(error => console.log(error));

Response Example

{
    "jsonrpc": "2.0",
    "id": "getblock.io",
    "result": "0x6d6574610e441853797374656d3853797374656d436f6e6669675c..."
}

Response Parameters

Field
Type
Description

result

string

Hex-encoded SCALE-encoded runtime metadata (typically very large — multi-kilobyte)

Use Cases

  • Client initialization — Polkadot.js and other clients call this on connect to learn the runtime layout

  • Detecting runtime upgrades (metadata changes between releases)

  • Building introspection tools

Error Handling

Status Code
Error Message
Cause

403

Forbidden

Missing or invalid <ACCESS-TOKEN>

-32602

Invalid params

Request parameters are missing or malformed

-32601

Method not found

Method does not exist on this interface — check whether you're calling a Substrate method on an EVM endpoint or vice versa

-32603

Internal error

Server-side error while processing the request

429

Too Many Requests

Rate limit exceeded for your plan

SDK Integration

Last updated

Was this helpful?