Delightful JavaScript/TypeScript client for Polkadot & Substrate
Dedot is the next-generation JavaScript client for Polkadot and Substrate-based blockchains. Designed to elevate the dapp development experience, Dedot is built & optimized to be lightweight and tree-shakable, offering precise Types & APIs suggestions for individual Substrate-based blockchains and ink! Smart Contracts. Dedot also helps dapps efficiently connect to multiple chains simultaneously as we head toward a seamless multi-chain future.
@polkadot/api
, easy & fast migration!@polkadot/extension
-based walletsCheck out Dedot documentation on the website: https://dedot.dev
npm i dedot # or yarn, pnpm
npm i -D @dedot/chaintypes
import { DedotClient, WsProvider } from 'dedot';
import type { PolkadotApi } from '@dedot/chaintypes';
const provider = new WsProvider('wss://rpc.polkadot.io');
const client = await DedotClient.new<PolkadotApi>(provider);
// Call rpc `state_getMetadata` to fetch raw scale-encoded metadata and decode it.
const metadata = await client.rpc.state_getMetadata();
console.log('Metadata:', metadata);
// Listen to best blocks
client.chainHead.on('bestBlock', (block: PinnedBlock) => { // or 'finalizedBlock'
console.log(`Current best block number: ${block.number}, hash: ${block.hash}`);
});
// Query on-chain storage
const balance = await client.query.system.account(<address>);
console.log('Balance:', balance);
// Get pallet constants
const ss58Prefix = client.consts.system.ss58Prefix;
console.log('Polkadot ss58Prefix:', ss58Prefix);
// Call runtime api
const pendingRewards = await client.call.nominationPoolsApi.pendingRewards(<address>)
console.log('Pending rewards:', pendingRewards);
// await unsub();
// await client.disconnect();
Dedot take a lot of inspirations from project @polkadot/api. A big thank to all the maintainers/contributors of this awesome library.
Proudly supported by Web3 Foundation Grants Program.