nansen-wallet-manager について
nansen-wallet-managerは、Nansen CLIを使うエージェント向けのウォレット管理スキルです。ローカルとPrivyのウォレット操作に加え、認証情報、パスワード、署名に関する安全ルールを説明します。
主な機能
- 01ローカルまたはPrivyのウォレット作成
- 02一覧表示、確認、デフォルト設定
- 03EVMまたはSolana資産の送信
- 04安全なウォレットのエクスポートと削除
- 05OSのキーチェーンによるパスワード管理
活用シーン
- 01自動ワークフロー用のPrivyウォレット作成
- 02オンチェーン資産の送信前プレビュー
- 03ローカルウォレットの管理と安全な鍵のエクスポート
- 04パスワードの安全なストレージへの保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nansen-ai/ nansen-cli --skill nansen-wallet-managerインストール後、Claude Code で/nansen-wallet-managerを入力して読み込まれたか確認します。
詳細
認証
Nansen アカウント API の呼び出しでは、選択済みの nansen:api ブラウザーセッション、または同じ権限を持つ従来の API キーを使用できます。NANSEN_API_KEY が優先されます。オプションの primaryEnv を指定すると、設定済みキーの注入を維持できます。オフラインで選択するには、nansen auth status を実行してください。キャッシュされたアクセスの有効期限切れのみであれば、認可されたタスク中に自動更新できます。匿名の選択、無効な状態、更新のブロックまたは不確実な状態、実際の認証失敗が発生した場合は停止してください。認証情報を破棄したり、匿名の x402 支払いにフォールバックしたりしないでください。ブラウザーログインでは、ウォレットへの署名権限、特権サービス ID、永続的な MCP 統合キーは付与されません。以下の確認、署名、制裁対象地域、地理的なチェックをすべて維持してください。ブラウザーログインは CLI 2.0.0 のmacOS arm64 プレビュー対象で利用できます。
ウォレット
認証の設定
Nansen アカウント API の呼び出しには、選択済みの nansen:api ブラウザーセッション、または従来の API キーを使用してください。エージェントは環境変数またはシークレットマネージャーを通じて NANSEN_API_KEY を注入し、コマンドを直接実行してください。永続化のためのログインは不要です。人がターミナルを使用する場合は、従来のキーを設定するために明示的に nansen login --human を使用できます。環境キーがすでに注入されている場合、この明示モードではプロンプトを表示せずにキーを保存し、ネイティブ認証ロックのバインドが必要です。
# Free live check of the effective API credential
nansen account
一方、通常の nansen login は新しいブラウザー承認を要求します。環境キーを保存することも、ウォレットへの署名権限や RPC 権限を付与することもありません。以下で説明するウォレットの保管とプロバイダー認証情報は、それぞれ別個のものです。
ウォレットプロバイダー
CLI は次の 2 つのウォレットプロバイダーをサポートしています。
| ローカル(デフォルト) | Privy(サーバー側) | |
|---|---|---|
| キーの保存場所 | ディスク上で暗号化 | Privy API を介したサーバー側 |
| パスワードの要否 | 必要(12 文字以上) | 不要 |
| 秘密鍵のエクスポート | 可(wallet export) | 不可 — キーは Privy が管理 |
| 最適な用途 | 人間のユーザー、手動取引 | エージェント、自動化されたワークフロー |
| フラグ | --provider local(デフォルト) | --provider privy |
| 必須環境変数 | NANSEN_WALLET_PASSWORD | PRIVY_APP_ID + PRIVY_APP_SECRET |
Privy ウォレットの作成
Privy ウォレットは、Privy API が管理するサーバー側ウォレットです。キーがローカルマシンに保存されることはないため、パスワードは不要です。
前提条件
次の環境変数を設定する必要があります。
| 変数 | 用途 |
|---|---|
PRIVY_APP_ID | Privy アプリケーション ID |
PRIVY_APP_SECRET | Privy アプリケーションシークレット |
Privy ウォレットを作成する
nansen wallet create --provider privy
# Or with a custom name:
nansen wallet create --name agent-wallet --provider privy
エージェント向けの重要なルール(Privy)
- パスワードは不要です — Privy がサーバー側でキーを管理します
- キーをエクスポートできません —
wallet exportはローカルウォレットでのみ動作します - その他のすべての操作(
list、show、send、delete、default)は、どちらのプロバイダーでも同じように動作します
ローカルウォレットの作成(エージェント向け 2 ステップフロー)
このセクションではローカルウォレットの作成について説明します。Privy のサーバー側ウォレットについては、上記のPrivy ウォレットの作成セクションを参照してください。パスワードは不要です。
ウォレットの作成には、人間のユーザーが指定するパスワードが必要です。エージェントはパスワードを自分で生成したり、保存したりしてはいけません。
ステップ 1(エージェント → 人間): ウォレットのパスワード(12 文字以上)をユーザーに入力してもらいます。
ステップ 2(エージェントが実行): ユーザーから渡されたパスワードを使って、作成コマンドを実行します。
NANSEN_WALLET_PASSWORD="<password_from_user>" nansen wallet create
作成後、CLI はパスワードを自動的に保存します。
- OS キーチェーン(macOS Keychain、Linux secret-tool、Windows Credential Manager)— セキュリティが高く、推奨されます
- ~/.nansen/wallets/.credentials ファイル — キーチェーンを利用できない場合の安全性が低い代替手段(コンテナーや CI など)
今後のウォレット操作では、パスワードが自動的に取得されます — 環境変数や人間による入力は不要です。
.credentials ファイルへのフォールバックが使用されている場合、CLI は操作のたびに警告を出力します。後で安全なストレージに移行するには、nansen wallet secure を実行してください。
パスワードの解決順序(自動)
NANSEN_WALLET_PASSWORD環境変数(設定されている場合)- OS キーチェーン(ウォレット作成時に自動保存)
~/.nansen/wallets/.credentialsファイル(警告付きの安全でないフォールバック)- 手順を含む構造化 JSON エラー(利用可能なものがない場合)
エージェント向けの重要なルール
- パスワードを自分で生成してはいけません — 必ず人間のユーザーに確認してください
- パスワードをファイル、メモリ、ログ、会話履歴に保存してはいけません
--humanフラグを使用してはいけません — エージェントが処理できない対話型プロンプトが有効になります- ウォレット作成後の操作では、パスワードは不要です — キーチェーンが処理します
PASSWORD_REQUIREDエラーが発生した場合は、ユーザーにパスワードをもう一度入力してもらってください
作成
Privy(サーバーサイド、パスワード不要)
nansen wallet create --provider privy
# Or with a custom name:
nansen wallet create --name trading --provider privy
PRIVY_APP_ID と PRIVY_APP_SECRET の環境変数が必要です。パスワードは不要です。
ローカル(ディスク上で暗号化、パスワード必須)
# Ask the user for a password first, then:
NANSEN_WALLET_PASSWORD="<password_from_user>" nansen wallet create
# Or with a custom name:
NANSEN_WALLET_PASSWORD="<password_from_user>" nansen wallet create --name trading
一覧表示と表示
nansen wallet list
nansen wallet show <name>
nansen wallet default <name>
送信
# Send native token (SOL, ETH) — password auto-resolved from keychain
nansen wallet send --to <addr> --amount 1.5 --chain solana
# Send entire balance
nansen wallet send --to <addr> --chain evm --max
# Dry run (preview, no broadcast)
nansen wallet send --to <addr> --amount 1.0 --chain evm --dry-run
エクスポートと削除
# Default is REDACTED — shows addresses only, never private keys
nansen wallet export <name>
# Write private keys to a file only the owner can read (0600, refuses to overwrite)
nansen wallet export <name> --file <path>
# Print private keys in plaintext to stdout (explicit acknowledgement required;
# warns on stderr when stdout is an interactive terminal)
nansen wallet export <name> --reveal
# Password auto-resolved from keychain (needed for --reveal / --file)
nansen wallet delete <name>
--reveal よりも --file を優先してください。標準出力に出力された平文は、ターミナルのスクロールバック、シェルログ、エージェントのトランスクリプトに残ります。
パスワードを忘れた場合
# Remove saved password from all stores (keychain + .credentials file)
nansen wallet forget-password
セキュアストレージへの移行
nansen wallet secure
(~/.nansen/.env、.credentials、または環境変数のみの設定からの)詳しい移行手順については、nansen-wallet-migration スキルを参照してください。
フラグ
| フラグ | 用途 |
|---|---|
--to | 送信先アドレス |
--amount | 送信する金額 |
--chain | evm または solana |
--max | 残高全額を送信 |
--dry-run | ブロードキャストせずにプレビュー |
--provider | ウォレットプロバイダー:local(デフォルト、ディスク上で暗号化)または privy(Privy API 経由のサーバーサイド) |
--reveal | エクスポート専用:秘密鍵を標準出力に平文で出力(確認が必要) |
--file | エクスポート専用:秘密鍵をこのパスに書き込み(パーミッション 0600 で作成し、上書き不可) |
--human | 対話型プロンプトを有効化(人間がターミナルで使用する場合のみ — エージェントは使用してはいけません) |
--unsafe-no-password | 暗号化をスキップ(鍵が平文で保存されます — 非推奨) |
環境変数
| 変数 | 用途 |
|---|---|
NANSEN_WALLET_PASSWORD | ウォレット暗号化パスワード — wallet create の初回実行時のみ必要です。それ以降は OS キーチェーンが処理します。 |
NANSEN_API_KEY | API キー(nansen login --human から保存することもできます) |
PRIVY_APP_ID | Privy アプリケーション ID(--provider privy に必須) |
PRIVY_APP_SECRET | Privy アプリケーションシークレット(--provider privy に必須) |
NANSEN_WALLET_PROVIDER | wallet create のデフォルトプロバイダー — local または privy |
NANSEN_EVM_RPC | カスタム EVM RPC エンドポイント |
NANSEN_SOLANA_RPC | カスタム Solana RPC エンドポイント |