wallet

Route and validate Ethereum JSON-RPC signing requests in a Chrome MV3 wallet.

1|Updated Jul 22, 2025
One-click install
npx skills add https://github.com/niconiahi/ethernauta --skill wallet-niconiahi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wallet
Source: https://github.com/niconiahi/ethernauta/tree/main/skills/wallet
Command: npx skills add https://github.com/niconiahi/ethernauta --skill wallet-niconiahi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It solves the problem of securely signing Ethereum requests from dapps by routing, validating, and presenting user approvals inside a Chrome extension that keeps the mnemonic encrypted at rest.

Core Features & Use Cases

  • Secure request/response plumbing: Enforces a single Valibot-validated message envelope that carries request IDs and method-scoped parameters between dapp, content script, background router, and popup UI.
  • Vault-based authentication: Encrypts the mnemonic with AES-GCM and PBKDF2-derived keys, decrypting only inside the popup and only while authenticated within a short time window.
  • Method-to-view routing: Selects the correct approval screen based on request.method, including connect, signing, typed data, chain add, delegation, and batched calls.

Quick Start

Read this skill to understand the wallet message envelope, routing lifecycle, and vault/security constraints before editing any wallet RPC handling logic.

Frequently Asked Questions about wallet

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I securely handle Ethereum JSON-RPC signing in a Chrome extension wallet?

Ethereum JSON-RPC signing in a Chrome wallet requires routing EIP-1193 requests through a content script and background router, validating parameters with Valibot, and decrypting the mnemonic vault only inside the popup UI for user approval.

How does EIP-6963 multi-injector discovery work with EIP-1193 providers?

EIP-6963 works alongside EIP-1193 by announcing multiple wallet providers, allowing dapps to route JSON-RPC signing requests like personal_sign and typed data to a specific Chrome extension wallet using validated message envelopes.

Can I encrypt a mnemonic vault using AES-GCM and PBKDF2 in Chrome MV3?

Yes, Chrome MV3 supports encrypting a mnemonic vault using AES-GCM with PBKDF2-derived keys, keeping the seed phrase encrypted at rest and decrypting it only within the authenticated popup during a short time window.

How do I route EIP-5792 batched calls and typed data to specific approval screens?

Routing EIP-5792 batched calls and typed data requires parsing the request method from the JSON-RPC envelope, then selecting the correct popup approval view based on the method-scoped parameters and request signals.

Why does my Chrome extension wallet replay background tab JSON-RPC responses?

Chrome extension wallets replay background tab JSON-RPC responses by matching request IDs across the content script and popup UI, ensuring the dapp receives the correct signing result after user approval within the short authentication window.

How do I prevent exporting private keys from a Chrome wallet vault?

To prevent exporting private keys, a Chrome wallet vault must strictly enforce non-export of secrets by decrypting the mnemonic only inside the popup UI and never exposing the raw seed phrase to the dapp or background router.