Explorer website.
The build system assumes that you have at least Node.js v24.x installed. The LTS version is 24.13.0 at the time of writing.
All terminal commands assume that you are positioned in root folder of the repository.
Run npm install from the root folder to get the necessary dependencies.
The application defines these variables by reading a local .env
# *_PATH variables can be empty string, must start with a slash otherwise, must not end with a slash
VITE_BASE_PATH="" # Optional, a path to serve it under; empty on its own domain
VITE_BLOCKS_LIST_ENTRIES=100
VITE_CHAIN_INFO_ENTRIES=15
VITE_MARKET_DATA_REFETCH_INTERVAL=120000
VITE_NODE_URL="" # Optional, set to (e.g. 'https://nodes.dusk.network' to) override default
VITE_PROVISIONERS_REFETCH_INTERVAL=30000
VITE_REFETCH_INTERVAL=10000
VITE_RUSK_PATH="" # Optional, set to '/rusk' for dev mode
VITE_TRANSACTIONS_LIST_ENTRIES=25
VITE_FEATURE_BLOB_HASHES=true # requires node version >= 1.3.1-alpha.1
The application defaults to setting the node URL to /. In dev mode, requests made on /rusk are passed through a proxy to localhost:8080. When the app is running in dev mode, set VITE_RUSK_PATH to "/rusk".
The application will determine which network it is connected to by the subdomain it is hosted under, to override this and connect to any node set VITE_NODE_URL. Note that only https:// protocol URLs are valid.
npm run buildgenerates the production buildnpm run checksruns all checks (lint, typecheck and test)npm run devgenerates the development build and starts the dev servernpm run dev:hostgenerates the development build, starts the dev server and exposes it to the local networknpm run lint: performs the linting checksnpm run lint:fix: runs ESLint with the--fixflag to fix formatting errorsnpm run previewpreviews the production buildnpm testruns the test suitenpm run test:coverageruns the test suite and generates the code coverage report in thecoveragefoldernpm run test:watchruns the test suite in watch modenpm run typecheckruns the type checkernpm run typecheck:watchruns the type checker in watch mode
The explorer runs on Cloudflare (wrangler.jsonc), at explorer.dusk.network, explorer.testnet.dusk.network and explorer.devnet.dusk.network. It picks its node by hostname, so one build serves them all.
The Deploy workflow does it: every merge to main goes to testnet and devnet, and an explorer-v* tag goes to mainnet. Its Cloudflare token is a secret of the cloudflare environment, which only main and those tags can use.