Sovereign Identity Wallet

io.github.TamTunnel由 GitHub 账号 TamTunnel 发布v0.1.3更新于 Oct 24, 2026

Self-hosted signing wallet: DIDs, agency grants, and task mandates for AI agents.

已验证STDIO仅桌面金融安全与监控

概览

AI 生成的概览

自托管的主权身份钱包 MCP 服务器,为 AI 代理提供 DID、所有者到代理的授权以及用于网站认证的任务授权书。

可以做什么
创建和读取钱包身份:初始化所有者/代理身份,获取某个角色的 DID,并按受众生成全新的成对 DID 以避免跨站关联。签发授权:所有者向代理 DID 委托权限范围和美元限额。铸造授权书:代理为某个网站受众铸造任务授权书,并可将收窄后的范围或金额下放给下游代理。验证授权书与委托链:检查签名、有效期、受众、重放、授权绑定、范围与金额限制以及逐跳衰减。
适用场景
当你希望代理持有自己的去中心化身份,并向网站出示已签名、限定范围、有时限的授权书时使用;也适合在本地证明并验证多跳的所有者到代理委托链。适合自行掌控密钥和硬件的自托管用户。
运行要求
以 npm 包的本地 stdio 进程运行,或以 HTTP 模式监听端口。需要 Node.js,并通过 SI_WALLET_PASSPHRASE 提供签名口令;HTTP 模式还需要 SI_MCP_TOKEN。状态保存在 ~/.sov-id,可用 SI_WALLET_DIR 覆盖。远程连接器需要公网 HTTPS 地址和 bearer 令牌。
安装前请注意
钱包持有私钥,任何能访问该服务器的人都能要求它签名,因此应把 SI_MCP_TOKEN 当作密码,切勿在无 TLS 的情况下暴露 HTTP 端口。超过 100 美元的授权书需在所有者明确批准后设置 confirmOverLimit=true。用测试口令创建的演示身份必须在正式使用前替换。该工具尚未经过独立的密码学审计。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Sovereign Identity Wallet,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

si-wallet-mcp

Sovereign-identity wallet as an MCP server. Gives any MCP-capable agent a DID, owner→agent grants, and task mandates — the identity layer underneath AWAS website authentication.

Protocol: TamTunnel/sovereign-identity — DIDs, agency grants, task mandates, and the AWAS website binding this wallet implements.

Version: 0.1.0 · License: Apache-2.0

Tools

ToolWhat it does
wallet_onboardCreate the owner/agent identity (returns existing if present)
wallet_didGet the DID for a role
issue_grantOwner delegates scopes + USD limit to an agent DID
mint_mandateAgent mints a task mandate for a website audience (returns Authorization: Mandate … value). Pass subjectDid to delegate to a downstream agent with narrowed scope/amount
verify_mandateWebsite-side verification: signatures, expiry, audience, replay, grant binding, scope/amount confinement
verify_chainWebsite-side verification of a multi-hop delegation chain (Owner → … → agent): per-hop signatures, binding, attenuation, replay
pairwise_didFresh pairwise DID per audience (no cross-site correlation)

Guardrails are enforced server-side: mandates over $100 need confirmOverLimit=true (only after the owner explicitly approved), and the verifier rejects non-canonical base64url outright.

Quick start

bash
npm install -g @tamtunnel/si-wallet-mcp   # after publish; or clone and npm installexport SI_WALLET_PASSPHRASE="your passphrase"   # required for signingsi-wallet-mcp                                # stdio mode (default)

State lives in ~/.sov-id (override with SI_WALLET_DIR). Keys are scrypt + AES-256-GCM encrypted at rest, files mode 600.

Local MCP clients (Claude Code, Hermes, OpenClaw, …)

Add to the client's MCP config:

json
{  "mcpServers": {    "si-wallet": {      "command": "node",      "args": ["/path/to/si-wallet-mcp/server.mjs"],      "env": { "SI_WALLET_PASSPHRASE": "your passphrase" }    }  }}

Muse (custom connector)

Muse custom connectors reach remote MCP servers over streamable HTTP — a server on your laptop is not reachable from Meta's cloud. Run:

bash
export SI_WALLET_PASSPHRASE="your passphrase"export SI_MCP_TOKEN="$(openssl rand -hex 32)"   # required in HTTP modesi-wallet-mcp --http --port 8787

Expose it on a public HTTPS URL (your VPS, fly.io, Tailscale, …), then add that URL as a custom connector in Muse with Authorization: Bearer <token>. The server binds 127.0.0.1 by default; only set SI_MCP_HOST=0.0.0.0 behind TLS. Full walkthrough: DEPLOY.md.

Docker

bash
docker build -t si-wallet-mcp .docker run -d --name si-wallet \  -e SI_MCP_TOKEN="$(openssl rand -hex 32)" \  -e SI_WALLET_PASSPHRASE="your passphrase" \  -v si-wallet-data:/data \  -p 127.0.0.1:8787:8787 \  si-wallet-mcp

See DEPLOY.md for fly.io, Tailscale, TLS, onboarding, backups, and connecting Meta Muse.

Delegation demo: Owner → Muse → Hermes

examples/delegation-chain/ is a runnable proof that mandates compose across agents and frameworks with no pair-specific connectors: the owner grants Muse broad authority, Muse delegates a narrowed envelope to Hermes, Hermes presents the leaf mandate to a website, and the website verifies the whole attenuated chain. Four attacks (scope escalation, amount escalation, tampering, replay) are attempted and refused.

bash
node examples/delegation-chain/run.mjs

Who hosts this?

Each user hosts their own. That is the point. A wallet holds private keys, so there is no shared hosted instance — that would be custodial and would contradict the "sovereign" in sovereign identity.

  • You, for your own use: run it on hardware you control (your Mac, a VPS you own). One command, keys never leave your machine.
  • Other users: same — they run their own instance and point their agent at it. This mirrors how Hermes/OpenClaw already work (self-hosted).
  • Stateless verification (verify_mandate without the replay ledger) is the only piece that could ever be shared, and even that is safer local.

Whoever can reach the server can ask it to sign. Treat the bearer token like a password and never expose the HTTP port without TLS.

Security notes

  • HTTP mode refuses to start without SI_MCP_TOKEN; every request needs Authorization: Bearer <token> (401 otherwise).
  • The server never logs the passphrase, keys, or tokens.
  • Demo identities created with a test passphrase must be replaced before real use — the real owner onboarding is yours to run.
  • This tooling has not had an independent cryptographic audit.

来源:README.md,提交 5934aa9

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.3最新Sep 23, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。