# Introducing Dedot: A delightful JavaScript client for Polkadot & Substrate-based blockchains

**URL:** <https://forum.polkadot.network/t/introducing-dedot-a-delightful-javascript-client-for-polkadot-substrate-based-blockchains/8956>\
**Category:** Tech Talk\
**Created:** [July 4, 2024, 8:17am UTC](https://forum.polkadot.network/t/introducing-dedot-a-delightful-javascript-client-for-polkadot-substrate-based-blockchains/8956 "2024-07-04T08:17:57Z")\
**Posts on this page:** 1\
**Showing post:** 22

<div class="post-metadata">

**Author:** ![sinzii](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/sinzii/32/6947_2.png) [@sinzii](https://forum.polkadot.network/u/sinzii)\
**Post date:** [May 6, 2025, 11:10am UTC](https://forum.polkadot.network/t/introducing-dedot-a-delightful-javascript-client-for-polkadot-substrate-based-blockchains/8956/22 "2025-05-06T11:10:18Z")

</div>

Hey @niklasp, thank you for your supports and for the questions.

Just to clarify, my critisism in the announcement is about the legacy Polkadot.js API ([@polkadot/api](https://github.com/polkadot-js/api)), not the new [Polkadot-API](https://github.com/polkadot-api/polkadot-api) (PAPI).

> Adding descriptors for any local node with whatever pallets is as easy as `pnpm papi add <any name> -w ws://127.0.0.1:9944` . How could that be done in dedot?

In Dedot, we don’t have descriptors, we use a concept called [ChainApi](https://docs.dedot.dev/client-api/chainapi) which is purely a Typescript Generic Interface for a particular chain that can be plugged into the clients to expose all on-chain interactions (constants, query, runtime apis, tx…) for that chain.

You can generate this `ChainApi` interface for any PolkadotSDK-based chains using [`dedot` cli](https://docs.dedot.dev/cli#dedot-chaintypes) by running: `npx dedot chaintypes -w ws://127.0.0.1:9944`

More information about this can be found in:

- [In the article](https://forum.polkadot.network/t/introducing-dedot-a-delightful-javascript-client-for-polkadot-substrate-based-blockchains/8956#p-20513-types-apis-suggestionauto-complete-for-individual-substrate-based-chains-9)
- [Dedot Docs](https://docs.dedot.dev/client-api/chainapi)
- [Ross’s Blog Post](https://rossbulat.com/blog/dedot-api-service-integration/#defining-dedot-api-clients)

> For working with ink! smart contracts and papi [there is the papi ink! sdk](https://papi.how/sdks/ink-sdk).

Dedot also supports fully-typed API to interact with ink! smart contracts, similarly you can generate [ContractApi](https://docs.dedot.dev/ink-smart-contracts/generate-types-and-apis) interface for any contracts using its metadata and interact with fully-typed contract messages, transactions with confidence.

We also have [Typink](https://docs.dedot.dev/typink), a comprehensive toolkit for ink! dapps including: Fully typesafe React hooks to interact with ink! contracts, CLI to generate starter project with option to choose your favorite wallet connector solution ([SubWallet’s Sub Connect](https://github.com/Koniverse/SubConnect-v2), [Talisman Connect](https://github.com/TalismanSociety/talisman-connect), …)

More information can be found in:

- [Dedot Docs](https://docs.dedot.dev/ink-smart-contracts/intro)
- [Typink Docs](https://docs.dedot.dev/typink)
- [Type-safe APIs to interact with ink! Smart Contracts | Dedot](https://forum.polkadot.network/t/type-safe-apis-to-interact-with-ink-smart-contracts-dedot/9485)
- [Introducing Typink - Typesafe React hooks for seamless ink! smart contract interactions](https://forum.polkadot.network/t/introducing-typink-typesafe-react-hooks-for-seamless-ink-smart-contract-interactions/11743)

> have you seen the papi [whitelist feature](https://papi.how/codegen#whitelist) that allows to define which types of queries / calls should be bundled and therefor decrease package size?

This is an interesting feature from papi. But when using Dedot, you don’t have to worry about this issue, since [ChainApi](https://docs.dedot.dev/client-api/chainapi) or [ContractApi](https://docs.dedot.dev/ink-smart-contracts/generate-types-and-apis) is purely Typescript interface, so there is no impact on final dapps bundle-size.

* * *

Let me know if you have any questions/feedback when trying out Dedot or Typink for the integration, I’m happy to assist along the way, please DM me on TG [@realsinzii](https://t.me/realsinzii) or drop your questions on [Dedot Telegram Group](https://t.me/JoinDedot).

---

_[View the full topic](https://forum.polkadot.network/t/introducing-dedot-a-delightful-javascript-client-for-polkadot-substrate-based-blockchains/8956)._
