Skip to Content
ReferenceCLIコマンドdelegate

delegate コマンド

delegateコマンドは、ERC-7702 delegation を管理するコマンドです。EOA(Externally Owned Account)に一時的にコントラクトコードを委任することで、gasless transaction(ガス代不要の送金)や batch operation(複数操作の一括実行)が可能になります。

概要

ERC-7702 delegation を設定すると、kova send --gaslesskova call --gasless の経路で OWS server が代理でガス代を支払うトランザクションを送信できます。

構文

# delegation 設定(dry-run / broadcast) kova delegate [delegate] --name <wallet> --chain <chain> [--broadcast] [--owner] # delegation 状態確認 kova delegate status --name <wallet> --chain <chain> # delegation 取消(dry-run / broadcast) kova delegate revoke --name <wallet> --chain <chain> [--broadcast] [--owner]

action を省略した場合は delegate(設定)として扱われます。

オプション

オプション必須/任意説明デフォルト
[action]任意delegate / status / revoke のいずれかdelegate
--name <name>必須ウォレット名または ID-
--chain <chain>必須チェーン名(例: base, polygon-amoy-
--broadcast任意実際にトランザクションを送信false(dry-run)
--owner任意passphrase 署名を強制する(credential が設定されていても OWS API key を使わず、ローカル passphrase で署名する)false

OperationKind 分類

actionOperationKindgate 戦略
statusDELEGATE_STATUS(read-only)agent / terminal どちらでも実行可能
delegate(設定)DELEGATE_SET(owner-only がデフォルト、policy 側で delegate_allowlist rule を有効にすると agent からも policy-gated で許可)デフォルトでは TTY での passphrase 必須。policy で許可された場合のみ agent から OWS API key 経由で実行可能
revokeDELEGATE_REVOKE(policy-gated)agent では OWS server policy で gate、terminal では passphrase。復旧操作のためデフォルトで agent 経路を許可。

参考: OperationKind 分類

使用例

1. delegation 設定(dry-run)

kova delegate --name my-wallet --chain base

--broadcast 未指定なので simulateDelegation が呼ばれ、実際のトランザクションは送信されません。

出力例:

{ "ok": true, "data": { "dryRun": true, "from": "0xB8EC761bf83B4374877e903d217222F2cd5512De", "chain": "base", "delegationTo": "0x0000000071727De22E5E9d8BAf0edAc6f37da032" } }

2. delegation 設定(broadcast)

kova delegate --name my-wallet --chain base --broadcast

出力例:

{ "ok": true, "data": { "dryRun": false, "txHash": "0x1234567890abcdef...", "explorerUrl": "https://basescan.org/tx/0x1234567890abcdef...", "delegationTo": "0x0000000071727De22E5E9d8BAf0edAc6f37da032" } }

3. delegation 状態確認

kova delegate status --name my-wallet --chain base

出力例(設定済み):

{ "ok": true, "data": { "address": "0xB8EC761bf83B4374877e903d217222F2cd5512De", "chain": "base", "isDelegated": true, "delegatedTo": "0x0000000071727De22E5E9d8BAf0edAc6f37da032" } }

出力例(未設定):

{ "ok": true, "data": { "address": "0xB8EC761bf83B4374877e903d217222F2cd5512De", "chain": "base", "isDelegated": false } }

4. delegation 取消(broadcast)

kova delegate revoke --name my-wallet --chain polygon-amoy --broadcast

出力例:

{ "ok": true, "data": { "dryRun": false, "txHash": "0xabcdef...", "explorerUrl": "https://amoy.polygonscan.com/tx/0xabcdef...", "action": "revoke" } }

5. owner モードで delegation 設定

kova delegate --name my-wallet --chain base --owner --broadcast

--owner を付けると OWS API key を使わず、ローカル passphrase で署名します(PassphraseSigner 経路)。

ワークフロー

初回セットアップ

# 1. 状態確認 kova delegate status --name my-wallet --chain polygon-amoy # 2. dry-run で挙動確認 kova delegate --name my-wallet --chain polygon-amoy # 3. 実際に設定 kova delegate --name my-wallet --chain polygon-amoy --broadcast # 4. 設定されたか再確認 kova delegate status --name my-wallet --chain polygon-amoy

gasless 送金との連携

delegation 設定後は send / call--gasless を利用できます。

# gasless 送金 kova send --name my-wallet --to 0x... --amount 0.01 --token USDC --chain polygon-amoy --gasless --broadcast # gasless コントラクト呼び出し kova call --name my-wallet --to 0x... --function "transfer(address,uint256)" --args '["0x...", "1000000"]' --chain polygon-amoy --gasless --broadcast

よくあるエラーと対処法

CHAIN_NOT_SUPPORTED

エラーメッセージ:

{ "ok": false, "error": { "code": "CHAIN_NOT_SUPPORTED", "message": "Chain unknown-chain is not supported" } }

対処法: サポートチェーン一覧 で、ERC-7702 をサポートしているチェーン名を確認してください。

WALLET_NOT_FOUND

{ "ok": false, "error": { "code": "WALLET_NOT_FOUND", "message": "Wallet my-wallet not found" } }

対処法: kova wallet info で正しいウォレット名を確認してください。

POLICY_DENIED(agent モード)

agent モードで delegate / revoke を実行し、ポリシー(allowed_chains 等)で拒否された場合に発生します。

対処法: kova policy list でポリシー設定を確認し、必要なら kova policy updateallowed_chains を調整してください。

INSUFFICIENT_BALANCE(ガス代不足)

{ "ok": false, "error": { "code": "INSUFFICIENT_BALANCE", "message": "Insufficient ETH for gas..." } }

対処法: delegation 設定にはトランザクション送信が必要なので、ネイティブトークン(ETH / POL)の残高が必要です。kova balance で確認し、faucet 等で入金してください。

注意点

1. delegation は永続的

一度設定すると明示的に revoke するまで有効です。不要になったら必ず取り消してください。

kova delegate revoke --name my-wallet --chain base --broadcast

2. delegation 先アドレス

Kova は ERC-4337 EntryPoint v0.7(0x0000000071727De22E5E9d8BAf0edAc6f37da032、create2 で全チェーン共通)に delegation を設定します。

3. テストネットで先に検証

本番チェーン(base / polygon 等)での delegation はガス代が発生します。base-sepolia / polygon-amoy で挙動確認してから本番に適用してください。

4. value の単位

delegate コマンド自体は value transfer を伴わないため --value は受け付けません。gasless 送金で value を送る場合は kova call --value <ETH 単位> を使ってください。

関連コマンド

  • send--gasless でガスレス送金(delegation が前提)
  • call--gasless でガスレスコントラクト呼び出し
  • sign — トランザクション署名のみ
  • status — 全体の認証経路と policy enforcement を確認

関連項目

Last updated on