Skip to content

catchain/tonscan

Repository files navigation

TON Blockchain Explorer

An open source address, block and transaction explorer for TON Blockchain.

See it in action

Contributing

If you'd like to add your address to our address book, you cat do it here: catchain/address-book. Please note that addresses from address book is not used in search. If you'd like to add your address into the search, please leave a message here.

If you'd like to submit a pull request, please run npm run lint and check for the errors before pushing. We also highly recommend opening an issue before doing anything, because this repository is a mirror and is not always up to date with the actual code base.

Building

Before building the project you should fill the environment variables in .env (or .env.testnet) file. You may refer to .env.example file for available variables.

All variables are optional, but we recommend filling at least TONCENTER_API_KEY (docs) and TONAPI_KEY (details).

TYPESENSE_API_KEY is used for real-time search. You may either use your own typesense server (in that case you should also change the TYPESENSE_API_ENDPOINT variable), or use our guest key. To obtain guest key, please leave a message here.

Then run:

npm install && npm run prod

For testnet:

npm install && npm run prod_testnet

Developing

npm run serve

To change host and port of the local server, change the APP_DEV_SERVER_HOST and APP_DEV_SERVER_PORT environment variables either in .env file or in command line. For example:

APP_DEV_SERVER_HOST=0.0.0.0 APP_DEV_SERVER_PORT=8080 npm run serve

Using

The result of the build is static files in dist folder. To start using tonscan, you may:

  • Upload the dist folder to your web server (see example config below)
  • Upload build.zip to Cloudflare Pages
  • Use any static file hosting, e. g. Firebase

Example nginx config:

server {
    server_name tonscan.test;
    root /path/to/tonscan/dist;
    index index.html;

    location / {
        try_files $uri $uri/ @rewrites;
    }

    location @rewrites {
        rewrite ^(.+)$ /index.html last;
    }
}