send コマンド
sendコマンドは、ウォレットからトークンを送金するためのコマンドです。ネイティブトークン(ETH、POL等)およびERC-20トークン(USDC、USDT、JPYC など)の送金に対応しています。
重要: dry-runデフォルト
セキュリティ上の理由から、sendコマンドはデフォルトでdry-run(シミュレーション)モードです。 実際にトランザクションを送信するには、--broadcastフラグを明示的に指定する必要があります。
構文
kova send [options]オプション
| オプション | 必須/任意 | 説明 | デフォルト値 |
|---|---|---|---|
--name <name> | 必須 | ウォレット名またはID | - |
--to <address> | 必須 | 送信先アドレス(0x…形式またはENS名) | - |
--amount <amount> | 必須 | 送信量(10進数形式、例: 1.0, 0.5) | - |
--token <symbol> | 任意 | トークンシンボル(例: USDC, ETH, JPYC) | ネイティブトークン |
--chain <chain> | 必須 | チェーン名(例: base, ethereum, polygon) | - |
--broadcast | 任意 | 実際にトランザクションを送信 | false(dry-run) |
--owner | 任意 | passphrase 署名を強制する(credential が設定されていても OWS API key を使わず、ローカル passphrase で署名する) | false |
--gasless | 任意 | ERC-7702 経由のガスレス送信 (対応チェーンのみ) | false |
credential (OWS API key) は config 保存のみ対応。
--api-keyflag やOWS_API_KEYenv は 漏洩リスク低減のため未実装。kova initで config に保存してください。
使用例
dry-run(シミュレーション)
ネイティブトークン(ETH)のdry-run送金:
kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 0.001 --chain base出力例:
{
"ok": true,
"data": {
"dryRun": true,
"tx": {
"from": "0xB8EC761bf83B4374877e903d217222F2cd5512De",
"to": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"value": "0.001",
"chain": "base",
"chainId": "eip155:8453",
"token": "native",
"symbol": "ETH",
"estimatedGas": "21000",
"gasPrice": "0.00000001"
}
}
}ERC-20トークン(USDC)のdry-run送金:
kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 10.0 --token USDC --chain base出力例:
{
"ok": true,
"data": {
"dryRun": true,
"tx": {
"from": "0xB8EC761bf83B4374877e903d217222F2cd5512De",
"to": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"value": "10.0",
"chain": "base",
"chainId": "eip155:8453",
"token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"symbol": "USDC",
"estimatedGas": "65000",
"gasPrice": "0.00000001"
}
}
}broadcast(実際の送金)
dry-runで確認後、--broadcastを追加して実送信:
kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 10.0 --token USDC --chain base --broadcast出力例:
{
"ok": true,
"data": {
"dryRun": false,
"txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"explorerUrl": "https://basescan.org/tx/0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"from": "0xB8EC761bf83B4374877e903d217222F2cd5512De",
"to": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"amount": "10.0",
"token": "USDC"
}
}ENS名の使用
Ethereum Mainnetでは、ENS名(例: vitalik.eth)を送信先アドレスとして使用できます。
kova send --name my-wallet --to vitalik.eth --amount 0.01 --chain ethereum --broadcast送金フロー(推奨)
実際の送金は、以下の2ステップで行うことを推奨します。
ステップ1: dry-runで内容を確認
# 送金内容をシミュレーション
kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 10.0 --token USDC --chain base確認事項:
- 送信元アドレス(
from)が正しいか - 送信先アドレス(
to)が正しいか - 送信量(
value)が正しいか - チェーン(
chain)が正しいか - トークン(
symbol)が正しいか - ガス代(
estimatedGas×gasPrice)が妥当か
ステップ2: —broadcastで実送信
内容を確認後、同じコマンドに--broadcastを追加して実送信します。
# 実際に送金
kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 10.0 --token USDC --chain base --broadcastステップ3: トランザクション確認
出力されたexplorerUrlでブロックチェーンエクスプローラーを開き、トランザクションが正常に処理されたか確認します。
# 出力例のexplorerUrlをブラウザで開く
# https://basescan.org/tx/0x1234...よくあるエラーと対処法
WALLET_NOT_FOUND
エラーメッセージ:
{
"ok": false,
"error": {
"code": "WALLET_NOT_FOUND",
"message": "Wallet 'unknown-wallet' not found."
}
}対処法:
kova wallet infoでウォレット情報を確認する- ウォレット名のスペルミスを確認する
INSUFFICIENT_BALANCE
エラーメッセージ:
{
"ok": false,
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "Insufficient balance. Required: 10.0 USDC, Available: 5.0 USDC"
}
}対処法:
kova balanceで残高を確認する- 送金量を減らす
- ウォレットに入金する
INSUFFICIENT_GAS
エラーメッセージ:
{
"ok": false,
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "Insufficient ETH for gas. Required: 0.001 ETH, Available: 0.0005 ETH"
}
}対処法:
- ネイティブトークン(ETH、POL等)の残高を確認する(
kova balance) - ネイティブトークンを入金してガス代を確保する
INVALID_PARAMS(無効なアドレス)
エラーメッセージ:
{
"ok": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Invalid address: 0xinvalid"
}
}対処法:
- 送信先アドレスの形式を確認する(
0xで始まる42文字の16進数) - ENS名の場合は、Ethereum Mainnetで使用可能か確認する
CHAIN_NOT_SUPPORTED
エラーメッセージ:
{
"ok": false,
"error": {
"code": "CHAIN_NOT_SUPPORTED",
"message": "Chain 'unknown-chain' is not supported."
}
}対処法:
- サポートチェーン一覧で正しいチェーン名を確認する
- チェーン名は小文字で指定する(例:
base,ethereum,polygon)
TX_FAILED
エラーメッセージ:
{
"ok": false,
"error": {
"code": "TX_FAILED",
"message": "Transaction failed: execution reverted"
}
}対処法:
- ガス代が不足していないか確認する
- ネットワーク状態を確認する(混雑時はガス代が高騰する)
- しばらく待ってから再実行する
ガス代の考慮
トークン送金には、ガス代(トランザクション手数料)が必要です。ガス代は、チェーンのネイティブトークン(ETH、POL等)で支払われます。
ネイティブトークン送金の場合
送金量 + ガス代の合計が必要です。
例(Baseで0.001 ETH送金):
- 送金量: 0.001 ETH
- ガス代: 約0.00021 ETH(21,000 gas × ガス価格)
- 必要残高: 0.00121 ETH以上
ERC-20トークン送金の場合
ERC-20トークンとは別に、ガス代としてネイティブトークンが必要です。
例(Baseで10 USDC送金):
- 送金量: 10 USDC
- ガス代: 約0.00065 ETH(65,000 gas × ガス価格)
- 必要残高:
- USDC: 10 USDC以上
- ETH(ガス代用): 0.00065 ETH以上
ガス代の確認
dry-runモードで、推定ガス代を確認できます。
kova send --name my-wallet --to 0x... --amount 10 --token USDC --chain base出力のestimatedGasとgasPriceから、ガス代を計算できます。
{
"estimatedGas": "65000",
"gasPrice": "0.00000001"
}ガス代 = estimatedGas × gasPrice = 65000 × 0.00000001 = 0.00065 ETH
セキュリティのポイント
1. 必ずdry-runで確認
実送信の前に、必ずdry-runで送金内容を確認しましょう。
# ステップ1: dry-run
kova send --name my-wallet --to 0x... --amount 10 --token USDC --chain base
# ステップ2: 内容確認後、broadcast
kova send --name my-wallet --to 0x... --amount 10 --token USDC --chain base --broadcast2. 送信先アドレスの確認
送信先アドレスは、一度送金すると取り消せません。必ず確認しましょう。
- アドレスの形式(
0xで始まる42文字) - アドレスのスペルミス
- チェーンの選択(例: Base、Ethereumを間違えない)
3. テストネットでの事前確認
本番環境(メインネット)で大きな金額を送金する前に、テストネットで動作確認しましょう。
# Base Sepoliaテストネット
kova send --name test-wallet --to 0x... --amount 0.1 --chain base-sepolia --broadcast4. ポリシー制御の活用
API鍵にポリシーを関連付けることで、送金額やチェーンを制限できます。詳細は、policy コマンドを参照してください。
AIエージェントでの使用例
Kovaは、AIエージェントとの統合を前提に設計されています。以下は、スキルを使った自然言語での送金の例です。
ユーザー(自然言語):
- “0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbに10 USDCを送って”
- “vitalik.ethに0.01 ETHを送金して”
- “送金して”
AIエージェントの実行:
# スキルが自動的にCLIコマンドに変換
# ステップ1: dry-run
kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 10 --token USDC --chain base
# ステップ2: ユーザーに確認を求める
# "この内容で送金してよろしいですか?"
# ステップ3: 承認後、broadcast
kova send --name my-wallet --to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb --amount 10 --token USDC --chain base --broadcast詳細は、AIエージェント統合ガイドを参照してください。
関連コマンド
次のステップ
- 送金ガイド: 送金・受取ガイドで詳細な手順を確認しましょう
- セキュリティ: セキュリティガイドで安全な送金方法を学びましょう
- ポリシー制御: policy コマンドで送金制限を設定しましょう
- AIエージェント統合: AIエージェント統合ガイドでスキル経由の送金を学びましょう