@agenticvault/agentic-vault 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +19 -0
- package/.env.example +16 -0
- package/.mcp.json.example +18 -0
- package/LICENSE +21 -0
- package/README.ja.md +163 -0
- package/README.ko.md +163 -0
- package/README.md +161 -0
- package/README.zh-CN.md +163 -0
- package/README.zh-TW.md +163 -0
- package/dist/agentic/audit/logger.d.ts +7 -0
- package/dist/agentic/audit/logger.js +19 -0
- package/dist/agentic/audit/logger.js.map +1 -0
- package/dist/agentic/audit/types.d.ts +11 -0
- package/dist/agentic/audit/types.js +2 -0
- package/dist/agentic/audit/types.js.map +1 -0
- package/dist/agentic/cli.d.ts +8 -0
- package/dist/agentic/cli.js +87 -0
- package/dist/agentic/cli.js.map +1 -0
- package/dist/agentic/index.d.ts +5 -0
- package/dist/agentic/index.js +7 -0
- package/dist/agentic/index.js.map +1 -0
- package/dist/agentic/mcp/server.d.ts +8 -0
- package/dist/agentic/mcp/server.js +25 -0
- package/dist/agentic/mcp/server.js.map +1 -0
- package/dist/agentic/mcp/tools/decoded-call-pipeline.d.ts +14 -0
- package/dist/agentic/mcp/tools/decoded-call-pipeline.js +18 -0
- package/dist/agentic/mcp/tools/decoded-call-pipeline.js.map +1 -0
- package/dist/agentic/mcp/tools/get-address.d.ts +3 -0
- package/dist/agentic/mcp/tools/get-address.js +25 -0
- package/dist/agentic/mcp/tools/get-address.js.map +1 -0
- package/dist/agentic/mcp/tools/health-check.d.ts +3 -0
- package/dist/agentic/mcp/tools/health-check.js +25 -0
- package/dist/agentic/mcp/tools/health-check.js.map +1 -0
- package/dist/agentic/mcp/tools/index.d.ts +7 -0
- package/dist/agentic/mcp/tools/index.js +21 -0
- package/dist/agentic/mcp/tools/index.js.map +1 -0
- package/dist/agentic/mcp/tools/result-adapter.d.ts +10 -0
- package/dist/agentic/mcp/tools/result-adapter.js +15 -0
- package/dist/agentic/mcp/tools/result-adapter.js.map +1 -0
- package/dist/agentic/mcp/tools/shared.d.ts +71 -0
- package/dist/agentic/mcp/tools/shared.js +12 -0
- package/dist/agentic/mcp/tools/shared.js.map +1 -0
- package/dist/agentic/mcp/tools/sign-defi-call.d.ts +3 -0
- package/dist/agentic/mcp/tools/sign-defi-call.js +23 -0
- package/dist/agentic/mcp/tools/sign-defi-call.js.map +1 -0
- package/dist/agentic/mcp/tools/sign-permit.d.ts +3 -0
- package/dist/agentic/mcp/tools/sign-permit.js +39 -0
- package/dist/agentic/mcp/tools/sign-permit.js.map +1 -0
- package/dist/agentic/mcp/tools/sign-swap.d.ts +3 -0
- package/dist/agentic/mcp/tools/sign-swap.js +23 -0
- package/dist/agentic/mcp/tools/sign-swap.js.map +1 -0
- package/dist/agentic/mcp/tools/sign-transaction.d.ts +3 -0
- package/dist/agentic/mcp/tools/sign-transaction.js +68 -0
- package/dist/agentic/mcp/tools/sign-transaction.js.map +1 -0
- package/dist/agentic/mcp/tools/sign-typed-data.d.ts +3 -0
- package/dist/agentic/mcp/tools/sign-typed-data.js +50 -0
- package/dist/agentic/mcp/tools/sign-typed-data.js.map +1 -0
- package/dist/agentic/policy/engine.d.ts +2 -0
- package/dist/agentic/policy/engine.js +3 -0
- package/dist/agentic/policy/engine.js.map +1 -0
- package/dist/agentic/policy/types.d.ts +2 -0
- package/dist/agentic/policy/types.js +2 -0
- package/dist/agentic/policy/types.js.map +1 -0
- package/dist/cli/commands/decode.d.ts +1 -0
- package/dist/cli/commands/decode.js +51 -0
- package/dist/cli/commands/decode.js.map +1 -0
- package/dist/cli/commands/dry-run.d.ts +2 -0
- package/dist/cli/commands/dry-run.js +56 -0
- package/dist/cli/commands/dry-run.js.map +1 -0
- package/dist/cli/commands/encode.d.ts +1 -0
- package/dist/cli/commands/encode.js +77 -0
- package/dist/cli/commands/encode.js.map +1 -0
- package/dist/cli/commands/get-address.d.ts +3 -0
- package/dist/cli/commands/get-address.js +26 -0
- package/dist/cli/commands/get-address.js.map +1 -0
- package/dist/cli/commands/health.d.ts +3 -0
- package/dist/cli/commands/health.js +26 -0
- package/dist/cli/commands/health.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +6 -0
- package/dist/cli/commands/mcp.js +40 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/sign-permit.d.ts +2 -0
- package/dist/cli/commands/sign-permit.js +110 -0
- package/dist/cli/commands/sign-permit.js.map +1 -0
- package/dist/cli/commands/sign.d.ts +2 -0
- package/dist/cli/commands/sign.js +82 -0
- package/dist/cli/commands/sign.js.map +1 -0
- package/dist/cli/context.d.ts +10 -0
- package/dist/cli/context.js +84 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/formatters.d.ts +18 -0
- package/dist/cli/formatters.js +74 -0
- package/dist/cli/formatters.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +108 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/evm-signer-adapter.d.ts +42 -0
- package/dist/core/evm-signer-adapter.js +92 -0
- package/dist/core/evm-signer-adapter.js.map +1 -0
- package/dist/core/signing-provider.d.ts +14 -0
- package/dist/core/signing-provider.js +2 -0
- package/dist/core/signing-provider.js.map +1 -0
- package/dist/crypto/evm-signer.util.d.ts +43 -0
- package/dist/crypto/evm-signer.util.js +151 -0
- package/dist/crypto/evm-signer.util.js.map +1 -0
- package/dist/evm-signer.util.d.ts +1 -0
- package/dist/evm-signer.util.js +4 -0
- package/dist/evm-signer.util.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/kms-client.d.ts +1 -0
- package/dist/kms-client.js +4 -0
- package/dist/kms-client.js.map +1 -0
- package/dist/kms-signer.d.ts +1 -0
- package/dist/kms-signer.js +4 -0
- package/dist/kms-signer.js.map +1 -0
- package/dist/protocols/catalog.d.ts +310 -0
- package/dist/protocols/catalog.js +162 -0
- package/dist/protocols/catalog.js.map +1 -0
- package/dist/protocols/decoders/aave-v3.d.ts +2 -0
- package/dist/protocols/decoders/aave-v3.js +105 -0
- package/dist/protocols/decoders/aave-v3.js.map +1 -0
- package/dist/protocols/decoders/erc20.d.ts +2 -0
- package/dist/protocols/decoders/erc20.js +51 -0
- package/dist/protocols/decoders/erc20.js.map +1 -0
- package/dist/protocols/decoders/uniswap-v3.d.ts +2 -0
- package/dist/protocols/decoders/uniswap-v3.js +57 -0
- package/dist/protocols/decoders/uniswap-v3.js.map +1 -0
- package/dist/protocols/dispatcher.d.ts +8 -0
- package/dist/protocols/dispatcher.js +32 -0
- package/dist/protocols/dispatcher.js.map +1 -0
- package/dist/protocols/index.d.ts +16 -0
- package/dist/protocols/index.js +19 -0
- package/dist/protocols/index.js.map +1 -0
- package/dist/protocols/policy/engine.d.ts +11 -0
- package/dist/protocols/policy/engine.js +67 -0
- package/dist/protocols/policy/engine.js.map +1 -0
- package/dist/protocols/policy/evaluators/aave-v3.d.ts +2 -0
- package/dist/protocols/policy/evaluators/aave-v3.js +118 -0
- package/dist/protocols/policy/evaluators/aave-v3.js.map +1 -0
- package/dist/protocols/policy/evaluators/erc20.d.ts +2 -0
- package/dist/protocols/policy/evaluators/erc20.js +55 -0
- package/dist/protocols/policy/evaluators/erc20.js.map +1 -0
- package/dist/protocols/policy/evaluators/uniswap-v3.d.ts +2 -0
- package/dist/protocols/policy/evaluators/uniswap-v3.js +46 -0
- package/dist/protocols/policy/evaluators/uniswap-v3.js.map +1 -0
- package/dist/protocols/policy/loader.d.ts +11 -0
- package/dist/protocols/policy/loader.js +70 -0
- package/dist/protocols/policy/loader.js.map +1 -0
- package/dist/protocols/policy/types.d.ts +38 -0
- package/dist/protocols/policy/types.js +2 -0
- package/dist/protocols/policy/types.js.map +1 -0
- package/dist/protocols/registry.d.ts +21 -0
- package/dist/protocols/registry.js +52 -0
- package/dist/protocols/registry.js.map +1 -0
- package/dist/protocols/types.d.ts +90 -0
- package/dist/protocols/types.js +2 -0
- package/dist/protocols/types.js.map +1 -0
- package/dist/protocols/workflows/get-address.d.ts +2 -0
- package/dist/protocols/workflows/get-address.js +41 -0
- package/dist/protocols/workflows/get-address.js.map +1 -0
- package/dist/protocols/workflows/health-check.d.ts +2 -0
- package/dist/protocols/workflows/health-check.js +41 -0
- package/dist/protocols/workflows/health-check.js.map +1 -0
- package/dist/protocols/workflows/index.d.ts +5 -0
- package/dist/protocols/workflows/index.js +5 -0
- package/dist/protocols/workflows/index.js.map +1 -0
- package/dist/protocols/workflows/sign-defi-call.d.ts +14 -0
- package/dist/protocols/workflows/sign-defi-call.js +157 -0
- package/dist/protocols/workflows/sign-defi-call.js.map +1 -0
- package/dist/protocols/workflows/sign-permit.d.ts +21 -0
- package/dist/protocols/workflows/sign-permit.js +320 -0
- package/dist/protocols/workflows/sign-permit.js.map +1 -0
- package/dist/protocols/workflows/types.d.ts +79 -0
- package/dist/protocols/workflows/types.js +2 -0
- package/dist/protocols/workflows/types.js.map +1 -0
- package/dist/provider/factory.d.ts +12 -0
- package/dist/provider/factory.js +19 -0
- package/dist/provider/factory.js.map +1 -0
- package/dist/providers/aws-kms/aws-kms-client.d.ts +19 -0
- package/dist/providers/aws-kms/aws-kms-client.js +47 -0
- package/dist/providers/aws-kms/aws-kms-client.js.map +1 -0
- package/dist/providers/aws-kms/aws-kms-provider.d.ts +17 -0
- package/dist/providers/aws-kms/aws-kms-provider.js +40 -0
- package/dist/providers/aws-kms/aws-kms-provider.js.map +1 -0
- package/dist/providers/aws-kms/index.d.ts +3 -0
- package/dist/providers/aws-kms/index.js +4 -0
- package/dist/providers/aws-kms/index.js.map +1 -0
- package/dist/providers/aws-kms/kms-signer-adapter.d.ts +41 -0
- package/dist/providers/aws-kms/kms-signer-adapter.js +101 -0
- package/dist/providers/aws-kms/kms-signer-adapter.js.map +1 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +109 -0
- package/policy.example.json +43 -0
- package/skills/audit-log/SKILL.md +32 -0
- package/skills/check-wallet/SKILL.md +23 -0
- package/skills/sign-permit/SKILL.md +29 -0
- package/skills/sign-swap/SKILL.md +29 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agentic-vault",
|
|
3
|
+
"displayName": "Agentic Vault",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Server-side EVM signing with policy-constrained MCP tools for Claude Code",
|
|
6
|
+
"publisher": "agenticvault",
|
|
7
|
+
"skills": [
|
|
8
|
+
"skills/sign-swap/SKILL.md",
|
|
9
|
+
"skills/sign-permit/SKILL.md",
|
|
10
|
+
"skills/check-wallet/SKILL.md",
|
|
11
|
+
"skills/audit-log/SKILL.md"
|
|
12
|
+
],
|
|
13
|
+
"mcpServers": {
|
|
14
|
+
"agentic-vault": {
|
|
15
|
+
"command": "node",
|
|
16
|
+
"args": ["dist/agentic/cli.js"]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
package/.env.example
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# AWS KMS Signer Configuration
|
|
2
|
+
# Used by agentic-vault CLI and MCP server as fallback when --key-id/--region flags are omitted.
|
|
3
|
+
VAULT_KEY_ID=alias/my-signing-key
|
|
4
|
+
VAULT_REGION=us-east-1
|
|
5
|
+
|
|
6
|
+
# AWS Credentials (choose one method)
|
|
7
|
+
# Method 1: AWS SSO / IAM role (recommended — no env vars needed)
|
|
8
|
+
# Method 2: Static credentials
|
|
9
|
+
# AWS_ACCESS_KEY_ID=AKIA...
|
|
10
|
+
# AWS_SECRET_ACCESS_KEY=...
|
|
11
|
+
# AWS_SESSION_TOKEN=...
|
|
12
|
+
# Method 3: Named profile
|
|
13
|
+
# AWS_PROFILE=my-profile
|
|
14
|
+
|
|
15
|
+
# Testnet RPC (for integration tests only)
|
|
16
|
+
# SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/YOUR_API_KEY
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"agentic-vault": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": [
|
|
6
|
+
"-y", "-p", "@agenticvault/agentic-vault",
|
|
7
|
+
"agentic-vault-mcp",
|
|
8
|
+
"--key-id", "YOUR_KMS_KEY_ID",
|
|
9
|
+
"--region", "us-east-1"
|
|
10
|
+
],
|
|
11
|
+
"env": {
|
|
12
|
+
"AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}",
|
|
13
|
+
"AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}",
|
|
14
|
+
"AWS_SESSION_TOKEN": "${AWS_SESSION_TOKEN}"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 agenticvault
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<!-- Source: README.md | Commit: 96a8dcc | Last synced: 2026-02-16 -->
|
|
2
|
+
|
|
3
|
+
# Agentic Vault
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@agenticvault/agentic-vault)
|
|
6
|
+
[](https://github.com/agenticvault/agentic-vault/actions/workflows/ci.yml)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
[English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md) | 日本語 | [한국어](README.ko.md)
|
|
10
|
+
|
|
11
|
+
AWS KMS によるサーバーサイド EVM 署名と、組み込みの DeFi プロトコル解析機能を提供します。MCP、CLI、または OpenClaw を通じてウォレットを AI エージェントに公開し、デフォルト拒否のポリシーエンジンと完全な監査ログを備えています。
|
|
12
|
+
|
|
13
|
+
## Agentic Vault を選ぶ理由
|
|
14
|
+
|
|
15
|
+
AI エージェントはブロックチェーントランザクションに署名する必要がありますが、秘密鍵を直接渡すのは危険です。Agentic Vault は鍵を AWS KMS(HSM)に保管し、エージェントが署名できる操作範囲を制限するポリシーエンジンを提供します。エージェントからは高レベルのツール(`sign_swap`、`sign_permit`)のみが見え、秘密鍵がハードウェアの外に出ることはありません。
|
|
16
|
+
|
|
17
|
+
## 特徴
|
|
18
|
+
|
|
19
|
+
- **HSM による安全な署名** -- 秘密鍵は AWS KMS の外に出ることはなく、署名にはダイジェストのみが送信されます
|
|
20
|
+
- **DeFi プロトコル対応** -- ERC-20、Uniswap V3、Aave V3 の calldata デコードとプロトコル固有のポリシールールに対応
|
|
21
|
+
- **デフォルト拒否ポリシーエンジン** -- チェーン ID、コントラクト、セレクター、金額、期限、およびプロトコルレベルの制約
|
|
22
|
+
- **複数のインターフェース** -- TypeScript ライブラリ、CLI、MCP サーバー、または OpenClaw プラグインとして使用可能
|
|
23
|
+
- **監査ログ** -- すべての署名操作(承認、拒否、エラー)の構造化 JSON 監査記録
|
|
24
|
+
- **EVM ネイティブ** -- [viem](https://viem.sh) をベースに構築、EIP-712 型付きデータを完全サポート
|
|
25
|
+
|
|
26
|
+
## クイックスタート
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @agenticvault/agentic-vault
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import { createSigningProvider, EvmSignerAdapter } from '@agenticvault/agentic-vault';
|
|
34
|
+
|
|
35
|
+
const provider = createSigningProvider({
|
|
36
|
+
provider: 'aws-kms',
|
|
37
|
+
keyId: 'arn:aws:kms:us-east-1:123456789:key/your-key-id',
|
|
38
|
+
region: 'us-east-1',
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const signer = new EvmSignerAdapter(provider);
|
|
42
|
+
const address = await signer.getAddress();
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
AWS 不要のクイックテストには `dry-run` モード(デコード + ポリシーチェックのみ、署名なし)をご利用ください:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx agentic-vault dry-run --chain-id 1 --to 0xa0b869... --data 0x095ea7b3...
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
鍵の作成と IAM ポリシーの設定については [AWS KMS セットアップガイド](docs/guides/aws-kms-setup.md)をご覧ください。
|
|
52
|
+
|
|
53
|
+
## インターフェース
|
|
54
|
+
|
|
55
|
+
| インターフェース | ユースケース | AWS 必須 |
|
|
56
|
+
|-----------------|-------------|:---:|
|
|
57
|
+
| TypeScript ライブラリ | アプリケーションに署名機能を組み込む | はい |
|
|
58
|
+
| CLI | コマンドライン署名 + ドライラン | 一部 |
|
|
59
|
+
| MCP サーバー | AI エージェント(Claude など)にウォレットを公開 | はい |
|
|
60
|
+
| OpenClaw プラグイン | OpenClaw エージェントツールとして使用 | はい |
|
|
61
|
+
|
|
62
|
+
使用例と設定については[インターフェースガイド](docs/guides/interfaces.md)をご覧ください。
|
|
63
|
+
|
|
64
|
+
## 対応プロトコル
|
|
65
|
+
|
|
66
|
+
| プロトコル | アクション | デコーダー | ポリシー評価器 |
|
|
67
|
+
|-----------|-----------|:---:|:---:|
|
|
68
|
+
| ERC-20 | `approve`、`transfer` | あり | あり(承認上限、spender ホワイトリスト) |
|
|
69
|
+
| Uniswap V3 | `exactInputSingle` | あり | あり(トークンペア、スリッページ、受取人) |
|
|
70
|
+
| Aave V3 | `supply`、`borrow`、`repay`、`withdraw` | あり | あり(アセットホワイトリスト、金利モード) |
|
|
71
|
+
|
|
72
|
+
不明な calldata は常に拒否されます(フェイルクローズ)。Dispatcher は 2 段階の解決を使用します:まずコントラクトアドレス、次にセレクターベースのフォールバック(例:ERC-20)。
|
|
73
|
+
|
|
74
|
+
## 設定
|
|
75
|
+
|
|
76
|
+
ポリシーエンジンは JSON 設定ファイルを使用します。ポリシーファイルが未提供の場合、ポリシーで管理されるすべての署名操作は拒否されます(デフォルト拒否)。
|
|
77
|
+
|
|
78
|
+
完全なスキーマと例については[ポリシーリファレンス](docs/reference/policy.md)をご覧いただくか、[`policy.example.json`](policy.example.json) から始めてください。
|
|
79
|
+
|
|
80
|
+
## セキュリティモデル
|
|
81
|
+
|
|
82
|
+
### 信頼境界
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
AI エージェント(Claude / MCP Client / OpenClaw)
|
|
86
|
+
|
|
|
87
|
+
| MCP Protocol / OpenClaw Plugin API
|
|
88
|
+
v
|
|
89
|
+
+------------------------------------+
|
|
90
|
+
| Agentic Vault |
|
|
91
|
+
| +-----------+ +--------+ +-----+ |
|
|
92
|
+
| | Protocol | | Policy | | Audit| |
|
|
93
|
+
| | Dispatcher| | Engine | | Sink | |
|
|
94
|
+
| +-----------+ +--------+ +-----+ |
|
|
95
|
+
| | |
|
|
96
|
+
| +--------------------+ |
|
|
97
|
+
| | EvmSignerAdapter | |
|
|
98
|
+
| +--------------------+ |
|
|
99
|
+
+-----------|------------------------+
|
|
100
|
+
| ダイジェストのみ
|
|
101
|
+
v
|
|
102
|
+
+------------------------------------+
|
|
103
|
+
| AWS KMS (HSM) |
|
|
104
|
+
| 秘密鍵は外部に出ません |
|
|
105
|
+
+------------------------------------+
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 基本原則
|
|
109
|
+
|
|
110
|
+
| 原則 | 説明 |
|
|
111
|
+
|------|------|
|
|
112
|
+
| 鍵の隔離 | 秘密鍵は HSM 内に保持され、署名には 32 バイトのダイジェストのみが送信されます |
|
|
113
|
+
| デフォルト拒否 | ポリシーエンジンは明示的に許可されていないすべてのリクエストを拒否します |
|
|
114
|
+
| フェイルクローズ | 不明な calldata は常に拒否されます。既知のプロトコルでも評価器がなければ拒否されます |
|
|
115
|
+
| 監査証跡 | すべての操作は構造化 JSON として stderr に記録され、呼び出し元タグが付与されます |
|
|
116
|
+
| 最小限の攻撃面 | 生の署名ツール(`sign_transaction`、`sign_typed_data`)はデフォルトで無効です |
|
|
117
|
+
|
|
118
|
+
## Claude Code プラグイン
|
|
119
|
+
|
|
120
|
+
4 つのスキルが MCP ツールを通じてウォレットと連携します。鍵に直接アクセスすることはありません。
|
|
121
|
+
|
|
122
|
+
| スキル | 説明 |
|
|
123
|
+
|--------|------|
|
|
124
|
+
| `sign-swap` | スワップ署名操作のオーケストレーション |
|
|
125
|
+
| `sign-permit` | EIP-2612 permit 署名のオーケストレーション |
|
|
126
|
+
| `check-wallet` | ウォレットアドレスとヘルスステータスの確認 |
|
|
127
|
+
| `audit-log` | 監査ログのクエリ |
|
|
128
|
+
|
|
129
|
+
## パッケージエクスポート
|
|
130
|
+
|
|
131
|
+
| サブパス | 内容 | MCP 依存 |
|
|
132
|
+
|---------|------|:-:|
|
|
133
|
+
| `@agenticvault/agentic-vault` | コア署名(SigningProvider、EvmSignerAdapter、factory) | なし |
|
|
134
|
+
| `@agenticvault/agentic-vault/protocols` | プロトコルデコーダー、dispatcher、PolicyEngine V2、workflows | なし |
|
|
135
|
+
| `@agenticvault/agentic-vault/agentic` | MCP サーバー、監査ログ記録 | あり |
|
|
136
|
+
|
|
137
|
+
## ドキュメント
|
|
138
|
+
|
|
139
|
+
| ドキュメント | 説明 |
|
|
140
|
+
|-------------|------|
|
|
141
|
+
| [インターフェースガイド](docs/guides/interfaces.md) | TypeScript、CLI、MCP、OpenClaw の使い方 |
|
|
142
|
+
| [ポリシーリファレンス](docs/reference/policy.md) | ポリシー JSON スキーマ、フィールド、例 |
|
|
143
|
+
| [AWS KMS セットアップ](docs/guides/aws-kms-setup.md) | 鍵の作成、IAM ポリシー、認証方法 |
|
|
144
|
+
| [OpenClaw プラグイン](packages/openclaw-plugin/) | OpenClaw プラグインパッケージと設定 |
|
|
145
|
+
| [アーキテクチャ決定](docs/project/adrs/ADR-001-architecture-decisions.md) | 主要な設計決定の ADR |
|
|
146
|
+
| [コントリビュートガイド](CONTRIBUTING.md) | 開発ワークフローとガイドライン |
|
|
147
|
+
|
|
148
|
+
## ロードマップ
|
|
149
|
+
|
|
150
|
+
- 追加の署名プロバイダー(GCP KMS、HashiCorp Vault)
|
|
151
|
+
- 追加のプロトコルデコーダー(Curve、Compound V3)
|
|
152
|
+
- マルチシグネチャ対応
|
|
153
|
+
- リモート MCP サーバーモード(HTTP トランスポート + OAuth 2.1)
|
|
154
|
+
|
|
155
|
+
## コントリビュート
|
|
156
|
+
|
|
157
|
+
開発ワークフロー、ブランチ命名規則、コミット規約については [CONTRIBUTING.md](CONTRIBUTING.md) をご覧ください。
|
|
158
|
+
|
|
159
|
+
本プロジェクトは [Contributor Covenant 行動規範](CODE_OF_CONDUCT.md) に従います。
|
|
160
|
+
|
|
161
|
+
## ライセンス
|
|
162
|
+
|
|
163
|
+
[MIT](LICENSE)
|
package/README.ko.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<!-- Source: README.md | Commit: 96a8dcc | Last synced: 2026-02-16 -->
|
|
2
|
+
|
|
3
|
+
# Agentic Vault
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@agenticvault/agentic-vault)
|
|
6
|
+
[](https://github.com/agenticvault/agentic-vault/actions/workflows/ci.yml)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
[English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | 한국어
|
|
10
|
+
|
|
11
|
+
AWS KMS를 활용한 서버 측 EVM 서명과 내장된 DeFi 프로토콜 인식 기능을 제공합니다. MCP, CLI 또는 OpenClaw를 통해 지갑을 AI 에이전트에 노출하며, 기본 거부 정책 엔진과 완전한 감사 로깅을 갖추고 있습니다.
|
|
12
|
+
|
|
13
|
+
## Agentic Vault를 선택하는 이유
|
|
14
|
+
|
|
15
|
+
AI 에이전트는 블록체인 트랜잭션에 서명해야 하지만, 개인키를 직접 제공하는 것은 위험합니다. Agentic Vault는 키를 AWS KMS(HSM)에 보관하고, 에이전트가 서명할 수 있는 작업 범위를 제한하는 정책 엔진을 제공합니다. 에이전트는 고수준 도구(`sign_swap`, `sign_permit`)만 볼 수 있으며, 개인키는 절대 하드웨어 밖으로 나가지 않습니다.
|
|
16
|
+
|
|
17
|
+
## 주요 기능
|
|
18
|
+
|
|
19
|
+
- **HSM 기반 안전한 서명** -- 개인키는 AWS KMS를 벗어나지 않으며, 서명에는 다이제스트만 전송됩니다
|
|
20
|
+
- **DeFi 프로토콜 인식** -- ERC-20, Uniswap V3, Aave V3의 calldata 디코딩 및 프로토콜별 정책 규칙 지원
|
|
21
|
+
- **기본 거부 정책 엔진** -- 체인 ID, 컨트랙트, 셀렉터, 금액, 기한 및 프로토콜 수준 제약
|
|
22
|
+
- **다양한 인터페이스** -- TypeScript 라이브러리, CLI, MCP 서버 또는 OpenClaw 플러그인으로 사용 가능
|
|
23
|
+
- **감사 로그** -- 모든 서명 작업(승인, 거부, 오류)에 대한 구조화된 JSON 감사 기록
|
|
24
|
+
- **EVM 네이티브** -- [viem](https://viem.sh) 기반으로 구축, EIP-712 타입 데이터 완전 지원
|
|
25
|
+
|
|
26
|
+
## 빠른 시작
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @agenticvault/agentic-vault
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import { createSigningProvider, EvmSignerAdapter } from '@agenticvault/agentic-vault';
|
|
34
|
+
|
|
35
|
+
const provider = createSigningProvider({
|
|
36
|
+
provider: 'aws-kms',
|
|
37
|
+
keyId: 'arn:aws:kms:us-east-1:123456789:key/your-key-id',
|
|
38
|
+
region: 'us-east-1',
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const signer = new EvmSignerAdapter(provider);
|
|
42
|
+
const address = await signer.getAddress();
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
AWS 없이 빠른 테스트를 하려면 `dry-run` 모드(디코딩 + 정책 검사만, 서명 없음)를 사용하세요:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx agentic-vault dry-run --chain-id 1 --to 0xa0b869... --data 0x095ea7b3...
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
키 생성 및 IAM 정책 설정은 [AWS KMS 설정 가이드](docs/guides/aws-kms-setup.md)를 참조하세요.
|
|
52
|
+
|
|
53
|
+
## 인터페이스
|
|
54
|
+
|
|
55
|
+
| 인터페이스 | 사용 사례 | AWS 필수 |
|
|
56
|
+
|-----------|----------|:---:|
|
|
57
|
+
| TypeScript 라이브러리 | 애플리케이션에 서명 기능 내장 | 예 |
|
|
58
|
+
| CLI | 커맨드라인 서명 + 드라이런 | 부분 |
|
|
59
|
+
| MCP 서버 | AI 에이전트(Claude 등)에 지갑 노출 | 예 |
|
|
60
|
+
| OpenClaw 플러그인 | OpenClaw 에이전트 도구로 사용 | 예 |
|
|
61
|
+
|
|
62
|
+
사용 예제 및 설정은 [인터페이스 가이드](docs/guides/interfaces.md)를 참조하세요.
|
|
63
|
+
|
|
64
|
+
## 지원 프로토콜
|
|
65
|
+
|
|
66
|
+
| 프로토콜 | 작업 | 디코더 | 정책 평가기 |
|
|
67
|
+
|---------|------|:---:|:---:|
|
|
68
|
+
| ERC-20 | `approve`, `transfer` | 있음 | 있음 (승인 한도, spender 화이트리스트) |
|
|
69
|
+
| Uniswap V3 | `exactInputSingle` | 있음 | 있음 (토큰 페어, 슬리피지, 수신자) |
|
|
70
|
+
| Aave V3 | `supply`, `borrow`, `repay`, `withdraw` | 있음 | 있음 (자산 화이트리스트, 금리 모드) |
|
|
71
|
+
|
|
72
|
+
알 수 없는 calldata는 항상 거부됩니다(페일 클로즈). Dispatcher는 2단계 해석을 사용합니다: 먼저 컨트랙트 주소, 그다음 셀렉터 기반 폴백(예: ERC-20).
|
|
73
|
+
|
|
74
|
+
## 설정
|
|
75
|
+
|
|
76
|
+
정책 엔진은 JSON 설정 파일을 사용합니다. 정책 파일이 제공되지 않으면 정책으로 관리되는 모든 서명 작업이 거부됩니다(기본 거부).
|
|
77
|
+
|
|
78
|
+
전체 스키마와 예제는 [정책 레퍼런스](docs/reference/policy.md)를 참조하거나, [`policy.example.json`](policy.example.json)에서 시작하세요.
|
|
79
|
+
|
|
80
|
+
## 보안 모델
|
|
81
|
+
|
|
82
|
+
### 신뢰 경계
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
AI 에이전트 (Claude / MCP Client / OpenClaw)
|
|
86
|
+
|
|
|
87
|
+
| MCP Protocol / OpenClaw Plugin API
|
|
88
|
+
v
|
|
89
|
+
+------------------------------------+
|
|
90
|
+
| Agentic Vault |
|
|
91
|
+
| +-----------+ +--------+ +-----+ |
|
|
92
|
+
| | Protocol | | Policy | | Audit| |
|
|
93
|
+
| | Dispatcher| | Engine | | Sink | |
|
|
94
|
+
| +-----------+ +--------+ +-----+ |
|
|
95
|
+
| | |
|
|
96
|
+
| +--------------------+ |
|
|
97
|
+
| | EvmSignerAdapter | |
|
|
98
|
+
| +--------------------+ |
|
|
99
|
+
+-----------|------------------------+
|
|
100
|
+
| 다이제스트만 전송
|
|
101
|
+
v
|
|
102
|
+
+------------------------------------+
|
|
103
|
+
| AWS KMS (HSM) |
|
|
104
|
+
| 개인키는 외부로 유출되지 않음 |
|
|
105
|
+
+------------------------------------+
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 핵심 원칙
|
|
109
|
+
|
|
110
|
+
| 원칙 | 설명 |
|
|
111
|
+
|------|------|
|
|
112
|
+
| 키 격리 | 개인키는 HSM 내에 보관되며, 서명에는 32바이트 다이제스트만 전송됩니다 |
|
|
113
|
+
| 기본 거부 | 정책 엔진은 명시적으로 허용되지 않은 모든 요청을 거부합니다 |
|
|
114
|
+
| 페일 클로즈 | 알 수 없는 calldata는 항상 거부됩니다. 알려진 프로토콜이라도 평가기가 없으면 거부됩니다 |
|
|
115
|
+
| 감사 추적 | 모든 작업은 구조화된 JSON으로 stderr에 기록되며, 호출자 태그가 포함됩니다 |
|
|
116
|
+
| 최소 공격면 | 원시 서명 도구(`sign_transaction`, `sign_typed_data`)는 기본적으로 비활성화됩니다 |
|
|
117
|
+
|
|
118
|
+
## Claude Code 플러그인
|
|
119
|
+
|
|
120
|
+
4개의 스킬이 MCP 도구를 통해 지갑과 상호작용합니다. 키에 직접 접근하지 않습니다.
|
|
121
|
+
|
|
122
|
+
| 스킬 | 설명 |
|
|
123
|
+
|------|------|
|
|
124
|
+
| `sign-swap` | 스왑 서명 작업 오케스트레이션 |
|
|
125
|
+
| `sign-permit` | EIP-2612 permit 서명 오케스트레이션 |
|
|
126
|
+
| `check-wallet` | 지갑 주소 및 상태 확인 |
|
|
127
|
+
| `audit-log` | 감사 로그 조회 |
|
|
128
|
+
|
|
129
|
+
## 패키지 내보내기
|
|
130
|
+
|
|
131
|
+
| 서브경로 | 내용 | MCP 의존성 |
|
|
132
|
+
|---------|------|:-:|
|
|
133
|
+
| `@agenticvault/agentic-vault` | 코어 서명 (SigningProvider, EvmSignerAdapter, factory) | 없음 |
|
|
134
|
+
| `@agenticvault/agentic-vault/protocols` | 프로토콜 디코더, dispatcher, PolicyEngine V2, workflows | 없음 |
|
|
135
|
+
| `@agenticvault/agentic-vault/agentic` | MCP 서버, 감사 로그 기록 | 있음 |
|
|
136
|
+
|
|
137
|
+
## 문서
|
|
138
|
+
|
|
139
|
+
| 문서 | 설명 |
|
|
140
|
+
|------|------|
|
|
141
|
+
| [인터페이스 가이드](docs/guides/interfaces.md) | TypeScript, CLI, MCP, OpenClaw 사용법 |
|
|
142
|
+
| [정책 레퍼런스](docs/reference/policy.md) | 정책 JSON 스키마, 필드, 예제 |
|
|
143
|
+
| [AWS KMS 설정](docs/guides/aws-kms-setup.md) | 키 생성, IAM 정책, 인증 방법 |
|
|
144
|
+
| [OpenClaw 플러그인](packages/openclaw-plugin/) | OpenClaw 플러그인 패키지 및 설정 |
|
|
145
|
+
| [아키텍처 결정](docs/project/adrs/ADR-001-architecture-decisions.md) | 주요 설계 결정 ADR |
|
|
146
|
+
| [기여 가이드](CONTRIBUTING.md) | 개발 워크플로 및 가이드라인 |
|
|
147
|
+
|
|
148
|
+
## 로드맵
|
|
149
|
+
|
|
150
|
+
- 추가 서명 프로바이더 (GCP KMS, HashiCorp Vault)
|
|
151
|
+
- 추가 프로토콜 디코더 (Curve, Compound V3)
|
|
152
|
+
- 멀티시그 지원
|
|
153
|
+
- 원격 MCP 서버 모드 (HTTP 전송 + OAuth 2.1)
|
|
154
|
+
|
|
155
|
+
## 기여하기
|
|
156
|
+
|
|
157
|
+
개발 워크플로, 브랜치 명명 규칙, 커밋 규약은 [CONTRIBUTING.md](CONTRIBUTING.md)를 참조하세요.
|
|
158
|
+
|
|
159
|
+
본 프로젝트는 [Contributor Covenant 행동 강령](CODE_OF_CONDUCT.md)을 따릅니다.
|
|
160
|
+
|
|
161
|
+
## 라이선스
|
|
162
|
+
|
|
163
|
+
[MIT](LICENSE)
|
package/README.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Agentic Vault
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@agenticvault/agentic-vault)
|
|
4
|
+
[](https://github.com/agenticvault/agentic-vault/actions/workflows/ci.yml)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
English | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md)
|
|
8
|
+
|
|
9
|
+
Server-side EVM signing with AWS KMS and built-in DeFi protocol awareness. Expose your wallet to AI agents via MCP, CLI, or OpenClaw with deny-by-default policy enforcement and full audit logging.
|
|
10
|
+
|
|
11
|
+
## Why Agentic Vault
|
|
12
|
+
|
|
13
|
+
AI agents need to sign blockchain transactions, but giving them private keys is dangerous. Agentic Vault solves this by keeping keys in AWS KMS (HSM) and providing a policy engine that constrains what agents can sign. The agent sees high-level tools (`sign_swap`, `sign_permit`); the private key never leaves the hardware.
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- **HSM-backed signing** -- private keys never leave AWS KMS; only digests are sent for signing
|
|
18
|
+
- **DeFi protocol awareness** -- calldata decoding for ERC-20, Uniswap V3, and Aave V3 with protocol-specific policy rules
|
|
19
|
+
- **Deny-by-default policy engine** -- chain, contract, selector, amount, deadline, and protocol-level constraints
|
|
20
|
+
- **Multiple interfaces** -- use as a TypeScript library, CLI, MCP server, or OpenClaw plugin
|
|
21
|
+
- **Audit logging** -- structured JSON audit trail for every signing operation (approved, denied, errored)
|
|
22
|
+
- **EVM-native** -- built on [viem](https://viem.sh) with full EIP-712 typed data support
|
|
23
|
+
|
|
24
|
+
## Quick Start
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install @agenticvault/agentic-vault
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { createSigningProvider, EvmSignerAdapter } from '@agenticvault/agentic-vault';
|
|
32
|
+
|
|
33
|
+
const provider = createSigningProvider({
|
|
34
|
+
provider: 'aws-kms',
|
|
35
|
+
keyId: 'arn:aws:kms:us-east-1:123456789:key/your-key-id',
|
|
36
|
+
region: 'us-east-1',
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const signer = new EvmSignerAdapter(provider);
|
|
40
|
+
const address = await signer.getAddress();
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
For a no-AWS quick test, use `dry-run` mode (decode + policy check without signing):
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx agentic-vault dry-run --chain-id 1 --to 0xa0b869... --data 0x095ea7b3...
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
See [AWS KMS Setup](docs/guides/aws-kms-setup.md) for key creation and IAM policy.
|
|
50
|
+
|
|
51
|
+
## Interfaces
|
|
52
|
+
|
|
53
|
+
| Interface | Use Case | AWS Required |
|
|
54
|
+
|-----------|----------|:---:|
|
|
55
|
+
| TypeScript Library | Embed signing in your app | Yes |
|
|
56
|
+
| CLI | Command-line signing + dry-run | Partial |
|
|
57
|
+
| MCP Server | Expose wallet to AI agents (Claude, etc.) | Yes |
|
|
58
|
+
| OpenClaw Plugin | Use as OpenClaw agent tool | Yes |
|
|
59
|
+
|
|
60
|
+
See [Interfaces Guide](docs/guides/interfaces.md) for usage examples and configuration.
|
|
61
|
+
|
|
62
|
+
## Supported Protocols
|
|
63
|
+
|
|
64
|
+
| Protocol | Actions | Decoder | Policy Evaluator |
|
|
65
|
+
|----------|---------|:---:|:---:|
|
|
66
|
+
| ERC-20 | `approve`, `transfer` | Yes | Yes (allowance cap, spender allowlist) |
|
|
67
|
+
| Uniswap V3 | `exactInputSingle` | Yes | Yes (token pair, slippage, recipient) |
|
|
68
|
+
| Aave V3 | `supply`, `borrow`, `repay`, `withdraw` | Yes | Yes (asset allowlist, interest rate mode) |
|
|
69
|
+
|
|
70
|
+
Unknown calldata is always rejected (fail-closed). The dispatcher uses 2-stage resolution: contract address first, then selector-based fallback (e.g., ERC-20).
|
|
71
|
+
|
|
72
|
+
## Configuration
|
|
73
|
+
|
|
74
|
+
The policy engine uses a JSON configuration file. Without a policy file, all policy-guarded signing operations are denied (deny-by-default).
|
|
75
|
+
|
|
76
|
+
See [Policy Reference](docs/reference/policy.md) for the full schema and examples, or start with [`policy.example.json`](policy.example.json).
|
|
77
|
+
|
|
78
|
+
## Security Model
|
|
79
|
+
|
|
80
|
+
### Trust Boundary
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
AI Agent (Claude / MCP Client / OpenClaw)
|
|
84
|
+
|
|
|
85
|
+
| MCP Protocol / OpenClaw Plugin API
|
|
86
|
+
v
|
|
87
|
+
+------------------------------------+
|
|
88
|
+
| Agentic Vault |
|
|
89
|
+
| +-----------+ +--------+ +-----+ |
|
|
90
|
+
| | Protocol | | Policy | | Audit| |
|
|
91
|
+
| | Dispatcher| | Engine | | Sink | |
|
|
92
|
+
| +-----------+ +--------+ +-----+ |
|
|
93
|
+
| | |
|
|
94
|
+
| +--------------------+ |
|
|
95
|
+
| | EvmSignerAdapter | |
|
|
96
|
+
| +--------------------+ |
|
|
97
|
+
+-----------|------------------------+
|
|
98
|
+
| digest only
|
|
99
|
+
v
|
|
100
|
+
+------------------------------------+
|
|
101
|
+
| AWS KMS (HSM) |
|
|
102
|
+
| Private key never leaves |
|
|
103
|
+
+------------------------------------+
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Key Principles
|
|
107
|
+
|
|
108
|
+
| Principle | Description |
|
|
109
|
+
|-----------|-------------|
|
|
110
|
+
| Key isolation | Private keys remain in the HSM; only 32-byte digests are sent for signing |
|
|
111
|
+
| Deny by default | Policy engine rejects all requests unless explicitly allowed |
|
|
112
|
+
| Fail-closed | Unknown calldata is always rejected; known protocol without evaluator is rejected |
|
|
113
|
+
| Audit trail | Every operation is logged as structured JSON to stderr with caller tag |
|
|
114
|
+
| Minimal surface | Raw signing tools (`sign_transaction`, `sign_typed_data`) are disabled by default |
|
|
115
|
+
|
|
116
|
+
## Claude Code Plugin
|
|
117
|
+
|
|
118
|
+
4 skills interact with the wallet through MCP tools only -- they never access keys directly.
|
|
119
|
+
|
|
120
|
+
| Skill | Description |
|
|
121
|
+
|-------|-------------|
|
|
122
|
+
| `sign-swap` | Orchestrate a swap signing operation |
|
|
123
|
+
| `sign-permit` | Orchestrate an EIP-2612 permit signing |
|
|
124
|
+
| `check-wallet` | Check wallet address and health status |
|
|
125
|
+
| `audit-log` | Query the audit log |
|
|
126
|
+
|
|
127
|
+
## Package Exports
|
|
128
|
+
|
|
129
|
+
| Subpath | Contents | MCP dependency |
|
|
130
|
+
|---------|----------|:-:|
|
|
131
|
+
| `@agenticvault/agentic-vault` | Core signing (SigningProvider, EvmSignerAdapter, factory) | No |
|
|
132
|
+
| `@agenticvault/agentic-vault/protocols` | Protocol decoders, dispatcher, PolicyEngine V2, workflows | No |
|
|
133
|
+
| `@agenticvault/agentic-vault/agentic` | MCP server, audit logger | Yes |
|
|
134
|
+
|
|
135
|
+
## Documentation
|
|
136
|
+
|
|
137
|
+
| Document | Description |
|
|
138
|
+
|----------|-------------|
|
|
139
|
+
| [Interfaces Guide](docs/guides/interfaces.md) | TypeScript, CLI, MCP, and OpenClaw usage |
|
|
140
|
+
| [Policy Reference](docs/reference/policy.md) | Policy JSON schema, fields, and examples |
|
|
141
|
+
| [AWS KMS Setup](docs/guides/aws-kms-setup.md) | Key creation, IAM policy, authentication |
|
|
142
|
+
| [OpenClaw Plugin](packages/openclaw-plugin/) | OpenClaw plugin package and configuration |
|
|
143
|
+
| [Architecture Decisions](docs/project/adrs/ADR-001-architecture-decisions.md) | ADRs for key design choices |
|
|
144
|
+
| [Contributing](CONTRIBUTING.md) | Development workflow and guidelines |
|
|
145
|
+
|
|
146
|
+
## Roadmap
|
|
147
|
+
|
|
148
|
+
- Additional signing providers (GCP KMS, HashiCorp Vault)
|
|
149
|
+
- More protocol decoders (Curve, Compound V3)
|
|
150
|
+
- Multi-signature support
|
|
151
|
+
- Remote MCP server mode (HTTP transport with OAuth 2.1)
|
|
152
|
+
|
|
153
|
+
## Contributing
|
|
154
|
+
|
|
155
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development workflow, branch naming, and commit conventions.
|
|
156
|
+
|
|
157
|
+
This project follows the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md).
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
[MIT](LICENSE)
|