Snap Protocol Solana について
Snap Protocol Solana は、AI エージェント間の非公開送金を行う Solana のプロトコルと SDK です。シールドプールとゼロ知識証明を使い、出金と特定の入金との関連を観察者に知られないようにします。
主な機能
- 01SOL と USDC のシールドプール
- 02Groth16 による出金証明
- 03Merkle パスとノートの処理
- 04リレー経由の非公開出金
- 05Agent Kit と LangChain のツール
活用シーン
- 01エージェント間で非公開決済
- 02入金元を特定されずに出金
- 03リレー出金でガスを抽象化
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SNAP — Shield Network Agent Payments
ゼロ知識証明を使用した、Solana 上のエージェント間のプライベートな決済です。
SNAP は Solana のメインネットで稼働しています。プロトコルの脅威モデルと信頼に関する前提については、セキュリティドキュメントをご覧ください。
SNAP の機能
SNAP を使うと、オンチェーンの監視者に送金元と送金先を知られることなく、AI エージェント同士が決済できます。入金は暗号学的なコミットメントとともにシールドプールに入ります。出金では Groth16 証明を使用し、どの入金が請求対象なのかを明かさずに、受取人が資金を受け取る権利を持つことを示します。
仕組み
- エージェント A が SOL とコミットメントをプールに入金します。
- エージェント A がプライベートチャネルを通じてエージェント B に秘密のノートを送ります。
- エージェント B が Merkle パスを再構築し、Groth16 証明を生成します。
- エージェント B が
withdraw_zkまたはwithdraw_zk_relayedを使って SOL を出金します。 - 監視者はプールのアクティビティを確認できますが、出金と特定の入金を結び付けることはできません。
クイックスタート
SDK とピア依存関係をインストールします。
npm install snap-solana-sdk @solana/web3.js @coral-xyz/anchor
プライベート決済の最小例:
import { Connection, Keypair, PublicKey, clusterApiUrl } from "@solana/web3.js";
import { SNAPClient } from "snap-solana-sdk";
async function main() {
const connection = new Connection("https://your-rpc-url.com", "confirmed");
const sender = Keypair.generate();
const recipient = Keypair.generate();
const pool = new PublicKey("B8SyffZKt8LABKogWjH9rZcjY5PV2hyYRCbTxxbcrpFf");
const snapA = new SNAPClient(connection, sender);
const snapB = new SNAPClient(connection, recipient);
const note = await snapA.deposit(pool, 0.1);
const serialized = SNAPClient.serializeNote(note);
await snapB.withdraw(pool, SNAPClient.deserializeNote(serialized), recipient);
}
void main();
このリポジトリから実行可能な手順を試すには、次を使用します。
npx tsx examples/basic-payment.ts
npx tsx examples/agent-to-agent.ts
npx tsx examples/relayed-withdrawal.ts
アーキテクチャ
| コンポーネント | 説明 |
|---|---|
| Solana プログラム | deposit、withdraw_zk、withdraw_zk_relayed を備えた Anchor プログラム |
| ZK 回路 | Poseidon と深さ 10 の Merkle ツリーを使用する circom Groth16 回路 |
| SDK | ノートの処理、証明の生成、クライアント API に使用する snap-solana-sdk |
| Agent Kit プラグイン | snap_create_pool、snap_deposit、snap_withdraw、snap_withdraw_private を備えた Solana Agent Kit v2 プラグイン |
| LangChain ツール | snap-langchain-tools — LangChain/LangGraph エージェント向けの StructuredTool ラッパー |
| リレーヤー | ガスを抽象化したプライベート出金のための Express サービス |
メインネット
プールの額面は 0.1 SOL、1 USDC、10 USDC です。信頼に関する前提については、THREAT_MODEL.mdをご覧ください。
| フィールド | 値 |
|---|---|
| プログラム ID | 9uePoqdgaXpqFLQM2ED1GGQrwSEiqe3r6tW1AfsnrrbS |
| プール — 0.1 SOL | B8SyffZKt8LABKogWjH9rZcjY5PV2hyYRCbTxxbcrpFf |
| プール — 1 USDC | 5LeuHrPBgHNhgbCy996MEjcsBk5gNHhVj6AiuuCHZ8od |
| プール — 10 USDC | ECuHf8kgiWfmL3Q6id4WGBQWvuukhzqvF5vsxuPAKZBv |
| ネットワーク | Solana mainnet-beta |
| プロトコル手数料 | 0.25% |
プロジェクト構成
├── programs/ # Solana program (Rust/Anchor)
├── circuits/ # circom ZK circuit
├── sdk-package/ # snap-solana-sdk npm package
├── agent-kit-tool/ # Solana Agent Kit plugin
├── relayer/ # Express relay service
├── agents/ # Demo agent scripts
├── examples/ # Minimal end-to-end examples
├── scripts/ # Deployment and quickstart scripts
├── docs/ # Troubleshooting, circuit, and compliance docs
└── tests/ # Integration tests
開発
# Build the Solana program
anchor build
# Run validator-backed tests
PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH" anchor test --skip-build
# Build and test the SDK package
cd sdk-package && npm install && npm run build && npm test
セキュリティ
既知のリスク、プロトコルの制限、セキュリティドキュメントについては、FINDINGS.md、docs/CIRCUIT_SPEC.md、docs/THREAT_MODEL.md、docs/COMPLIANCE.md、docs/GOVERNANCE.mdをご覧ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。