state_getMetadata
Returns the runtime metadata on Asset Hub.
Use Cases#
- Runtime introspection - Discover available pallets and calls
- Extrinsic building - Get call and type information for native stablecoin transfers (USDC, USDT), DOT staking and governance, and cross-chain asset management via XCM
- Storage key generation - Build storage keys from metadata
- Client generation - Auto-generate typed APIs
Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
blockHash | String | No | Block hash for historical metadata |
Request#
{
"jsonrpc": "2.0",
"method": "state_getMetadata",
"params": [],
"id": 1
}
Code Examples#
- cURL
- JavaScript
- Python
curl https://api-asset-hub-polkadot.n.dwellir.com/<YOUR_API_KEY>/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "state_getMetadata",
"params": [],
"id": 1
}'
import { ApiPromise, WsProvider } from '@polkadot/api';
const provider = new WsProvider('wss://api-asset-hub-polkadot.n.dwellir.com/YOUR_API_KEY');
const api = await ApiPromise.create({ provider });
// Get runtime metadata
const metadata = await api.rpc.state.getMetadata();
// List available pallets
const pallets = metadata.asLatest.pallets.map(p => p.name.toString());
console.log('Available pallets:', pallets);
// Get specific pallet info
const systemPallet = metadata.asLatest.pallets.find(p => p.name.toString() === 'System');
console.log('System pallet calls:', systemPallet.calls.isSome ? 'Available' : 'None');
await api.disconnect();
import requests
def get_metadata():
url = 'https://api-asset-hub-polkadot.n.dwellir.com/<YOUR_API_KEY>/YOUR_API_KEY'
payload = {
'jsonrpc': '2.0',
'method': 'state_getMetadata',
'params': [],
'id': 1
}
response = requests.post(url, json=payload)
return response.json()['result']
metadata_hex = get_metadata()
print(f'Metadata length: {len(metadata_hex)} bytes')
Related Methods#
state_getRuntimeVersion- Get runtime versionstate_getStorage- Query storage