🛠️ chainconsole.com - Polkadot JS Apps Fork with Bug Fixes and Improvements

Background

Polkadot JS Apps has always been one of the key tools for me in the Polkadot ecosystem, alongside Multix and the Polkadot JS signer extension. The application has been in maintenance mode or worse for quite a while now, and I’ve also been noticing multiple complaints in the community regarding bugs, non-functional endpoints, and unmerged pull requests.

Following my shared frustration with persistent issues, I decided to fork it, fix it, and launch it at chainconsole.com in an effort to scratch my own itch, just as I did with Multix (post #1, post #2) in January. I’ll share a Multix product update post later on, also news regarding Submerge, and other new projects, but today I’ll share with you the Chain Console updates.

Bug Fixes & Improvements

RPC Endpoint Fixes and Improvements

One of the pain points of the application has been non-responsive RPC endpoints. There is a GitHub action that checks endpoint liveness on the original repository. It creates GitHub issues as a report of its findings, but as can be seen on the open issues list, the piling results haven’t been taken care of.

To fix this, I changed the endpoint model to include an availability flag (c3291cf), so that an endpoint can be marked unavailable without removing it or commenting it out, and developed a new script that checks the endpoints twice every day in an action, updates endpoints in the source code, and submits a pull request.

While the older script only checked the available endpoints, the improved script checks all endpoints and toggles their availability in the source code. This allows previously unavailable endpoints to become available again if they pass the liveness test.

Another improvement is that the RPC endpoint dropdown now displays unavailable endpoints as disabled rather than removing them altogether. This way, both users and RPC providers can view the complete set of endpoints registered for a chain.

Chains with no available endpoints are not displayed, a decision that will be revisited.

The commits related to these changes are c3291cf, a87f630, a4b1a90, 0fbecd5, a05e445, 675e53d, 34134aa, da2fa8d, 7bacaa6, 7707705, and a couple more.

Account Details Side Panel Fixes

The account details side panel that opens up when an account is clicked had a number of UI issues. These were fixed (a7124d9, 0c2dab0, 6a725ba) as illustrated on the screenshots below.

Unbonding Time Fix for Asset Hubs

The pop-up box that shows time left in unbonding on both the main accounts and staking accounts pages incorrectly displayed an era overdue warning, and also sometimes displayed the wrong time left in the unbonding period. I found out that this is due to the session.progress derive of the Polkadot JS API not always working correctly on Asset Hubs. Also, a mechanism in the application that identifies the block time incorrectly utilizes a 12-second block time on Asset Hub, where it needs to apply the 6-second block time on the relay chain. This also caused the Withdraw Unbonded button to appear prematurely. These were fixed with f0d03b1 as illustrated in the screenshot below. I will be further working on this issue to refine the solution.

Era Remaining Time Fix for Asset Hubs

Stemming from the same root cause as the previous issue, the remaining time for the staking era displayed incorrectly for Kusama and Polkadot Asset Hubs. This was fixed with 6ba0293, as illustrated below.

Removal of Unused Chain Resources

The build processes revealed several unused resources for removed chains. These were removed in commits such as 0b6c00a and 2b34f7a to clean up the code base and keep it up-to-date.

Fix Failing Tests for typesBundle and chainTypes

These tests were excluded from the main test command. They got fixed with f3c77db and ef2c605, and are now included, expanding the coverage of the main test command.

Add Missing Icons for Several Chains

Polkadot Coretime, and Westend Collectives, Coretime, and Penpal chains were missing icons on the original deployment. These were assigned icons, and they now display correctly on Chain Console.

A Leaner Direction

Maintainability of an application depends a lot on careful scope limitation and preventing feature bloat. I made the decision to remove a number of relatively minor or dormant features to simplify the application.

Here is the list of the features removed so far:

  • Event Calendar: Displayed important network events. Yet on the original deployment it looks almost empty, and I would guess that this feature could better be implemented in a separate application. (64d03a1)
  • Claims: To claim tokens from the ICO. (b9d7e64)
  • Vanity Account Generator: An account generation tool is probably better suited for a wallet application, not the browser. (a3ba7fc)
  • Electron build: Desktop application builder. The security benefits of using a desktop deployment are an upside for the Electron build, however, the focus for Chain Console will remain on the web.

Roadmap

Some work items that I’m planning to tackle:

  • Keep merging the updates made to the original repository.
  • Identify and handpick a number of issues and PRs to be implemented from the main repository posted by the community.
  • Fix a number of other urgent issues that have been bugging me, such as the occasional Invalid error when I try to submit a transaction on Asset Hub.
  • Make the application more interesting and pleasing UI-wise.

Conclusion

If anyone is interested in further developing this application, I would be happy to work with front-end designers and product-minded people. Drop a line if you’re interested. This effort is fully intuition-driven, and I find this application interesting and open to considerable development and expansion. Also feel free to open an issue or make pull requests on the repository linked below.

Thanks for your time and attention. I’ll post future updates under this thread.

Links

12 Likes

This is amazing - thanks Kukabi!

1 Like

This is cool :partying_face:

But I see polkadot-js api isn’t being maintained anymore last release in Dec 9,2025, won’t this cause an issue going forward as I see its used in the fork also.

So papi going forward? it will be a big migration but with a nice skills.md or agents.md will be very quick with the SOTA models.

1 Like

Thanks a lot @bill_w3f, @muddlebee. It’s been a pleasure.

@muddlebee you’re right, it still depends on the Polkadot JS API. My priorities were the issues I listed above, and I’ve been able to fix them, so it works for me for the moment. But there are definitely a lot of other areas of improvement/development. I personally like this app a lot, and I haven’t seen anything as comprehensive, happy to be pointed to one if it exists. I’m confident that the app can become unrecognizably better with the right approach, and persistence.

I’m open to all suggestions regarding features, dependencies, and development methods, agentic included, with careful attention to unwanted bloat.

1 Like

Tkx Kukabi !
You rock due ! :folded_hands:

1 Like

@kukabi I should have rights to merge in changes to the official Polkadot JS apps repository. If you are interested to bring in some non-controversial changes into the repo, I would be happy to look at them and merge it.

Not taking away from your efforts to fork and improve things on your own, but I think we can also help people who are unaware of your fork too.

You will need to fix the permission you have on your PRs to allow code owners to contribute to your PRs, for example this PR is stuck in CI pipeline, and I cannot fix it. It says I do not have permission to push to the head branch.

@shawntabrizi there’s apparently a GitHub issue that prevents “Allow edits by maintainers” in cross-organization PRs. I rebased the PR, and it just passed the checks. I hope that fixes it.

Regarding upstream contributions, thanks for the suggestion. I’ll do my best to forward the minor improvements such as icon fixes and non-controversial UI improvements. I didn’t initialize the repository as a GitHub fork to avoid the constant “x commits ahead, y commits behind” display, which gets really confusing as the fork diverges, but the fork began at a7124d9 if the maintainers would be interested in cherry-picking.