Getting Started

Installation

Each Ethernauta package is independently versioned, tree-shakeable, and dependency-light. Install only what you need.

The minimum useful set

pnpm add @ethernauta/core @ethernauta/transport @ethernauta/chain @ethernauta/eth

That gives you Readable<T> / Writable<T> resolvers, every eth_* method, and 500+ chain definitions. Enough to read any chain and broadcast any signed transaction.

With wallet support

If your dapp talks to a wallet via EIP-1193:

pnpm add @ethernauta/eip

The Provider adapter, create_signer, EIP-6963 discovery, and every signing-related EIP all live here.

ERC token bindings

pnpm add @ethernauta/erc

Ships ERC-20, ERC-721, ERC-1155 method bindings, plus 14 other ERCs (2612 permit, 4626 vaults, 2981 royalties, 5805 voting, …) as subpath exports.

ENS

pnpm add @ethernauta/ens

ENSIP-12 forward/reverse resolution, ENSIP-15 name normalization, avatar parsing, text records.

React

pnpm add @ethernauta/react

Hooks that wrap an EIP-1193 provider into the resolver shapes. Use alongside @ethernauta/transport.

Transaction lifecycle tracking

pnpm add @ethernauta/transaction

create_tracker, register_transaction, wait_for_receipt, watch_transaction, plus a storage abstraction (Store) for persisting pending transactions across page reloads.

Cryptographic primitives

pnpm add @ethernauta/crypto

Universal signature verification across EIP-191 (personal_sign), EIP-712 (typed-data), EIP-1271 (smart-contract signatures), and EIP-6492 (counterfactual). Plus BIP-32/39/44 key derivation if you need to derive accounts off-line.

Peer requirements

  • TypeScript 5.x — the inference patterns rely on tuple types and satisfies.
  • An ES2022 runtime — modern browsers, Node 20+, Bun, Cloudflare Workers, Deno.
  • No bundler-specific tricks. Every package ships ESM + CJS + types.

All packages at once

pnpm add 
  @ethernauta/core @ethernauta/utils 
  @ethernauta/abi @ethernauta/chain 
  @ethernauta/eth @ethernauta/transport @ethernauta/transaction 
  @ethernauta/crypto 
  @ethernauta/eip @ethernauta/erc @ethernauta/ens 
  @ethernauta/react

The wallet extension

@ethernauta/wallet is not on npm. It’s the Chrome MV3 extension under packages/wallet/ in the monorepo. Build it locally:

git clone <ethernauta-repo>
cd ethernauta
pnpm install
pnpm --filter @ethernauta/wallet zip

Then load packages/wallet/extension.zip as an unpacked extension in Chrome.