Explore Ethereum-like blockchain privately with your RPC URL
See the codeExplore Ethereum-like blockchain privately with your RPC URL.
[!IMPORTANT] The package got merged into micro-eth-signer. Check out its examples directory.
How is this better than Etherscan?
Etherscan and other other 3rd party block explorers collect and track user data. They create logs every time someone opens an address. Private explorers allow viewing information without logging.
How is this better than Otterscan?
Otterscan does not support token balances or transfer history, which makes it limited in usefulness. ERC20 / ERC721 / ERC1155 tokens & NFTs are one of the most popular features of EVM-like blockchains. Besides that, Otterscan can only be used with one client while esplr strives to support all node types.
Can I verify all network requests?
The explorer only makes requests to specified RPC URL. To audit this, check src/App.vue,
handleConnect. It uses micro-ftch to
ensure no requests are done outside of the URL. You can add custom logging there.
How are USD prices calculated?
Chainlink EVM contract provides onchain prices. No external services are used.
Are ERC-20 tokens fully supported?
Yes. To view full token transfer history for an account, open tx Details tab. First call can take up to 50 seconds because of limitations of ETH nodes. Second call would be cached and instant.
Are ERC-721 NFTs fully supported?
Work in progress. They will be shown in UI in one of the next updates.
Do you support local or remote Sourcify integration?
Both! Check out instructions below to set up your own Sourcify instance.
Which frontend libraries are used?
micro-eth-signer and micro-ftch empower data retrieval. Vue.js is used as UI framework.
To build the app and launch dev server, execute:
npm install && npm run dev
To build for production:
npm install && npm run build
# Output is now in `dist/`
# Example: serve `dist/` directory using built-in Python module
cd dist && python3 -m http.server --bind 127.0.0.1
The output is 3 files in dist: 1 html, 1 js, 1 css.
Continuously re-generated via GitHub Actions and published to Docker registry.
See relevant Docker image URL.
You can have the app automatically point to an RPC URL, SOURCIFY URL or IPFS GATEWAY URL provided via env variables: VITE_RPC_URL, VITE_SOURCIFY_URL, VITE_IPFS_GATEWAY_URL.
For example:
npm install && VITE_RPC_URL=<RPC_URL> VITE_SOURCIFY_URL=<SOURCIFY_URL> VITE_IPFS_GATEWAY_URL=<IPFS_GATEWAY_URL> npm run dev
Esplr supports all node types. User-ran Erigon RPC node is adviced to get 100% of functionality. Reth may achieve feature parity soon. See details.
erigon --datadir=/data/erigon --prune.mode='archive' --torrent.download.rate="100mb" --http --http.api=eth,erigon,web3,net,debug,trace,txpool,ots --ws --http.corsdomain='*'
The RPC will be running locally at 127.0.0.1:8545. There are two ways to make it available to outside internet:
ethnode.com to 127.0.0.1:8545
proxy_pass http://127.0.0.1:8545ethnode.com, you will be able to specify its RPC.user:password@ethnode.com).ssh -L 5678:127.0.0.1:8545 root@192.168.1.50 where 5678 is port on your local machine,
root@192.168.1.50 is user + hostname of Erigon3 server.Some features are not present outside of Erigon. The app uses archive node API / trace_filter extensively.
prune.mode=archive for 100% of featuresesplr supports Sourcify (sourcify.dev) integration. Sourcify allows to verify smart contract source code for eth. To set it up:
manifest.json
curl -L -O https://repo-backup.sourcify.dev/manifest.jsonmanifest.json
CHAIN_ID=1; jq -r '.files[].path' manifest.json | grep -E "(full|partial)_match\.${CHAIN_ID}\." | xargs -I {} curl -L -O https://repo-backup.sourcify.dev/{}jq -r '.files[].path' manifest.json | xargs -I {} curl -L -O https://repo-backup.sourcify.dev/{}for file in *.tar.gz; do echo "Extracting $file..."; tar -xf "$file"; donecp scripts/normalize_addresses.sh /path/to/repository./normalize_addresses.sh --chains 1./normalize_addresses.shnpm install -g http-server@14.1.1http-server /path/to/repository --cors -p 2015Most requests are instant. Some requests, like seeing token transfer history, rely on scanning whole blockchain from scratch. This can take 10-50 seconds.
To improve this, in the future, archive node developers can add additional indexes into their software. They can also provide a new RPC method to query history. Best thing one can do is to ask for this in their bug trackers: reth, erigon.
Addons, like Trueblocks, can also speed things up. While the goal of esplr is to use "pure" archive node, we would welcome support for an easy trueblocks integration.
An archive node will need 30Mbps connection & 2.5TB NVME SSD (TLC, not QLC). Such new PC can cost $570 for 32GB RAM & 4-core CPU. Here is another $650 build with 64GB RAM & 8-core CPU.
Similar server can be rented from providers like Hetzner for $60/mo. Make sure to prohibit private IPs in firewall.
Fully validating non-archive node can have <1TB storage requirements. Check out Ress and EIP-7870.
MIT License
Vue
62.8%
TypeScript
32.7%
CSS
3.5%
Explore Ethereum-like blockchain privately with your RPC URL
See the codeExplore Ethereum-like blockchain privately with your RPC URL.
[!IMPORTANT] The package got merged into micro-eth-signer. Check out its examples directory.
How is this better than Etherscan?
Etherscan and other other 3rd party block explorers collect and track user data. They create logs every time someone opens an address. Private explorers allow viewing information without logging.
How is this better than Otterscan?
Otterscan does not support token balances or transfer history, which makes it limited in usefulness. ERC20 / ERC721 / ERC1155 tokens & NFTs are one of the most popular features of EVM-like blockchains. Besides that, Otterscan can only be used with one client while esplr strives to support all node types.
Can I verify all network requests?
The explorer only makes requests to specified RPC URL. To audit this, check src/App.vue,
handleConnect. It uses micro-ftch to
ensure no requests are done outside of the URL. You can add custom logging there.
How are USD prices calculated?
Chainlink EVM contract provides onchain prices. No external services are used.
Are ERC-20 tokens fully supported?
Yes. To view full token transfer history for an account, open tx Details tab. First call can take up to 50 seconds because of limitations of ETH nodes. Second call would be cached and instant.
Are ERC-721 NFTs fully supported?
Work in progress. They will be shown in UI in one of the next updates.
Do you support local or remote Sourcify integration?
Both! Check out instructions below to set up your own Sourcify instance.
Which frontend libraries are used?
micro-eth-signer and micro-ftch empower data retrieval. Vue.js is used as UI framework.
To build the app and launch dev server, execute:
npm install && npm run dev
To build for production:
npm install && npm run build
# Output is now in `dist/`
# Example: serve `dist/` directory using built-in Python module
cd dist && python3 -m http.server --bind 127.0.0.1
The output is 3 files in dist: 1 html, 1 js, 1 css.
Continuously re-generated via GitHub Actions and published to Docker registry.
See relevant Docker image URL.
You can have the app automatically point to an RPC URL, SOURCIFY URL or IPFS GATEWAY URL provided via env variables: VITE_RPC_URL, VITE_SOURCIFY_URL, VITE_IPFS_GATEWAY_URL.
For example:
npm install && VITE_RPC_URL=<RPC_URL> VITE_SOURCIFY_URL=<SOURCIFY_URL> VITE_IPFS_GATEWAY_URL=<IPFS_GATEWAY_URL> npm run dev
Esplr supports all node types. User-ran Erigon RPC node is adviced to get 100% of functionality. Reth may achieve feature parity soon. See details.
erigon --datadir=/data/erigon --prune.mode='archive' --torrent.download.rate="100mb" --http --http.api=eth,erigon,web3,net,debug,trace,txpool,ots --ws --http.corsdomain='*'
The RPC will be running locally at 127.0.0.1:8545. There are two ways to make it available to outside internet:
ethnode.com to 127.0.0.1:8545
proxy_pass http://127.0.0.1:8545ethnode.com, you will be able to specify its RPC.user:password@ethnode.com).ssh -L 5678:127.0.0.1:8545 root@192.168.1.50 where 5678 is port on your local machine,
root@192.168.1.50 is user + hostname of Erigon3 server.Some features are not present outside of Erigon. The app uses archive node API / trace_filter extensively.
prune.mode=archive for 100% of featuresesplr supports Sourcify (sourcify.dev) integration. Sourcify allows to verify smart contract source code for eth. To set it up:
manifest.json
curl -L -O https://repo-backup.sourcify.dev/manifest.jsonmanifest.json
CHAIN_ID=1; jq -r '.files[].path' manifest.json | grep -E "(full|partial)_match\.${CHAIN_ID}\." | xargs -I {} curl -L -O https://repo-backup.sourcify.dev/{}jq -r '.files[].path' manifest.json | xargs -I {} curl -L -O https://repo-backup.sourcify.dev/{}for file in *.tar.gz; do echo "Extracting $file..."; tar -xf "$file"; donecp scripts/normalize_addresses.sh /path/to/repository./normalize_addresses.sh --chains 1./normalize_addresses.shnpm install -g http-server@14.1.1http-server /path/to/repository --cors -p 2015Most requests are instant. Some requests, like seeing token transfer history, rely on scanning whole blockchain from scratch. This can take 10-50 seconds.
To improve this, in the future, archive node developers can add additional indexes into their software. They can also provide a new RPC method to query history. Best thing one can do is to ask for this in their bug trackers: reth, erigon.
Addons, like Trueblocks, can also speed things up. While the goal of esplr is to use "pure" archive node, we would welcome support for an easy trueblocks integration.
An archive node will need 30Mbps connection & 2.5TB NVME SSD (TLC, not QLC). Such new PC can cost $570 for 32GB RAM & 4-core CPU. Here is another $650 build with 64GB RAM & 8-core CPU.
Similar server can be rented from providers like Hetzner for $60/mo. Make sure to prohibit private IPs in firewall.
Fully validating non-archive node can have <1TB storage requirements. Check out Ress and EIP-7870.
MIT License
Vue
62.8%
TypeScript
32.7%
CSS
3.5%