This library provides a clean wrapper around all the methods exposed by a Polkadot/Substrate network client and defines all the types exposed by a node. For complete documentation around the classes, interfaces and their use, visit the documentation portal.
If you are an existing user, please be sure to track the CHANGELOG and UPGRADING guides when changing versions.
Looking for tutorials to get started? Look at examples for guides on how to use the API to make queries and submit transactions.
The API is split up into a number of internal packages -
- @polkadot/api The API library, providing both Promise and RxJS Observable-based interfaces. This is the main user-facing entry point.
- @polkadot/api-derive Derived results that are injected into the API, allowing for combinations of various query results (only used internally and exposed on the Api instances via
api.derive.*
) - @polkadot/api-metadata Base extrinsic, storage and constant injectors for injection
- @polkadot/rpc-core Wrapper around all JSON-RPC methods exposed by a Polkadot network client
- @polkadot/rpc-provider Providers for connecting to nodes, including WebSockets and Http
Type definitions for interfaces as exposed by Polkadot & Substrate clients -
- @polkadot/types Codecs for all Polkadot and Substrate primitives
Contributions are welcome!
To start off, this repo (along with others in the @polkadot family) uses yarn workspaces to organise the code. As such, after cloning, its dependencies should be installed via yarn
, not via npm; the latter will result in broken dependencies.
To get started -
- Clone the repo locally, via
git clone https://github.com/polkadot-js/api <optional local path>
- Ensure that you have a recent version of Node.js, for development purposes Node 10 is recommended.
- Ensure that you have a recent version of Yarn, for development purposes Yarn >=1.10.1 is required.
- Install the dependencies by running
yarn
- Build the everything via
yarn run build
- You can also launch the API Docs, via
yarn vuepress dev docs
- Access the docs via http://localhost:8080