EIPs

EIPs

Every Ethereum Improvement Proposal that Ethernauta implements lives as a subpath of @ethernauta/eip. The folder name is the EIP number. Import what you need:

import { sign_typed_data } from "@ethernauta/eip/712";
import { wallet_send_calls } from "@ethernauta/eip/5792";
import { discover_providers } from "@ethernauta/eip/6963";

What’s shipped

EIPTitlePurpose
55Checksum address encodingMixed-case address checksumming.
191Signed Data Standardpersonal_sign message format.
712Typed structured data hashing and signingTyped-data signing.
1014CREATE2Deterministic contract address derivation.
1102Opt-in account exposureeth_requestAccounts.
1193Provider JavaScript APIThe 1193 envelope itself.
1271Standard signature validation for contractsSmart-account signatures.
2255Wallet permissionsPermission-prompt protocol.
3085wallet_addEthereumChainAdding a chain at runtime.
3326wallet_switchEthereumChainSwitching active chain.
4337Account abstraction (entry-point + UserOperation)Smart-account flows.
4361Sign-In with Ethereum (SIWE)Off-chain auth message.
4844Shard blob transactionsBlob carriers + KZG commitments.
5792Wallet callsBatched call submission (wallet_sendCalls).
6492Counterfactual signaturesPre-deployment signatures.
6963Multi-injected provider discoveryMulti-wallet discovery.
7702Set EOA account codeEOA delegation to contract code.

Why per-folder

Hard rule 11 in CLAUDE.md: anything implementing a numbered standard lives in packages/eip/src/<n>/. The folder name is the standard number; the index.ts carries the spec link comment and re-exports the public surface. No exceptions.

That’s what makes EIP adoption a mkdir + populate operation rather than a coordinated rollout. See Concepts → folder-shaped standards.

ERC vs EIP, here

Token standards and contract-interface standards live under @ethernauta/erc/<n>/ instead — see ERCs. The split mirrors the spec namespace (EIP-N for protocol / wallet, ERC-N for token / contract).