npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@paradoxcomputer/zonescan

v0.4.0

Published

Transaction explorer for Logos Execution Zone (LEZ) sequencers: a live web dashboard over public on-chain settlement data. Reads from a Logos L1 node, or directly from a local sequencer with no L1. Run `zonescan setup` for a token-gated setup page, or con

Readme

zonescan

A live transaction explorer for Logos Execution Zone (LEZ) sequencers. It serves a web dashboard over public on-chain settlement data: a per-sequencer transaction feed, transaction detail, account / program / token pages, and liveness (tip, cadence, consistency).

Install

npm install -g @paradoxcomputer/zonescan

Downloads a prebuilt binary for your platform (or builds from source with Rust if none fits).

Transaction decoding (optional)

By default zonescan includes full per-transaction decoding: it turns each program's risc0-serialized instruction into typed fields — tx type, program, token transfer amounts and learned token names, mints/burns, faucet claims, ATA creates, and shield vs. deshield. Programs are named by a structural fingerprint classifier that recognizes the built-ins even when a sequencer rebuild gives them different image ids, and operators can register an ABI/schema (and a program-name alias) for any program it doesn't yet know. Every release also ships a light prebuilt that omits decoding, useful because the full build is heavy (it pulls the logos-blockchain + risc0 stack). To install the light binary instead:

ZONE_SCAN_DECODE=0 npm install -g @paradoxcomputer/zonescan

The light binary is fast and reliable and still shows block-level data + liveness/consistency, just not the per-transaction type/program breakdown. Both come as prebuilt binaries, so neither needs a Rust toolchain; the light one is also served automatically to any platform that has no full build. (If you do build the full binary from source and that heavy build fails, the launcher falls back to a light build automatically.)

Commands

zonescan setup     # configure via a token-gated setup page, then run
zonescan up        # start in the background
zonescan down      # stop the background server
zonescan           # run in the foreground (Ctrl-C to stop)

setup starts the dashboard (default http://127.0.0.1:8088), prints a one-time setup URL with a token, and opens it. On that page you pick a data source (see Modes) and the sequencer(s) to watch, and it starts scanning. After that, zonescan up / zonescan just run it. The dashboard and read APIs are open; changing configuration requires the setup token.

Modes

zonescan reads the same settlement data from one of two vantage points. Pick one on the setup page, or set it via env / .env (copy .env.example).

With an L1 node (the trustless vantage)

Point it at a Logos L1 node. Every sequencer settles its blocks to the L1, so a single node sees them all and a sequencer can neither lie about nor hide what it settled. This mode adds L1 finality / lag, on-chain channel collateral, and can auto-discover sequencers.

ZONE_SCAN_L1_NODE_URL=http://localhost:8080
ZONE_SCAN_SEQUENCERS=<channel-id>          # or leave empty to track every channel on the L1
# For a Tor .onion L1 node, route through a SOCKS5 proxy:
# ZONE_SCAN_SOCKS5=127.0.0.1:9050

Without an L1 (straight from a local sequencer)

Leave the L1 URL empty and give a sequencer's JSON-RPC URL. zonescan reads blocks directly from the sequencer (getLastBlockId / getBlock). It works fully offline against a local sequencer with no L1 connection. (L1-only extras like finality and collateral aren't shown in this mode; everything else is.)

ZONE_SCAN_SEQUENCERS=<channel-id>|http://127.0.0.1:3040

Logos L1 compatibility

zonescan speaks the Logos Testnet v0.2 (0.2.0) L1 REST API and stays back-compatible with 0.1.x — it auto-detects the response shape per node, so the same binary works against either. Point ZONE_SCAN_L1_NODE_URL at the node's API (:8080). The dashboard header shows an L1-version tag (L1 v0.2.x / L1 v0.1.x) next to the sync status, so you can see which API a node is serving at a glance.

Channel aliases

Known sequencer channels render a friendly name as the primary label (with the raw short hex kept alongside) everywhere a channel id is shown — the channels list, a sequencer's header, and per-channel labels. Channels without an alias keep the plain short-hex display.

Configuration

All settings are ZONE_SCAN_* environment variables (also loadable from .env). The common ones:

| Variable | Meaning | Default | | --- | --- | --- | | ZONE_SCAN_L1_NODE_URL | L1 node URL. Empty ⇒ no-L1 (local sequencer) mode. | unset | | ZONE_SCAN_SEQUENCERS | Comma-separated channel\|rpc_url\|label\|full entries (only channel required). | unset | | ZONE_SCAN_SOCKS5 | SOCKS5 proxy for a Tor .onion L1 node. | unset | | ZONE_SCAN_HOST / ZONE_SCAN_PORT | Bind address / port. | 127.0.0.1 / 8088 | | ZONE_SCAN_DATA | Data directory (config, store, setup token). | ~/.config/zone-scan | | ZONE_SCAN_ADMIN_TOKEN | Stable setup token (otherwise one is generated). | generated |

Full list with comments in .env.example.

Build from source

npm run build          # cargo build --release --features decode

License

GPLv3. See LICENSE.