smartpolicy について
SmartPolicyは、オンチェーンのポリシーレジストリを使い、AIエージェントとスマートコントラクトに実行時の認可を提供します。ルールと適用箇所を分離したいチーム向けで、ポリシーはトランザクションで更新でき、MCPサーバーとREST APIは短期の署名付き許可を発行します。
主な機能
- 01メンバー、条件、有効期限をオンチェーン登録
- 02不変のレジストリに基づくポリシー確認
- 03短期のEIP-712署名付き許可を発行
- 04MCPサーバーとREST APIを提供
- 05Solidityの修飾子でコントラクトを保護
活用シーン
- 01実行前にエージェントの操作可否を確認
- 02バックエンドで署名付き許可を検証
- 03コントラクトを再デプロイせずアクセス規則を変更
MCP 対応
SmartPolicyのMCPサーバーは、AIシステムにポリシー認可の確認機能を提供し、短期の署名付き許可を返せます。サーバーとREST APIはオンチェーンのポリシーレジストリに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @smartpolicy/mcpSMARTPOLICY_REGISTRYPolicyRegistry contract address (omit for the public Sepolia default)SMARTPOLICY_VERIFIERGrantVerifier contract address (omit for the public Sepolia default)SMARTPOLICY_RPC_URLEVM RPC endpoint (omit for the public Sepolia default)SMARTPOLICY_ISSUER_KEYシークレットOptional grant-issuer private key; enables the grant_issue toolローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| action | string | はい | アクション名(例:"withdraw")または 0x で始まる bytes32。名前は keccak256 でハッシュ化され、保護されたコントラクト内の keccak256("withdraw") と一致します。 |
| subject | string | はい | |
| policyId | any | はい | ポリシー ID(10 進数の文字列または整数) |
詳細
SmartPolicy
AI エージェントとスマートコントラクトのための実行時認可。
エージェント、ユーザー、コントラクトに許可する操作をポリシーとして一度定義します。 オンチェーンでは最小限の検証コントラクトを通じて、オフチェーンでは AI システムが直接利用する MCP サーバーと REST API を通じて、あらゆる場所で適用します。何も再デプロイせずにルールを更新できます。
ステータス(2026-06-12):コアコントラクトは Ethereum Sepolia で稼働中 (Etherscan で検証済み。アドレスは contracts/deployments/sepolia.json に記載)。Foundry テスト 54 件がすべて成功。MCP サーバー v0 をパッケージ化済み。
npx smartpolicy-mcpは設定不要で Sepolia に接続して実行でき、npx smartpolicy-mcp deployは埋め込みバイトコードから任意のチェーンを初期設定します。自律的なエージェント実行テスト(空のチェーンでのコールドスタートを含む)により、AI から利用できることを実証済み。監査未実施。成熟するまでは内部利用のみで、公開リポジトリやレジストリへの掲載はまだありません。 現在の状況、決定事項、作業の再開方法については PLAN.md をご覧ください。
なぜ必要なのか
AI エージェントを提供するチームは、どこも同じ壁にぶつかります。エージェントは、キーで許可されたことなら技術的には何でも実行でき、それを制限する方法は、プロンプトへのハードコードかコードの再デプロイしかありません。スマートコントラクトのチームも、コントラクトのデプロイ時にアクセスルールが組み込まれるという、表裏一体の問題に直面します。
SmartPolicy は、ルールと適用箇所を分離します。
- ポリシーはオンチェーンの Registry に保存されます。メンバー、管理者、条件、有効期限、変更可能性のフラグを含みます。これはコードではなくデータです。ルールの変更は再デプロイではなく、トランザクションで行います。
- 適用は、操作が実行される場所で行います。
- スマートコントラクトは 1 つの修飾子を継承し、Registry を確認します(無料の view 呼び出し)。
- AI エージェント(またはその前段のサービス)は MCP サーバー/REST API に問い合わせます。
*「
0xAgentはポリシーNのもとでactionを実行できますか?」*と尋ねると、短時間有効な署名付き許可(EIP-712)が返されます。これは任意のコントラクトやバックエンドで検証できます。
これは何ではないか
- トークンではありません。プロトコルトークンも、ICO も、見せかけのガバナンスもありません。 収益は手数料です。オンチェーンのポリシー書き込みに少額の手数料がかかり、ホスト型 API では従量制(x402)の呼び出しごとの支払いが発生します。読み取りと検証は無料です。
- アップグレード可能ではありません。コアの Registry はデプロイ後に変更できません。信頼の根拠は、自分で読めるコードであり、信頼する必要のある管理者キーではありません。新しいプロトコルバージョンは、新たにデプロイします。
- オラクルではありません。SmartPolicy が答えるのは「これは許可されていますか?」であり、「現実世界で何が起きましたか?」ではありません。外部の事実に依存する条件値は、ポリシー所有者が選んだソースからの署名付き許可を通じて証明されます。
アーキテクチャ(概要)
┌─────────────┐ MCP / REST (x402 metered) ┌──────────────────┐
│ AI agents │ ────────────────────────────▶ │ SmartPolicy MCP │
│ & services │ ◀──── signed grants ──────── │ server (TS) │
└─────────────┘ └────────┬─────────┘
│ reads + grant issuance
┌─────────────┐ inherit Gate modifier ┌────────▼─────────┐
│ Protected │ ────── view calls ──────────▶ │ PolicyRegistry │
│ contracts │ │ (Base, immutable)│
└─────────────┘ └──────────────────┘
設計の全容と、それぞれの決定(チェーン、手数料、信頼モデル、v1 から意図的に除外した内容)の根拠については、ARCHITECTURE.md をご覧ください。
リポジトリ構成
contracts/ Solidity core: PolicyRegistry, PolicyGate, interfaces (Foundry)
mcp/ MCP server + REST API (TypeScript, x402 metering)
sdk/ TypeScript client SDK (@smartpolicy/sdk) — reads, grants, tx-building
docs/ Integration guides (planned)
経緯
SmartPolicy は、2025 年のプロトタイプ(「Smart Policy Protocol」、Sepolia)から最も優れたアイデアを引き継ぎ、新たに書き直したものです。ポリシーレジストリ、段階的な統合モデル、オンチェーンと署名付きトークンを組み合わせた適用方式を引き継いでいます。書き直しにあたり、SPOL トークン/ICO/ガバナンス一式、スポーツ予測オラクル、ファクトリーコントラクト、アップグレード可能なプロキシの信頼モデルは意図的に除外し、既知のセキュリティ問題(tx.origin チェック、リエントランシーガードの欠落、ヘッダーのみの API 認証)を修正しました。
ライセンス
Apache-2.0 — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。