Skip to content
Basic Polkadot/Substrate UI for interacting with a node. This is the main user-facing application, allowing access to all features available on Substrate chains.
TypeScript JavaScript Other
Branch: master
Clone or download
Github Actions
Github Actions [CI Skip] 0.39.0-beta.3
skip-checks: true
Latest commit 5650ee9 Dec 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Bump deps (#1948) Nov 26, 2019
packages [CI Skip] 0.39.0-beta.3 Dec 14, 2019
scripts Some initial pre-eslint cleanups (#1383) Jul 14, 2019
test Some initial pre-eslint cleanups (#1383) Jul 14, 2019
.123trigger Update .123trigger Dec 13, 2019
.babelrc.js Support enumerable accounts (#102) Jun 25, 2018
.codeclimate.yml Merge next into master (#529) Dec 21, 2018
.dockerignore Add .dockerignore Aug 12, 2018
.editorconfig Initial commit Apr 17, 2018
.eslintignore Added parser to extract i18n strings (#1710) Oct 11, 2019
.eslintrc.js Bump dev deps (#1755) Oct 22, 2019
.gitignore Propose tech committee motions (#1996) Dec 4, 2019
.gitlab-ci.yml Fix container build (#1456) Jul 30, 2019
.npmignore Initial commit Apr 17, 2018
.nvmrc Merge next into master (#529) Dec 21, 2018 Additional requests for working on bounties (#1704) Oct 7, 2019 Proposal depositors Nov 30, 2019 Don't pass UI_MODE/UI_THEME via env (#769) Feb 28, 2019
Dockerfile Initial commit of kubernetes deployment (#616) Jan 18, 2019
LICENSE Merge next into master (#529) Dec 21, 2018 Adjust staking (#1914) Nov 19, 2019
babel.config.js Use @babel 7 (#52) May 17, 2018
deployment.extras.yml CI: add file for substrate-ui and substrate-ui-light domains (#767) Feb 28, 2019
deployment.template.yml Initial commit of kubernetes deployment (#616) Jan 18, 2019 Collapse sidebar (#700) Feb 12, 2019
i18next-scanner.config.js Added parser to extract i18n strings (#1710) Oct 11, 2019
jest.config.js Some initial pre-eslint cleanups (#1383) Jul 14, 2019
lerna.json [CI Skip] 0.39.0-beta.3 Dec 14, 2019
package.json [CI Skip] 0.39.0-beta.3 Dec 14, 2019
postcss.config.js Use @babel 7 (#52) May 17, 2018
tsconfig.json Basic tech committee (#1977) Dec 2, 2019
types.json Small init changes (static state) (#663) Jan 31, 2019
yarn.lock Small cleanups on withCalls (#2040) Dec 13, 2019

polkadotjs license npm beta maintainability


A Portal into the Polkadot and Substrate networks. Provides a view and interaction layer from a browser.

This can be accessed as a hosted application via to explorer any of the supported Polkadot and Substrate chains


The repo is split into a number of packages, each representing an application. These are -

  • apps This is the main entry point. It handles the selection sidebar and routing to the specific application being displayed.
  • app-accounts A basic account management app.
  • app-address-book A basic address management app.
  • app-democracy A basic voting app, allowing votes on activate proposals and referenda.
  • app-explorer A simple block explorer. It only shows the most recent blocks, updating as they become available.
  • app-extrinsics Submission of extrinsics to a node.
  • app-js An online code editor with @polkadot-js/api access to the currently connected node.
  • app-settings A basic settings management app, allowing choice of language, node to connect to, and theme
  • app-staking A basic staking management app, allowing staking and nominations.
  • app-storage A simple node storage query application. Multiple queries can be queued and updates as new values become available.
  • app-toolbox Submission of raw data to RPC endpoints and utility hashing functions.
  • app-transfer A basic account management app, allowing transfer of Units/DOTs between accounts.

In addition the following libraries are also included in the repo. These are to be moved to the @polkadot/ui repository once it reaches a base level of stability and usability. (At this point with the framework being tested on the apps above, it makes development easier having it close)

  • react-components A reactive (using RxJS) application framework with a number of useful shared components.
  • react-signer Signer implementation for apps.
  • react-query Base components that use the RxJS Observable APIs


Contributions are welcome!

To start off, this repo (along with others in the @polkadot family) uses yarn workspaces to organize the code. As such, after cloning dependencies should be installed via yarn, not via npm, the latter will result in broken dependencies.

To get started -

  1. Clone the repo locally, via git clone <optional local path>
  2. Ensure that you have a recent LTS version of Node.js, for development purposes Node >=10.13.0 is recommended.
  3. Ensure that you have a recent version of Yarn, for development purposes Yarn >=1.10.1 is required.
  4. Install the dependencies by running yarn
  5. Ready! Now you can launch the UI (assuming you have a local Polkadot Node running), via yarn run start
  6. Access the UI via http://localhost:3000

I want to code around

There is a base template available app-123code that acts as a simple starting point for adding additional apps to the UI. Alternatively if you just want some place where you can write some code, it does the trick.

While it is hidden from the sidebar, it is accessible via

Be sure to follow the app-123code/ instructions.


You can run a docker container via -

docker run --rm -it --name polkadot-ui -p 80:80 chevdor/polkadot-ui:latest

To build a docker container containing local changes -

docker build -t chevdor/polkadot-ui:latest .

When using these Docker commands, you can access the UI via http://localhost:80 (or just http://localhost)

You can’t perform that action at this time.