Repository avatar
AI Tools
v0.1.3
active

mymultisig-mcp

io.github.marc-aurele-besner/mymultisig-mcp

Create, review, sign and execute MyMultiSig multisig wallet transactions from AI agents.

Documentation

MyMultiSig.app — Next.js Web App

Build, sign, and execute multi-signature transactions across popular EVM networks with a minimal, fast UI.

MyMultiSig.app screenshot

License: MIT Netlify Status Next Build Storybook Build

Live

1‑Click Deploy (Netlify)

Deploy to Netlify

Features

  • Create a new multi-signature wallet (owners and threshold)
  • Import an existing multi-signature by address
  • Build requests to:
    • Call any contract function (ABI-driven)
    • Send regular ETH transfers
  • Share request links for review/signing
  • Execute transactions once threshold is met
  • Wallets: MetaMask, WalletConnect v2, Coinbase Wallet, Injected, Ledger
  • Progressive Web App (PWA) with offline support
  • Optional analytics via Google Analytics
  • AI agents and automation: MCP server, Claude Code skills, scoped API keys, CLI and TypeScript SDK (below)

AI agents & automation

Agents and scripts can create wallets, read the queue, propose requests, sign them and execute them. Every flow uses the same scoped API keys, which you create at Settings → API keys. On-chain approvals are always signed locally with the agent's own owner key (MYMULTISIG_PRIVATE_KEY); keys never reach the server.

FlowGet startedPackage
MCP server: tools for Claude, Cursor or any MCP clientclaude mcp add mymultisig -e MYMULTISIG_API_KEY=mms_… -- npx -y mymultisig-mcpmymultisig-mcp
Claude Code skills: status, create, propose, review-and-sign and execute workflows, with the MCP server included/plugin marketplace add marc-aurele-besner/mymultisig-app then /plugin install mymultisig@mymultisigplugins/mymultisig
REST API: Bearer keys with read, propose, sign and manage scopes, optionally per walletcurl -H "Authorization: Bearer mms_…" https://mymultisig.app/api/agent-keys/whoamiOpenAPI 3.1, llms.txt
CLI: human-readable or --json outputnpx mymultisig-cli --helpmymultisig-cli
TypeScript SDK: the same protocol code this app runsnpm i mymultisig-sdk viemmymultisig-sdk

The safest setup is a threshold the agent can't reach alone. For example, in a 2-of-3 with two humans plus the agent, the agent can prepare and co-sign, but nothing moves without a human signature. The MCP server enforces this by default: it won't execute a request only the agent signed, or deploy a wallet the agent could run alone. To report a vulnerability, see SECURITY.md. The user guide is at mymultisig.app/docs/ai-agents, and the operator notes (scopes, storage, publishing) are in docs/ai-agents.md.

Supported Networks

  • Ethereum: Mainnet, Sepolia, Goerli
  • Polygon: Mainnet, Mumbai
  • Optimism: Mainnet, Goerli
  • Arbitrum: One, Goerli
  • Avalanche: C-Chain, Fuji
  • BNB Chain: Mainnet, Testnet
  • Gnosis: Mainnet, Chiado

(Driven by src/constants/networks.ts and factory addresses from mymultisig-contract.)

Tech Stack

  • Next.js 13, React 18, TypeScript
  • Chakra UI
  • wagmi + WalletConnect
  • Zustand
  • next-pwa
  • Storybook

Quick Start

Prerequisites

  • Node.js 16+ (CI uses Node 16)
  • Yarn 1.x
  • Netlify CLI (optional, for yarn netlify dev): npm i -g netlify-cli

Setup

yarn
cp .env.example .env.local
# Fill in the values in .env.local

Run

  • Next.js dev server:
yarn dev
  • Netlify dev (proxies serverless functions locally):
yarn netlify dev

Build

yarn build

Storybook

yarn storybook
# or build static storybook
yarn build-storybook

Environment Variables

Create .env.local (see .env.example for a full list and guidance).

Public (client) variables:

  • NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID — WalletConnect v2 Project ID (recommended)
  • NEXT_PUBLIC_ALCHEMY_API_KEY — optional, improves RPC performance
  • NEXT_PUBLIC_INFURA_API_KEY — optional, improves RPC performance
  • NEXT_PUBLIC_APP_GTAG — optional, Google Analytics ID

Server-only variables:

  • ETHERSCAN_API_KEY — required for ABI fetch in /api/getABI
  • DATABASE_URL — Neon PostgreSQL connection string (required for storing/retrieving requests)
  • PRIVATE_KEY — backend signer used to sign messages; do NOT use a key with funds
  • SLACK_TOKEN and SLACK_CONVERSATION_ID — optional notifications

Auth (optional; used by /api/auth/[...nextauth]):

  • GITHUB_ID, GITHUB_SECRET
  • GOOGLE_ID, GOOGLE_SECRET
  • DISCORD_ID, DISCORD_SECRET
  • TWITTER_ID, TWITTER_SECRET
  • SLACK_ID, SLACK_SECRET

Common Tasks

  • Create a wallet: Create page → choose name, owners, and threshold → confirm in wallet
  • Import a wallet: Import page → paste wallet address → confirm
  • Build a request: open a wallet → “Build a request” → select contract/function or regular tx → enter args → “Sign request”
  • Share/Sign: share the request link (/request/[requestId]) with owners to collect signatures
  • Execute: once threshold is met, execute from the request page or the wallet view

Project Structure

  • src/pages — Next.js routes (including API routes under pages/api)
  • src/components — UI components and views
  • src/constants — networks, providers, factory addresses
  • src/hooks — wagmi hooks and domain hooks
  • src/models — TypeScript models
  • src/states — Zustand stores (persisted in LocalStorage)
  • public — PWA manifest and icons, llms.txt, openapi.json
  • packages/sdk, packages/mcp, packages/cli — npm packages for agents (mymultisig-sdk, mymultisig-mcp, mymultisig-cli); the app imports the SDK's protocol core
  • plugins/mymultisig — Claude Code plugin (skills + MCP config)
  • plugins/mymultisig-skills — the same skills without the MCP server (Claude plugin directory version)

Scripts

  • yarn dev — start Next.js dev server
  • yarn netlify dev — start with Netlify dev
  • yarn build — production build
  • yarn analyze — bundle analyzer
  • yarn storybook / yarn build-storybook
  • yarn packages:build / yarn packages:test — build and test the agent packages

CI

  • Next build check (including the agent package build and tests) and Storybook build run on PRs via GitHub Actions.

Security & Disclaimer

This project is under active development. Use at your own risk. Always test with small amounts and/or on test networks first.

License

MIT © MyMultiSig.app

Acknowledgements

  • Built with Next.js and Chakra UI
  • Contract ABIs and factory addresses from mymultisig-contract
  • Stories documented in Storybook
NPM
mymultisig-mcp
Install Command
npm install mymultisig-mcp