Skip to content

dedotdev/dedot

Repository files navigation

dedot

Delightful JavaScript/TypeScript client for Polkadot & Substrate

Version Unit test E2E test License Chat on Telegram


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.

Features

Documentation

Check out Dedot documentation on the website: https://dedot.dev

Example

  1. Install packages
npm i dedot # or yarn, pnpm

npm i -D @dedot/chaintypes
  1. Connect to the network
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();

Resources & announcements

Acknowledment

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.

License

Apache-2.0