关于 Sovereign Identity Wallet
Sovereign Identity Wallet 是面向 MCP Agent 的自托管身份钱包,为所有者与 Agent 提供 DID、授权委托和任务授权,并支持网站验证授权链。私钥在本地加密保存。
主要功能
- 01创建所有者与 Agent 身份
- 02签发带范围和金额限制的授权
- 03生成任务授权凭证
- 04验证凭证及多级委托链
- 05按受众生成成对 DID
适用场景
- 01为 MCP Agent 建立 DID 身份
- 02限制 Agent 可执行的授权范围和金额
- 03网站验证任务授权及委托链
- 04避免不同网站关联同一身份
MCP 相关
它作为 MCP 服务向兼容客户端提供身份创建、授权签发和验证等工具。支持 stdio,也可通过带 Bearer token 的 HTTP 模式提供远程连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| role | enum | 否 | 要查询哪种身份owner | agent |
详细介绍
si-wallet-mcp
作为 MCP 服务的主权身份钱包。 为任何支持 MCP 的 Agent 提供 DID、所有者→Agent 授权和任务委托凭证—— 这是 AWAS 网站身份验证的底层身份层。
协议: TamTunnel/sovereign-identity — 本钱包实现的 DIDs、代理授权、任务委托凭证和 AWAS 网站绑定。
版本: 0.1.0 · 许可证: Apache-2.0
工具
| 工具 | 功能 |
|---|---|
wallet_onboard | 创建所有者/Agent 身份(如果已存在则返回现有身份) |
wallet_did | 获取某个角色的 DID |
issue_grant | 所有者将权限范围和 USD 限额委托给某个 Agent DID |
mint_mandate | Agent 为某个网站受众签发任务委托凭证(返回 Authorization: Mandate … 值)。传入 subjectDid,可将权限委托给权限范围/金额更受限的下游 Agent |
verify_mandate | 网站端验证:签名、到期时间、受众、重放、授权绑定、权限范围/金额限制 |
verify_chain | 网站端验证多跳委托链(所有者 → … → Agent):逐跳验证签名、绑定、权限收窄和重放 |
pairwise_did | 为每个受众生成新的成对 DID(避免跨站关联) |
防护措施在服务端强制执行:金额超过 $100 的任务委托凭证需要
confirmOverLimit=true(仅在所有者明确批准后才能设置),验证器
会直接拒绝非规范的 base64url。
快速开始
npm install -g @tamtunnel/si-wallet-mcp # after publish; or clone and npm install
export SI_WALLET_PASSPHRASE="your passphrase" # required for signing
si-wallet-mcp # stdio mode (default)
状态存储在 ~/.sov-id(可通过 SI_WALLET_DIR 覆盖)。密钥使用
scrypt + AES-256-GCM 加密后静态存储,文件权限为 600。
本地 MCP 客户端(Claude Code、Hermes、OpenClaw、…)
添加到客户端的 MCP 配置中:
{
"mcpServers": {
"si-wallet": {
"command": "node",
"args": ["/path/to/si-wallet-mcp/server.mjs"],
"env": { "SI_WALLET_PASSPHRASE": "your passphrase" }
}
}
}
Muse(自定义连接器)
Muse 自定义连接器通过可流式传输的 HTTP 连接远程 MCP 服务—— 笔记本电脑上运行的服务无法从 Meta 的云端访问。运行:
export SI_WALLET_PASSPHRASE="your passphrase"
export SI_MCP_TOKEN="$(openssl rand -hex 32)" # required in HTTP mode
si-wallet-mcp --http --port 8787
将其暴露在公共 HTTPS URL 上(使用你的 VPS、fly.io、Tailscale 等),然后在 Muse 中将该 URL 添加为自定义连接器,并设置 Authorization: Bearer <token>。
默认情况下,服务绑定到 127.0.0.1;仅在 TLS 后方才设置 SI_MCP_HOST=0.0.0.0。
完整指南:DEPLOY.md。
Docker
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
有关 fly.io、Tailscale、TLS、入门设置、备份和连接 Meta Muse 的说明,请参阅 DEPLOY.md。
委托演示:所有者 → Muse → Hermes
examples/delegation-chain/ 是一个可运行的示例,证明任务委托凭证可在不同 Agent 和框架间组合使用,无需针对特定组合的连接器:所有者授予 Muse 广泛权限,Muse 向 Hermes 委托权限范围更窄的授权,Hermes 向网站出示叶节点任务委托凭证,网站则验证整条经过权限收窄的委托链。示例会尝试并拒绝四种攻击(权限范围升级、金额升级、篡改、重放)。
node examples/delegation-chain/run.mjs
由谁托管?
每位用户自行托管。 这正是设计初衷。钱包持有私钥,因此没有共享托管实例——那样就属于托管式服务,会违背主权身份中“主权”的含义。
- 你自己使用: 在你控制的硬件上运行(自己的 Mac、自己拥有的 VPS)。只需一条命令,密钥绝不离开你的设备。
- 其他用户: 同理——他们运行自己的实例,并让 Agent 连接到该实例。这与 Hermes/OpenClaw 已有的工作方式一致(可自托管)。
- 无状态验证(使用
verify_mandate,不含重放账本) 是唯一可能共享的部分,即便如此,本地运行也更安全。
任何能访问该服务的人都可以要求它签名。请将持有者令牌视同密码,绝不要在没有 TLS 的情况下暴露 HTTP 端口。
安全说明
- HTTP 模式在未设置
SI_MCP_TOKEN时拒绝启动;每个请求都需要Authorization: Bearer <token>(否则返回 401)。 - 服务绝不会记录密码短语、密钥或令牌。
- 使用测试密码短语创建的演示身份必须在实际使用前替换——真实的所有者入门设置需要由你自行完成。
- 此工具未经独立的密码学审计。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。