Skip to Content
Guides高度な設定

Advanced Configuration

Kova は、設定ファイルを通じて動作をカスタマイズできます。デフォルトウォレットの設定、カスタムRPCエンドポイント、ポリシーによる送金制限、API鍵管理など、本番環境での運用に必要な設定をこのガイドで解説します。

設定ファイルの概要

Kova の設定は ~/.kova/config.json に保存されます。

# 設定ファイルの場所 ~/.kova/config.json # 設定を一覧表示(個別キー確認もこちら。i18n 対応の整形表示 + JSON) kova config list

設定は kova config set コマンドで変更するか、直接ファイルを編集して適用できます。

デフォルト設定

よく使うウォレットをデフォルトに設定しておくと、コマンドが簡潔になります。

# デフォルトウォレットを設定 kova config set defaultWallet my-wallet

config.json の例:

{ "defaultWallet": "my-wallet", "rpcUrls": {}, "policies": {} }

デフォルト設定後は、send などのコマンドで --chain--name オプションを省略できます:

# 残高確認(引数なし) kova balance # 送金(デフォルトウォレット使用) kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 10 --token USDC

カスタムRPC URL設定

デフォルトでは、Kova はパブリックRPCエンドポイントを使用します。本番環境では、専用のRPCプロバイダーを利用することで信頼性とパフォーマンスが向上します。

推奨プロバイダー

プロバイダー特徴URL
Alchemy高い信頼性・充実したAPIhttps://www.alchemy.com 
Infura老舗・Consensys提供https://www.infura.io 
QuickNode高速・多チェーン対応https://www.quicknode.com 
Ankrコスト効率が高いhttps://www.ankr.com 

RPC URLの設定方法

# EthereumのカスタムRPCを設定 kova config set rpcUrls.ethereum "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY" # BaseのカスタムRPCを設定 kova config set rpcUrls.base "https://base-mainnet.g.alchemy.com/v2/YOUR_API_KEY"

または、config.json を直接編集します:

{ "defaultWallet": "my-wallet", "rpcUrls": { "ethereum": "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY", "base": "https://base-mainnet.g.alchemy.com/v2/YOUR_API_KEY", "polygon": "https://polygon-mainnet.g.alchemy.com/v2/YOUR_API_KEY" } }

ポリシーによる送金制限

ポリシーを設定することで、ウォレットの操作に制約を設けられます。AIエージェントに使わせる場合は、必ずポリシーを設定してください。

ポリシー制約フィールド一覧

フィールド説明
maxAmountstring1回の送金上限額(例: "100"
allowedChainsstring[]使用を許可するチェーンID(例: ["eip155:8453"]
allowedTokensstring[]使用を許可するトークンシンボル(例: ["USDC"]
requireApprovalbooleantrue の場合、送金前に人間の承認を必要とする

ポリシーの作成

policy.json を作成:

{ "name": "AIエージェント用ポリシー", "maxAmount": "100", "allowedChains": ["eip155:8453"], "allowedTokens": ["USDC"], "requireApproval": true }
# ポリシーを作成 kova policy create --file policy.json # 作成されたポリシーIDを確認 kova policy list

出力例:

{ "ok": true, "data": { "policy": { "id": "pol_abc123", "name": "AIエージェント用ポリシー", "maxAmount": "100", "allowedChains": ["eip155:8453"], "allowedTokens": ["USDC"], "requireApproval": true } } }

ポリシー違反の送金はエラーになります:

{ "ok": false, "error": { "code": "POLICY_DENIED", "message": "Transaction exceeds policy maxAmount: 100 USDC" } }

API鍵管理

API鍵を使うと、ポリシー付きでウォレットへのアクセスを安全に委譲できます。AIエージェントやバックエンドサービスに使わせる際に活用してください。

API鍵の作成・管理

# API鍵のローテーション(初回は kova init で自動発行される) kova key rotate --name agent-key # API鍵の一覧表示 kova key list

作成時の出力例:

{ "ok": true, "data": { "key": { "id": "key_xyz789", "name": "agent-key", "apiKey": "kova_xxxxxxxxxxxxxxxxxxxxxxxx", "wallet": "my-wallet", "policyId": "pol_abc123" } } }

重要: apiKey の値はこのタイミングのみ表示されます。必ず安全な場所に保存してください。

AIエージェントへの組み込み例(TypeScript)

import { execSync } from 'child_process'; // 環境変数からAPI鍵を読み込む const apiKey = process.env.KOVA_API_KEY; if (!apiKey) { throw new Error('KOVA_API_KEY environment variable is required'); } interface SendResult { ok: boolean; data?: { dryRun: boolean; txHash?: string; explorerUrl?: string; }; error?: { code: string; message: string; }; } async function sendWithPolicy( to: string, amount: string, token: string ): Promise<SendResult> { const env = { ...process.env, KOVA_API_KEY: apiKey }; const result = execSync( `kova send --name my-wallet --to ${to} --amount ${amount} --token ${token} --broadcast`, { encoding: 'utf-8', env } ); return JSON.parse(result); } // 使用例 async function main() { const result = await sendWithPolicy( '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', '10', 'USDC' ); if (result.ok) { console.log(`送金成功: ${result.data.explorerUrl}`); } else { console.error(`エラー: ${result.error.code} - ${result.error.message}`); } } main();

KOVA_API_KEY 環境変数が設定されている場合、CLIは自動的にポリシー評価を行います。

設定のバックアップと復元

設定ファイルとウォレットデータは定期的にバックアップしてください。

# 設定ファイルのバックアップ cp ~/.kova/config.json ~/backup/kova-config-$(date +%Y%m%d).json # ウォレットデータのバックアップ(暗号化ファイルとして保存) cp -r ~/.kova/wallets/ ~/backup/kova-wallets-$(date +%Y%m%d)/ # バックアップからの復元 cp ~/backup/kova-config-20240101.json ~/.kova/config.json

注意: ウォレットデータには秘密鍵が含まれます。バックアップファイルは暗号化ストレージやパスワードマネージャーで保護してください。

本番環境のベストプラクティス

  • API鍵を環境変数で管理する - APIキーをコードやファイルにハードコードしないでください。.env ファイルや環境変数管理サービス(AWS Secrets Manager、HashiCorp Vaultなど)を活用しましょう。

  • 最小権限のポリシーを設定する - AIエージェントや自動化スクリプトに与えるポリシーは、必要最小限の権限に絞ってください。maxAmount を低く設定し、allowedChainsallowedTokens を明示的に指定することを推奨します。

  • 専用のRPCエンドポイントを使用する - 本番環境ではパブリックRPCではなく、Alchemy・Infura・QuickNodeなどの専用プロバイダーを利用して信頼性を確保しましょう。

  • 設定ファイルをバージョン管理から除外する - ~/.kova/ ディレクトリはリポジトリにコミットしないでください。APIキーや秘密鍵が含まれる場合があります。

  • 定期的にAPI鍵をローテーションする - 定期的に kova key rotate --name <key-name> で鍵を更新することでセキュリティリスクを低減できます。

関連項目

Last updated on