Sigil logo

Sigil

Local keystore and MCP signing server for EVM and Solana keys without exposing private key material to Claude.

Install Sigil

Pick your client, then add it in one click or paste the config.

No confirmed install command yet

We only publish a config when the install details come from the project itself — its README, its docs, or a verified owner. We haven’t found those for sigil, and we’d rather show nothing than a guess you’d paste into your client.

Open setup steps on GitHub

Overview

The sigil MCP server lets Claude Code sign EVM and Solana messages or transactions while keeping private keys outside the model context. It runs locally over stdio, starts locked, and receives passphrases through a separate CLI over Unix sockets. Encrypted keyfiles use XChaCha20-Poly1305 with an Argon2id-derived key, while unlocked keys remain in process memory. Reach for it when an agent needs signing access but should not handle raw private keys; it is pre-alpha and not recommended for real funds.

Use cases

  • Sign EVM transactions from Claude Code without exposing private keys
  • Sign Solana messages and transactions through an agent
  • Apply per-portal policies to constrain signing requests
  • Unlock or lock signing access across multiple Claude Code windows
  • Proxy authenticated JSON-RPC signing requests for Foundry or Hardhat

Key features

  • Encrypted local keyfiles
  • EVM and Solana signing
  • Per-portal static signing policies
  • Claude Code hooks for key-path protection
  • Multi-window lock and unlock control
  • Foundry and Hardhat JSON-RPC signing proxy

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars3Stargazers on the source repository.
Last commit8d agoMost recent push to the default branch.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How Sigil works

What sigil MCP server does

The sigil MCP server gives Claude Code access to signing operations without placing private keys in the model's context window. It supports EVM personal messages, legacy and EIP-1559 transactions, EIP-712 typed data, and Solana message and transaction signing. The model receives opaque handles such as evm:executor rather than key material.

The project includes an MCP process, a control CLI, and Claude Code hook binaries. The hooks block reads from common key paths and redact strings that resemble keys from tool output. Policy files can apply static checks including chain IDs, destination allowlists, transaction value caps, function-selector allowlists, contract-creation controls, and toggles for personal signing and EIP-712. Optional out-of-band confirmation uses ntfy.

How it works

Each Claude Code window starts its own sigil-mcp process. It begins locked with no keys loaded, so signing requests fail until sigil unlock supplies the passphrase from another terminal. The CLI sends the passphrase through per-process Unix sockets under the sigil control directory, and one command can unlock or lock all active sessions.

Encrypted keyfiles remain on disk under the sigil home directory. When unlocked, the process decrypts them into memory; sigil lock, an unlock failure, or process shutdown clears the in-memory handle table. Closing Claude Code ends the process, so a later session requires another unlock. Open windows have separate in-memory keys but share the encrypted keyfiles and audit log.

The sigil MCP server uses a small stdio MCP wire implementation rather than an SDK. It requires Node 22 or newer and supports macOS and Linux; Windows is currently unsupported.

Setup and configuration

Install the npm package globally with npm install -g sigild. Run sigil init to register the MCP process and Claude Code hooks for a project, or use sigil init --user for user-wide configuration. Create a new EVM key with sigil portal new <handle>, or import a 32-byte or 64-character hexadecimal private key with sigil portal add. Imported source files are removed by default, and both commands create a policy file.

Start Claude Code, then run sigil unlock in a separate terminal. Use sigil lock to clear loaded keys without restarting the MCP process. SIGIL_HOME changes the default ~/.sigil location, while SIGIL_CONTROL_DIR changes the Unix-socket directory.

Tools and capabilities

  • Sign EVM personal messages, legacy transactions, EIP-1559 transactions, and EIP-712 typed data.
  • Sign Solana ed25519 messages and transactions.
  • Create or import encrypted key portals and list their derived addresses.
  • Initialize, inspect, and apply per-portal policy files.
  • Lock and unlock all active Claude Code sessions from the CLI.
  • Enable a JSON-RPC signing proxy for a portal for Foundry or Hardhat workflows.

Limitations and notes

sigil is pre-alpha. Rolling-window value caps and EIP-712 domain allowlists are described as not yet released, and supply-chain attestations are planned for version 0.1.0. The project explicitly advises against using it with real funds before that release.

It is not a hardware-wallet replacement or a custody service. The key protection is specifically aimed at preventing an LLM agent from receiving private key material. The implementation uses Unix domain sockets, so Windows is not supported.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Sigil

sigil is an MCP server that connects Claude Code to local encrypted EVM and Solana key portals without exposing private keys to the model. Its main tools sign EVM messages and transactions, EIP-712 data, and Solana messages or transactions; the separate CLI unlocks, locks, and manages those portals.

Install it with `npm install -g sigild`, which provides the `sigil-mcp`, `sigil`, and hook binaries. Node 22 or newer is required, and the supported platforms are macOS and Linux. Run `sigil init` to register it with Claude Code.

Run `sigil unlock` in a separate terminal after starting Claude Code. The command prompts for the passphrase and sends it to every running sigil-mcp process through Unix control sockets. Signing remains available for each session until it is locked or exits.

The documented integration is Claude Code, which starts sigil-mcp through its MCP configuration and uses the supplied Claude Code hook binaries.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewSigil AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/sigil-2?style=directory)](https://allmcps.com/mcp/sigil-2)
HTML Embed
<a href="https://allmcps.com/mcp/sigil-2"><img src="https://allmcps.com/api/badge/sigil-2?style=directory" alt="Sigil on AllMCPs" /></a>