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 分

    請在儲存庫或註冊中心條目中宣告授權條款。