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

@ethernauta/cli

v0.0.48

Published

Code generator for Ethernauta — emits ABI method bindings from contract ABIs.

Readme

bundlejs

Philosophy

This module ships a CLI for working with ABIs in an Ethernauta codebase. Two subcommands:

  • ethernauta abi — generate ready-to-use TypeScript methods from an ABI JSON, a Foundry artifact, or a Solidity source (.abi). With no flags it walks packages/**/*.abi.json and packages/**/*.abi and regenerates methods/ next to each ABI source.
  • ethernauta registry — walk a directory of ABI JSONs and emit a 4-byte selector → method-metadata map (used by the wallet to surface human-readable function names)

Prerequisites

  • Node 20+ — runtime for the CLI itself.

  • Foundry's forge — required when the walker encounters a .abi (Solidity) source, since the ABI is extracted inline via forge inspect <path>:<Contract> abi. Install:

    curl -L https://foundry.paradigm.xyz | bash
    foundryup

    Not required when only .abi.json files are walked.

Modules

API

ethernauta abi

Regenerate contract method TypeScript files. Two modes:

Walker mode (no flags)

npx ethernauta abi

Discovers every packages/**/*.abi.json and packages/**/*.abi under the workspace root (the directory holding pnpm-workspace.yaml), skipping node_modules, dist, and .git. One ABI per folder is required; multiple ABIs in the same folder is an error. methods/ is fully overwritten next to each ABI source. For .abi files (Solidity sources) the walker invokes forge inspect <path>:<ContractName> abi — the contract name must match the filename.

This is the common case in the Ethernauta monorepo. A repo-level regen script chains it with a Biome format pass to keep generated files canonical.

Single-file mode

npx ethernauta abi --in abis/IERC20.abi.json --out app/methods

Each function in the ABI emits one file under <out>/methods/. View / pure functions emit Callable<T>; state-changing functions emit Signable<Bytes>. A barrel file at <out>/methods/index.ts re-exports everything. Use this form when consuming the CLI from outside the monorepo, or for one-off regeneration of a single contract.

A typical setup wires this into a package.json script so generated methods stay in sync with the contract:

{
  "scripts": {
    "regen:methods": "ethernauta abi --in contracts/out/MyContract.sol/MyContract.json --out app/generated/my-contract"
  }
}

Flags:

| Flag | Description | | ------- | ---------------------------------------------------------------------------- | | --in | Path to a raw ABI JSON array or a Foundry artifact with an abi field | | --out | Output directory; the generator writes <out>/methods/*.ts + a barrel file |

ethernauta registry

Walk a directory for *.abi.json files and emit a single REGISTRY mapping 4-byte selectors to method metadata.

npx ethernauta registry --in src --out src/registry/registry.generated.ts

The registry is used by the wallet to verify and display function names for transactions whose call data carries an unknown selector.

Flags:

| Flag | Description | | ------- | ----------------------------------------------------------------- | | --in | Directory walked recursively for *.abi.json files | | --out | Output file path for the generated REGISTRY TypeScript module |