EVM Wallet Signer
Route EVM transactions to browser wallets (MetaMask, etc.) for signing via EIP-6963
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
mcp-wallet-signerclaude mcp add evm-wallet-signer -e 'EVM_MCP_PORT=3847' -e 'EVM_MCP_DEFAULT_CHAIN=1' -- npx -y mcp-wallet-signer@0.1.3
{
"mcpServers": {
"evm-wallet-signer": {
"command": "npx",
"args": [
"-y",
"mcp-wallet-signer@0.1.3"
],
"env": {
"EVM_MCP_PORT": "3847",
"EVM_MCP_DEFAULT_CHAIN": "1"
}
}
}
}
Variables d'environnement
EVM_MCP_PORTHTTP server port for the browser approval UI (default: 3847)EVM_MCP_DEFAULT_CHAINDefault EVM chain ID (default: 1 for Ethereum mainnet)
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
mcp-wallet-signer
[!WARNING] Superseded by browser-web3-signer — the same browser-wallet signing flow, reimplemented in Rust with a CLI plus Rust/TypeScript/Go libraries. Everything published from this repo is now a thin compatibility shim over it, so existing installs keep working; new code should use
browser-web3-signerdirectly.
Your private keys never leave your browser. Every transaction requires explicit approval in your own wallet (MetaMask, Rabby, TronLink, …).
Most blockchain tooling wants a private key in a config file — full, unsupervised access to your funds. These packages route each request to the browser wallet you already use, so you review and approve it like any other dapp interaction.
Packages
| Package | What it is now |
|---|---|
mcp-wallet-signer | MCP stdio server: four signing tools over browser-web3-signer |
browser-evm-signer | The old WalletSigner EVM library API, re-backed by the Rust bridge |
browser-tron-signer | The same for TRON (TronLink, TRC-20, contract deploys) |
All three spawn browser-web3-signer serve, which owns the localhost bridge, the approval page
and the browser tab. The binary for your platform is installed as a dependency; nothing else to
set up.
MCP server
claude mcp add wallet-signer -- npx -y mcp-wallet-signer
Or, for Claude Desktop / Cursor / Windsurf and any other stdio MCP client:
{
"mcpServers": {
"wallet-signer": {
"command": "npx",
"args": ["-y", "mcp-wallet-signer"]
}
}
}
| Tool | Description |
|---|---|
connect_wallet | Connect a wallet, return the address |
send_transaction | Send value or call a contract, return the tx hash |
sign_message | personal_sign a message, return the signature |
sign_typed_data | Sign EIP-712 typed data, return the signature |
EVM_MCP_DEFAULT_CHAIN sets the chain id used when a call omits one (default: 1).
Libraries
import { WalletSigner } from "browser-evm-signer";
const signer = new WalletSigner({ defaultChainId: 8453 });
const { address } = await signer.connectWallet();
const { txHash } = await signer.sendTransaction({ to: "0x…", value: "1000000000000000000" });
What changed in the shims
- Gone:
PendingStore,pendingStore,createHttpServer,startTestServer,buildConnectUrl,buildSignUrl,openBrowser— the in-process HTTP bridge they drove no longer exists. approvalUrlis now the bridge's base URL. The bridge opens the approval page itself and does not hand the per-request URL back.port(the constructor option) is ignored: the bridge binds its own free port.getPort()/DEFAULT_PORTstill resolve, for source compatibility.- MCP: the balance tools (
get_balance,get_token_balance) and the TRON tools are gone from the MCP server. Balances never needed a wallet — any RPC-reading MCP server orcast calldoes them without an approval prompt — and TRON signing is a CLI away.WalletSigner.getBalanceand.getTokenBalanceare untouched in both libraries. - Deprecated on npm and JSR.
browser-evm-signer@0.3.0never worked at all: itsexportspointed at./esm/mod.jswhile the tarball shipped./esm/browser-evm-signer/src/mod.js, which tookmcp-wallet-signer@0.6.0down with it (#2).
The pre-shim Deno implementation — the in-process bridge, the Svelte approval UI, the
wallet-signer-core package — is in the history, up to commit
636fd3b.
Development
npm install
npm test # builds, then runs each package's tests against a fake bridge
Releases are per package: tag <package>@<version> and publish a GitHub release.
License
MIT
Questions fréquentes
Qu'est-ce que EVM Wallet Signer ?
Route EVM transactions to browser wallets (MetaMask, etc.) for signing via EIP-6963
Comment installer EVM Wallet Signer ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add evm-wallet-signer -e 'EVM_MCP_PORT=3847' -e 'EVM_MCP_DEFAULT_CHAIN=1' -- npx -y mcp-wallet-signer@0.1.3. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour EVM Wallet Signer ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
EVM Wallet Signer est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient EVM Wallet Signer ?
Il est publié par nikicat. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.