Sovereign Identity Wallet について
Sovereign Identity Wallet は、MCP 対応エージェント向けのセルフホスト型 ID ウォレットです。DID、委任グラント、タスク委任状を扱い、秘密鍵はローカルで暗号化して保存します。
主な機能
- 01所有者とエージェントの ID 作成
- 02範囲・金額制限付きグラントの発行
- 03タスク委任状の生成
- 04委任状と委任チェーンの検証
- 05対象ごとのペアワイズ DID 作成
活用シーン
- 01MCP エージェントの DID 身元確立
- 02範囲と金額による権限の制限
- 03ウェブサイトでの委任状・委任チェーン検証
- 04サイト間の ID 関連付けの防止
MCP 対応
互換クライアントに ID 作成、グラント発行、検証などのツールを提供する MCP サーバーです。stdio と、Bearer token で保護されたリモート HTTP 接続に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| role | enum | いいえ | どの ID ですかowner | agent |
詳細
si-wallet-mcp
MCP サーバーとして動作するソブリンアイデンティティウォレットです。 MCP 対応のあらゆるエージェントに DID、所有者からエージェントへの権限付与、タスク委任状を提供します。 AWAS ウェブサイト認証を支えるアイデンティティレイヤーです。
プロトコル: TamTunnel/sovereign-identity — このウォレットが実装する DID、エージェンシー権限付与、タスク委任状、AWAS ウェブサイトとの紐付けです。
バージョン: 0.1.0 · ライセンス: Apache-2.0
ツール
| ツール | 機能 |
|---|---|
wallet_onboard | 所有者/エージェントのアイデンティティを作成します(すでに存在する場合はそれを返します) |
wallet_did | ロールの DID を取得します |
issue_grant | 所有者がエージェントの DID にスコープと USD 上限額を委任します |
mint_mandate | エージェントがウェブサイトのオーディエンス向けにタスク委任状を発行します(Authorization: Mandate … の値を返します)。subjectDid を渡すと、スコープ/金額を絞って下流のエージェントに委任できます |
verify_mandate | ウェブサイト側で検証します:署名、有効期限、オーディエンス、リプレイ、権限付与との紐付け、スコープ/金額の制約 |
verify_chain | 複数ホップの委任チェーン(所有者 → … → エージェント)をウェブサイト側で検証します:各ホップの署名、紐付け、権限の縮小、リプレイ |
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 など)で公開し、その URL を Authorization: Bearer <token> とともに Muse のカスタムコネクターとして追加します。
サーバーはデフォルトで 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 をご覧ください。
委任のデモ:Owner → Muse → Hermes
examples/delegation-chain/ は、ペア固有のコネクターを使わずに、エージェントやフレームワークをまたいで委任状を連結できることを示す実行可能な証明です。所有者が Muse に広範な権限を付与し、Muse が権限範囲を絞った委任状を Hermes に渡します。Hermes は末端の委任状をウェブサイトに提示し、ウェブサイトは権限が段階的に縮小されたチェーン全体を検証します。4 つの攻撃(スコープの拡大、金額の拡大、改ざん、リプレイ)が試行され、拒否されます。
node examples/delegation-chain/run.mjs
誰がホストするのですか?
各ユーザーが自分のウォレットをホストします。 それがこの仕組みの要点です。ウォレットには秘密鍵が保存されるため、共有ホストインスタンスはありません。それではカストディアルになり、「ソブリンアイデンティティ」の「ソブリン」と矛盾するためです。
- 自分で使う場合: 自分が管理するハードウェア(自分の Mac、自分が所有する VPS)で実行します。コマンドを 1 つ実行するだけで、鍵がマシンの外に出ることはありません。
- ほかのユーザーの場合: 同様に、各自が自分のインスタンスを実行し、エージェントから接続します。これは、Hermes/OpenClaw がすでに採用している方式(セルフホスト可能)と同じです。
- ステートレス検証(リプレイ台帳を使わない
verify_mandate)だけは共有できる可能性がありますが、それもローカルで行うほうが安全です。
サーバーに接続できる人は、署名を要求できます。ベアラートークンはパスワードと同様に扱い、TLS なしで HTTP ポートを公開しないでください。
セキュリティに関する注意
- HTTP モードは
SI_MCP_TOKENがないと起動しません。すべてのリクエストにAuthorization: Bearer <token>が必要です(それ以外は 401)。 - サーバーはパスフレーズ、鍵、トークンをログに記録しません。
- テスト用パスフレーズで作成したデモ用アイデンティティは、実際の利用前に置き換える必要があります。実際の所有者のオンボーディングはご自身で行ってください。
- このツールは、独立した暗号学的監査を受けていません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。