ChainApi
ChainApi
interface is a concept that allows Dedot to enable Types & APIs suggestions for any Substrated-based blockchains. Each Substrate-based blockchain has its own ChainApi
interface that exposes all of its Types & APIs to interact with the node & runtime.
A ChainApi
interface has the following structure:
export interface VersionedSubstrateApi<Rv extends RpcVersion>
rpc: ChainJsonRpcApis<Rv>; // json-rpc methods
consts: ChainConsts<Rv>; // runtime constants
query: ChainStorage<Rv>; // on-chain storage queries
errors: ChainErrors<Rv>; // on-chain errors
events: ChainEvents<Rv>; // on-chain events
call: RuntimeApis<Rv>; // runtime apis
tx: ChainTx<Rv>; // transactions
}
export interface ChainApi {
legacy: VersionedSubstrateApi<RpcLegacy>; // interface for legacy JSON-RPC
v2: VersionedSubstrateApi<RpcV2>; // interface for new JSON-RPC
}
Access ChainApi
interfaces
ChainApi
interfacesDedot offers 2 different ways to access ChainApi
interfaces for different Substrate-based blockchains.
Known ChainApi
interfaces defined in @dedot/chaintypes
package
ChainApi
interfaces defined in @dedot/chaintypes
packageInstall package @dedot/chaintypes
to get access to a list of known ChainApi
interfaces. For example:
...
Generate ChainApi
interface using Dedot's CLI
ChainApi
interface using Dedot's CLIYou can also generate ChainApi
interface for any Substrate-based blockchains using dedot
' CLI.
Generate ChainApi
interface for a local substrate-based blockchains running on ws://127.0.0.1:9944
:
npx dedot chaintypes -w ws://127.0.0.1:9944
You can also generate ChainApi
interface using a raw metadata file (.scale) or runtime wasm file (.wasm). More information about this can be found in the CLI page.
Using ChainApi
interface
ChainApi
interfaceChainApi
interface is the generic parameter for Dedot's clients, so when intialize a Dedot client, make sure to pick the right ChainApi
interface of the chain you're working with to enable Types & APIs suggestions for that particular chains.

Example working with Polkadot Asset Hub:
import { DedotClient, WsProvider } from 'dedot';
import type { PolkadotAssetHubApi } from '@dedot/chaintypes';
// Initialize providers & clients
const provider = new WsProvider('wss://polkadot-asset-hub-rpc.polkadot.io');
const client = await DedotClient.new<PolkadotAssetHubApi>(provider);
Last updated
Was this helpful?