/blockroma

a open-source blockchain explorer built with typescript for Ethereum web3 compatible blockchains

Primary LanguageSCSS

Blockroma

Discord

Blockroma

Getting Started

Blockroma is a blockchain explorer for Ethereum web3 compatible blockchains. It is built with the modern web stack - TypeScript, KOA, React, SASS, Apollo GraphQL, TypeORM, and PostgreSQL. It is open-sourced under GPL license.

blockroma-v0.1-demo

The project is still in development with an unstable version 0.1.0. As a result, there might be breaking changes before 1.0.0.

Feature List

  • realtime + catchup indexer, based on web3 JSONRPC and WSS APIs, for blocks, txs, and addresses.
  • GraphQL APIs and PostgreSQL Data models for blocks, txs, and addresses.
  • basic web UI for home page, search bar, blocks, txs, and addresses.
  • dark mode and light mode.
  • i18n / internationalization / multi-language / English, Japanese, Chinese
  • customizable for other blockchains.
  • developer guide.
  • tx contract details and logs.
  • ERC20. Design
  • ERC721.
  • more accurate gas fee calculation.
  • better error handling and loading state.
  • onboard more blockchains.

Download the project

git clone git@github.com:stargately/blockroma.git

Run the project

This is intended for *nix users. If you use Windows, go to Run on Windows. Let's first prepare the environment.

cd blockroma/v1

npm install

# prepare environment variable
cp ./.env.tmpl ./.env

Development mode

To run your project in development mode, run:

npm run watch

The development site will be available at http://localhost:4134.

Production Mode

It's sometimes useful to run a project in production mode, for example, to check bundle size or to debug a production-only issue. To run your project in production mode locally, run:

npm run build-production
NODE_ENV=production npm run start

NPM scripts

  • npm run test: test the whole project and generate a test coverage
  • npm run ava ./path/to/test-file.js: run a specific test file
  • npm run build: build source code from src to dist
  • npm run lint: run the linter
  • npm run kill: kill the node server occupying the port 5000.

License

Special thanks to the blockscout project. We are not fans of Elixir but we used its JS and style files, and thus comply with its GPL license.

Star and Fork the Project

If you like the project or want to support its future development, please give it a star ⭐️ and fork it!