An explorer, yes, but a consensus explorer.
A live version of Explorus can be found here.
Create a local opam switch or ignore this step if you want to use a global switch:
make opam-switch
Then install ocaml dependencies:
make deps
To install the dependencies related to development:
make dev-deps
There is a configuration file at json/parameters.json that looks like:
{
"mainnet": {
"chain_name": "TEZOS_MAINNET",
"addresses": ["https://mainnet.api.tez.ie"]
}
}It is the minimal configuration in order for Explorus to work, you can of course add your own api/node addresses instead of those we use.
Explorus is currently compatible with Mainnet, Shadownet, Nextnet, Bakingnet, Tallinnet, Ushuaianet and Weeklynet, so you can add a section just like for Mainnet in json/parameters.json.
For example, let's say you want to add a Shadownet section:
{
"mainnet": {
"chain_name": "TEZOS_MAINNET",
"addresses": ["https://mainnet.api.tez.ie"]
},
"shadownet": {
"chain_name": "TEZOS_SHADOWNET_2025-08-07T20:00:00Z",
"addresses": ["https://rpc.shadownet.teztnets.com"]
}
}You can add multiple addresses on each network. If one of the node crashes, an other one will take the lead.
Explorus has a multi-components architecture. This way, we made it possible to enable or
disable any component that we want (very easily) directly from json/components_states.json:
{
"baking_rights": true,
"round_clock": true,
"latest_blocks": true,
"consensus_ops": true,
"bakers_activity": true,
"explorer": true,
"soru": true,
"dal": true,
"info_bar": true,
"consensus_progression": true,
"network_constants": true,
"share_url": true,
"pyrometer": true,
"protocol_injection": true,
"logs": true,
"settings": true
}You just need to put at true or false any of these attributes to enable or disable a specific component.
Start building the project:
make
If you want to launch the app locally, you can use the following:
make php
Several tests can be done on this project.
OCaml files formatting can be checked by doing:
make lint
HTML files formatting can be checked by doing:
make lint-html
Any trace of dead css code can be checked by doing:
make track-dead-minimal-css
Source code is partially checked (see the details in tests folder) by doing:
make alcotest
To check if the hard refresh will not break (on deploy):
make check-explorus-index
The new React-based frontend lives in react-front/ and is built with:
- React 19 + TypeScript
- Vite (build tool and dev server)
- Tailwind CSS (styling)
- ApexCharts (charts and graphs)
It uses the same OCaml API compiled to JavaScript via js_of_ocaml, loaded as explorus-api.js before the React app initializes.
Install the React dependencies:
make react-deps
Start the Vite dev server (also builds the OCaml API and copies config files):
make react-dev
Build the OCaml API and the React app for production:
make react-build
The output goes to react-front/dist/.
cd react-front && npm run lint
Use the .ocamlformat in this repository, and use the following makefile-rule to format all the ocaml files:
make format
Use the .prettierrc.json in this repository, and use the following makefile-rule to format all the html files:
make format-html
- All the static files are in
static/directory and the generate files are in_www/. - Explorus supports baker aliases. In case, there's a need to add one or multiple aliases, please submit an issue on the repository and/or contact the maintainers on Slack or Discord.
- Rodi-Can Bozman @rodibozman
- Sébastien Palmer @spalmer25
Copyright © 2022-2026, Functori contact@functori.com. Released under the MIT License.