Calamar
- Team Name: TopMonks
- Payment Address: 32NoFbB4x8bZ7YNvjra1DUYcje2B2XQwP3 (BTC)
- Level: 2
Project Overview πβ
This application is a response to a Multi-chain Block Explorer RFP
Overviewβ
Calamar is a block explorer for Polkadot and Kusama relay chains and their parachains, that uses Subsquid API for data fetching.
The idea for another explorer has emerged during the dotsama events in Amsterdam and Prague. The team of TopMonks company's Blockchain Studio has gathered feedback from friendly projects such as HydraDx and KodaDot among others. We have applied for and won the bounty from Subsquid in the Polkadot Hackaton: North America edition, that requested developing a block explorer. Our submission: https://devpost.com/software/calamar
We call the app Calamar, as it is in line with the Subsquid identity.
It is available here:
https://calamar.app
and we manage the code here:
https://github.com/topmonks/calamar
Based on the positive feedback we would like to push the project further and bring more valuable features for the users, closely cooperating with the Subsquid team and gathering an ongoing feedback from the users.
While developing Calamar, we focus on UI and UX friendliness so that users enjoy dotsama chains exploring, as well as relevance of displayed data.
Project Detailsβ
Calamar explorer will allow users to search and display various items and statistics.
The plan is to have at least these features implemented:
Homepageβ
Homepage with google-like search box and with links to chain dashboards.
Universal searchβ
Search where you don't have to know which chain the searched item belongs to. You just put the hash into the search box and the explorer will take care of the determining on which chain it is. This is going to be an addition to the ability to restrict search to a specific chain.
Block detailβ
Display block's data and its extrinsics, transfers, calls and events.
- searchable by hash and height
Extrinsic detailβ
Display extrinsic's data, its calls and events.
- searchable by hash and id
Call detailβ
Display call's data, and its events.
- searchable by id
Event detailβ
Display event's data
- searchable by id
Search extrinsics and events by nameβ
Display a list of matching extrinsics and events by name.
- full-text search - doesn't require exact name, substring is sufficient, case insensitive
Account detailβ
As we are gathering feedback, one of the most important features for the users seems to be the account overview where users can find information about their balances and transactions across all chains.
- searchable by public key or chain-specific address
- display
- account's name if set
- owned assets accross all listed chains, including dollar values and graphs for visualization.
- list all chain-specific addresses
- list all related transfers, extrinsics and calls
Chain dashboardsβ
Each chain will have own dashboard with statistics and listing of latest blocks, latest transfers, top holders, etc. It makes the explorer more useful even for users who are not searching for specific items.
Metadata explorerβ
The runtime metadata of each chain are still evolving and changing but it is not so easy to display them in a structured and human-readable way. There is e.g. a tool https://wiki.polkadot.network/docs/metadata which displays them but only latest version and supports only a few networks. The metadata explorer we are going to implement will support all the networks and also historical versions of the runtime spec.
Item metadataβ
The metadata information will be deeply integrated into whole Calamar so we can display it in the detail pages of the items. E.g. in extrinsic's detail page we will show info for the call name, error, parameters and link to the metadata explorer for more info.
Search input autocomplete for call and event namesβ
Thanks to the metadata we can also autocomplete and suggest the call and event names when typing into the search input.
Technology stackβ
Typescript, React, GraphQL
Ecosystem Fitβ
- Calamar will help the community keep track of what's happening on the network, including XMC transfers, account overviews and chains statistics.
- Target audience are Dotsama developers, investors and ecosystem users.
- Calamar users will have opensource user-friendly UI prepared to use with Subsquid API.
- There are projects with similar functionality like Subscan or Polkaholic. Instead of trying to reinvent the wheel, we won't build our custom data indexing solution and rather rely on the powerful framework and API from Subsquid which is still evolving and has own dedicated development team. We focus on good UI and UX. Our solution will be aware of multichain environment (XCM transfers, cross-chain search, multichain account view). And the code will be opensource.
Team π₯β
Team membersβ
- Antonina Nesmelova - developer
- Richard JedliΔka - developer
- Radek Jakl - designer
- Jan Lopusek - project manager
Contactβ
- Contact Name: Jan Lopusek
- Contact Email: jan.lopusek@topmonks.com
- Website: https://topmonks.com/ , https://blockchain.topmonks.com/
Legal Structureβ
- Registered Address: StruhaΕovskΓ‘ 2931/9, 141 00, Praha 4, Czech Republic
- Registered Legal Entity: TopMonks s.r.o
Team's experienceβ
All of our team members developed the first version of Calamar explorer.
Antonina Nesmelova is young and enthusiastic web-developer with 3,5 years experience with web applications development, including a year and a half of experience in the world of crypto: development of dApps and smart contracts.
Richard JedliΔka has several years of expertise in web applications full-stack development.
Radek Jakl invented the design for Calamar. He has many years of experience in graphics and UI/UX design.
Jan Lopusek co-founded the startup studio for TopMonks software house. He is experienced project manager and business developer
Team Code Reposβ
- https://github.com/topmonks
- https://github.com/topmonks/calamar
- https://github.com/uiii
- https://github.com/antonina-nesmelova
Project referencesβ
- https://calamar.app/
- https://about.meetvers.io/, https://app.meetvers.io/
- https://brute.cz/
- http://jaklradek.com/
Team LinkedIn Profilesβ
- https://www.linkedin.com/in/antonina-nesmelova-3a8365149
- https://www.linkedin.com/in/richardjedlicka/
- https://www.linkedin.com/in/jaklradek/
- https://www.linkedin.com/in/jan-lopusek/
Development Status πβ
Current version of Calamar is running on https://calamar.app
It is mostly a result of our participation in hackaton as an implementation of the bounty declared by Subsquid team. See Additional Information.
For now, it allows users to:
- search block by hash and height display its parameters and extrinsics
- search extrinsic by hash and display its parameters and events
- search account by address and list its extrinsics
- search extrinsics and events by their exact name.
While it may seem to be already working explorer it has only basic features and lacks many of the important or useful ones. See Milestone 1 for details.
Development Roadmap π©β
Overviewβ
- Total Estimated Duration: 11 weeks
- Full-Time Equivalent (FTE): 1
- Total Costs: $27,500
Milestone 1 β Core functionalityβ
- Estimated duration: 4 weeks
- FTE: 1
- Costs: $10,000
Even though we have the already working application, there are still many things missing. Some of them prevent the users from using Calamar fully as the main explorer. We need to first assure the correct core functionality, display all the meaningful data which are retrievable without further complex processing, improve design and UX and integrate more into the Polkadot ecosystem.
Number | Deliverable | Specification |
---|---|---|
0a. | License | Apache 2.0 |
0b. | Documentation | We will provide inline documentation of the code where necessary, technical description of how to run the own instance of Calamar and tutorials how to use the application from the user perspective. |
0c. | Testing Guide | We will provide end-to-end tests covering UI functionality. |
0d. | Docker | We will provide a Dockerfile(s) for testing and running own Calamar instance. |
0e. | Article | We will publish an article that explains what was done as part of the grant. |
1. | Fix usage blockers | Fix things which block the app's real usage
|
2. | Add related items listings | Add missing related items listing to detail pages
|
3. | Add call detail page | See Call detail. |
4. | Add event detail page | See Event detail. |
5. | Responsiveness | Improve overall responsiveness for mobile devices especially of item tables and extrinsics/event args. |
6. | Extrinsics/event args displaying improvements | Add args display options: raw/json, human readable. Find a better way to show nested properties' data types. |
7. | Items count | Current implementation doens't show the total number of searched items. We would like to retrieve the items count and display it properly. |
8. | Extrinsic/event case-insensitive search by name | Add ability to search extrinsics and events by their name case-insensitive. |
9. | Account address parsing in events args | Detect account address in event args and link it to the account detail (chain detected automatically). |
10. | Website polishing | Add useful information to the website (footer with team logos, contact information, terms, etc.). |
11. | Polkadot.js integration | Create a PR to integrate links to the Calamar Explorer into Polkadot.js app. |
Milestone 2 - Account detail & Chain dashboardsβ
- Estimated duration: 4 weeks
- FTE: 1
- Costs: $10,000
In this milestone we are going to improve account detail page and replace latest extrinsics page with proper dashboard page for each chain.
Subsquid (data provider) might not support each feature for all chains at the time of the implementation, so the features will be implemented universally to support each chain whenever the data are provided in the future.
Number | Deliverable | Specification |
---|---|---|
0a. | License | Apache 2.0 |
0b. | Documentation | We will provide inline documentation of the code where necessary and user documentation for new features. |
0c. | Testing Guide | We will provide end-to-end tests covering UI functionality. |
0d. | Docker | N/A - will be provided by the first milestone. |
0e. | Article | We will publish an article that explains what was done as part of the grant |
1. | Account / Balance overview | Overview of owned assets accross all listed chains with chain specific addresses, including dollar values |
2. | Account / Balance charts | Chart visualization of balance by assets and by type (reserved, tranferable, ...), including dollar values |
3. | Account / Transfers list | Add account's transfers list table |
4. | Account / Calls list | Add account's calls list table |
5. | Account / Identity info | Add account's identity information if set (name, twitter, ...) |
6. | Chain dashboard / Stats | Show chain's stats (blocks count, signed extrinsics count, total issuence, transfers count, holders count, total issuence, staked value, inflation rate, validators count) including USD values |
7. | Chain dashboard / Asset value chart | Chart visualization of asset value by type (staked, circulating, other) |
8. | Chain dashboard / Latest blocks | Add latest blocks list table |
9. | Chain dashboard / Latest transfers | Add latest transfers list table |
10. | Chain dashboard / Top holders | Add top holders list table |
Milestone 3 - Universal search & Metadata explorerβ
- Estimated duration: 8 weeks
- FTE: 0.375
- Costs: $7,500
In this milestone we are going to implement universal search and one of the most requested features: cross-chain transfers detection.
Number | Deliverable | Specification |
---|---|---|
0a. | License | Apache 2.0 |
0b. | Documentation | We will provide inline documentation of the code where necessary and tutorials on how to use new features. |
0c. | Testing Guide | We will provide end-to-end tests covering UI functionality. |
0d. | Docker | N/A - will be provided by the first milestone. |
0e. | Article | We will publish an article that explains what was done as part of the grant |
1. | Universal search | Search items through all the chains without the knowledge where it belongs. See Universal search. |
2. | Metadata explorer | UI interface for exploring metadata retrieved from network's latest and historical versions of runtime spec. See Metadata explorer. |
3. | Show related runtime metadata in items' detail | Show related metadata information directly in detail pages of individual items and interlink to metadata explorer. See Item metadata. |
4. | Search input autocomplete | Autocomplete extrinsic and event name in the search input. See Search input autocomplete for call and event names. |
Future Plansβ
There is a huge potential for future improvements which the Polkadot's community can benefit from.
We would like to definitely display information about XCM transfers and teleports.
As developers of most parachains implement their own custom modules/pallets it opens the opportunity to cooperate and customize Calamar explorer with UI/UX components and logic tailored to their needs.
It relates to various XCM transactions which makes it even more complex and the more types will our explorer support the more it makes the users' lives easier.
Another requests which came to us are:
- supporting EVM and WASM smart contracts
- exporting transactions for accounting and taxation purposes
- displaying NFTs collections and crowdloans rich data
Additional Information ββ
How did you hear about the Grants Program? Personal recommendation
- We participated and won a bounty in Polkadot Hackaton: North America Edition
- bounty: https://github.com/subsquid/bounties/issues/1
- our submission: https://devpost.com/software/calamar
- We are cooperating with Subsquid team that provides us data