Calamar block explorer — Milestone 1 finished

Richard Jedlička
TOPMONKS
Published in
4 min readDec 1, 2022

We at TopMonks are happy to announce we’ve finished the first milestone in our Web3 Foundation grant for developing the Calamar block explorer for Polkadot and Kusama relay chains and their parachains. 🎉

Visit https://calamar.app

The story behind Calamar is that it started as a hackathon submission for a bounty from Subsquid. The idea emerged during the DotSama events in Amsterdam and Prague. We gathered feedback from friendly projects such as HydraDx and KodaDot among others. Then we participated in and won the Polkadot Hackathon: North America edition. And now Calamar is becoming a fully useful block explorer.

In this milestone, we’ve fixed and improved many things:

  • fixed unability to share links to the search results
  • added missing extrinsic’s args
  • added missing related items listing to detail pages (block’s extrinsics, call and events, extrinsic’s calls)
  • added call and event detail page
  • improved overall responsivness
  • added two display modes for args: parsed (human readable) and raw (json)
  • added item counts to item listings
  • added ability to search extrinsics and events by their name case-insensitive
  • detect account address in event’s args and link it to the account detail page
  • improved website layout and added some useful information and links
  • created a PR to integrate links to Calamar into Polkadot.js app.
  • set up CI/CD infrastructure.

I will present here more details about some core functionality features.

All the useful information

Extrinsic’s data

A block explorer should show useful information about blockchain entities, and this is exactly what Calamar does. Blocks, extrinsics, calls and events, each have their own details page with a well-arranged list of data and related entities.

Block’s related entities

Accounts have their own details pages too, but currently in a very simple form. This will improve in the future.

Extrinsic/call/event’s parameters

Event’s parameters in “parsed” mode

Parameters for extrinsics, calls and events might be quite complex data. And it is not easy to display them in a well-arranged manner. We have a special data viewer component for this, which displays them in two modes: parsed and raw (json). So you know exactly what is happening here and also benefit from enriched parsed data where among other things the account addreses are detected and linked automatically.

Event’s parameters in “raw” mode

Search

The above features would be useless if you cannot search the entities.

search box

We have implemented an intelligent search box feature which accepts all sort inputs, recognises what you mean and searches in the scope of the selected chain. You can search by block/extrinsics hash, block height, account address. These will redirect you to the details page of the corresponding entity, if found.

Other possible input is an extrinsic’s call and event name. You don’t have to care about letter casing. Try to search balances.transfer and you will see it will find both extrinsics and events.

search by name

Still in development

Please be patient, you might encounter errors or not found messages. We are working on fixes to some existing issues.

This is not the end, this is the beginning ✨

There are still a lot of things to add and improve. We are definitely going to continue. Stay tuned for things like cross-chain account overview, XCM transfers, etc. 🤩

Source code is at https://github.com/topmonks/calamar

I would like to give special thanks to our data provider Subsquid for their cooperation and Web3 Foundation for the funding of this milestone.

Web3 Foundation funds research and development teams building the technology stack of the decentralized web. It was established in Zug, Switzerland by Ethereum co-founder and former CTO Gavin Wood. Polkadot is the Foundation’s flagship project.

Learn more about Web3 Foundation by visiting their website, and stay up to date with the latest developments by following them on Medium or Twitter.

--

--