Ethernauta
Primitive-first TypeScript for Ethereum. Every wallet operation, also available without one.
Two consumer paths
Every signable operation can go through a wallet
(eth_sendTransaction) or through a
primitive pair the dapp composes itself
(eth_signTransaction + eth_sendRawTransaction).
The library refuses to pick for you.
Four resolver shapes
Readable<T>, Writable<T>, Signable<T>, Callable<T>. Three
of them work without a wallet at all.
Standards are folders
Every EIP / ERC lives under packages/eip/src/<n>/ or packages/erc/src/<n>/. Adding a new one is a
folder-shaped operation. No hosted infra, no server coordination.
Schemas are the types
Valibot schemas first; v.InferOutput second. Every wire
boundary validates with parse. No
hand-rolled type X = { … }.
Browse everything
- Getting Started Introduction
- Getting Started Installation
- Getting Started First read
- Getting Started First signature
- Getting Started Comparison with ethers and viem
- Concepts Primitives first
- Concepts The four resolver shapes
- Concepts Two paths
- Concepts Schemas are the types
- Concepts 1193 is a transport
- Concepts Folder-shaped standards
- Concepts The wallet contract
- Overview @ethernauta/core
- Overview @ethernauta/utils
- Overview @ethernauta/abi
- Overview @ethernauta/chain
- Overview @ethernauta/transport
- Overview @ethernauta/eth
- Overview @ethernauta/transaction
- Overview @ethernauta/crypto
- Overview @ethernauta/ens
- Overview @ethernauta/react
- Overview @ethernauta/cli
- EIPs Overview
- EIPs EIP-55 — Checksum addresses
- EIPs EIP-191 — Signed data
- EIPs EIP-712 — Typed structured data
- EIPs EIP-1014 — CREATE2
- EIPs EIP-1102 — Account exposure
- EIPs EIP-1193 — Provider API
- EIPs EIP-1271 — Smart-contract signatures
- EIPs EIP-2255 — Wallet permissions
- EIPs EIP-3085 — Add chain
- EIPs EIP-3326 — Switch chain
- EIPs EIP-4337 — Account abstraction
- EIPs EIP-4361 — Sign-In with Ethereum
- EIPs EIP-4844 — Blob transactions
- EIPs EIP-5792 — Wallet calls
- EIPs EIP-6492 — Counterfactual signatures
- EIPs EIP-6963 — Provider discovery
- EIPs EIP-7702 — Set EOA code
- ERCs Overview
- ERCs ERC-20 — Fungible token
- ERCs ERC-137 — ENS registry
- ERCs ERC-165 — Interface detection
- ERCs ERC-181 — Reverse ENS
- ERCs ERC-721 — Non-fungible token
- ERCs ERC-1155 — Multi-token
- ERCs ERC-1577 — ENS content hash
- ERCs ERC-2304 — Multichain ENS
- ERCs ERC-2612 — Permit
- ERCs ERC-2981 — NFT royalties
- ERCs ERC-3156 — Flash loans
- ERCs ERC-4494 — Permit for NFTs
- ERCs ERC-4626 — Tokenized vaults
- ERCs ERC-5564 — Stealth addresses
- ERCs ERC-5805 — Voting delegation
- ERCs ERC-6372 — Contract clock
- ERCs ERC-7683 — Cross-chain orders
- ERCs Selector registry
- Wallet Overview
- Wallet Dispatch
- Wallet Views
- Wallet Vault
- Guides Reading from the chain
- Guides Signing transactions
- Guides Tracking a transaction lifecycle
- Guides Calling contracts
- Guides Resolving ENS names
- Guides Multi-wallet via EIP-6963
- Guides React integration
- Guides Migrating from ethers / viem
- Tooling ERC codegen
- Tooling Adding a new EIP / ERC