openfort-cli について
openfort-cli は、Openfort のブロックチェーンウォレット基盤を扱うコマンドラインスキルガイドです。バックエンドウォレットを中心に、アカウント、ガススポンサー、トランザクション、Solana の手順を説明します。
主な機能
- 01バックエンドウォレットの署名鍵を設定
- 02EVM と Solana のアカウントを管理
- 03ガスレスを含むトランザクションを送信
- 04ポリシーとスポンサー設定を管理
- 05セッションと Webhook 購読を管理
- 06テストネットとメインネットの認証情報を区別
活用シーン
- 01アプリ用のバックエンドウォレットを作成
- 02スポンサー付き EVM トランザクションを設定
- 03Solana で SOL やトークンを転送
- 04トランザクションイベントの Webhook を設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openfort-xyz/ agent-skills --skill openfort-cliインストール後、Claude Code で/openfort-cliを入力して読み込まれたか確認します。
詳細
Openfort CLI
⚠️ テストキーとライブキーについて。
openfort loginは単一のモードで認証します。テストキー(pk_test_…/sk_test_…)はテストネットで動作し、ライブキー(pk_live_…/sk_live_…)は実際の資金を扱うメインネットで動作します。この2つの環境は分離されており、一方で作成したアカウントをもう一方で使用することはできません。
- テスト(開発)キーでログイン中に作成したウォレットはテストネットにしか存在せず、本番用の資金を決して保有してはいけません。
- 本番環境では、ライブキーで再認証して新しいウォレットを作成してください。テスト用ウォレットを再利用しないでください。 https://openfort.io/docs/configuration/api-keys を参照してください。
Openfort を利用するユーザーを支援します。Openfort は、EVM および Solana チェーン向けに、埋め込みウォレット、グローバルウォレット、バックエンドウォレット、オンチェーンインフラストラクチャ(バンドラー+ペイマスター)を提供するブロックチェーンウォレットインフラストラクチャプラットフォームです。
このガイドでは、概念モデルとワークフローに関する知識を説明します。個別の CLI コマンドを実行するには、該当する openfort-* スキル(例:/openfort-accounts-evm、/openfort-policies-create)に委任してください。
基本概念
ウォレットの種類
Openfort では、3 種類のウォレット製品を提供しています。
| ウォレットの種類 | 管理者 | 用途 |
|---|---|---|
| 埋め込みウォレット | エンドユーザー(セルフカストディ) | コンシューマーアプリ、ゲーム — ユーザーはソーシャルログイン、パスキー、またはパスワードによる復旧機能を使って自分のキーを管理します |
| グローバルウォレット | エンドユーザー(アプリ間共通) | Ecosystem SDK を通じて複数のアプリで共有されるエコシステムウォレット |
| バックエンドウォレット | 開発者(サーバー側) | 自動化、AI エージェント、給与支払い、トレーディングボット — 開発者が API キーで署名します |
CLI では主にバックエンドウォレットを管理します。埋め込みウォレットとグローバルウォレットは SDK(React、React Native、Swift、Unity、JavaScript)を通じて管理します。
アカウントモデル(バックエンドウォレット)
アカウントモデルは3つの階層で構成されており、この階層を理解することが重要です。
EOA (Externally Owned Account)
└── created with: openfort accounts evm create
└── ID format: acc_...
└── A standard Ethereum key pair
Delegated Account (Smart Account via EIP-7702)
└── created with: openfort accounts evm update <eoa-id> --chainId <chain> --implementationType CaliburV9
└── Gets its own acc_... ID (different from the EOA)
└── Chain-specific — one delegation per chain
└── Enables account abstraction (gasless transactions)
└── On-chain delegation happens automatically on first transaction
Solana Account
└── created with: openfort accounts solana create
└── Separate key management from EVM
└── Supports SOL, USDC, and SPL token transfers
ガススポンサーシップの構成
ガス代無料のトランザクションを有効にするには、3つのリソースを設定する必要があります。
Policy (ply_...)
└── Defines WHAT is allowed (e.g., "sponsor EVM transactions on chain 84532")
└── Has rules with criteria (chain IDs, contract addresses, operation types)
Sponsorship (pol_...)
└── Links a Policy to a payment strategy
└── Strategies: pay_for_user, charge_custom_tokens, fixed_rate
└── Chain-specific
Transaction
└── References the Sponsorship ID via --policy pol_...
└── Gas fees are covered according to the sponsorship strategy
トランザクションのフロー
トランザクションを送信する方法は2つあります。
推奨:accounts evm send-transaction(1つのコマンドですべてを実行)
- EOA アカウント ID を受け取ります
- 対象チェーン上の委任アカウントを自動的に検索または作成します
- 必要に応じて EIP-7702 の認証に署名します(初回のトランザクション)
- トランザクションインテントを作成します
- 署名して送信します
上級者向け:手動フロー(きめ細かな制御が必要な場合)
- EOA を委任アカウントにアップグレードします:
accounts evm update - トランザクションインテントを作成します:
transactions create(署名可能なハッシュを返します) - ハッシュに署名します:
accounts evm sign - 署名を送信します:
transactions sign
よくあるワークフロー
初回セットアップ
openfort login— ブラウザーで認証しますopenfort backend-wallet setup— ECDSA P-256 署名キーを生成しますopenfort accounts evm create— 最初のウォレットを作成します
ガス代無料のトランザクションを送信(エンドツーエンド)
- ウォレットを作成します:
openfort accounts evm create - 対象のコントラクトを登録します:
openfort contracts create --name "..." --address 0x... --chainId <chain> - ポリシーを作成します:
openfort policies create --scope project --rules '[{"action":"accept","operation":"sponsorEvmTransaction","criteria":[{"type":"evmNetwork","operator":"in","chainIds":[<chain>]}]}]' - スポンサーシップを作成します:
openfort sponsorship create --policyId ply_... --strategy pay_for_user --name "..." --chainId <chain> - 送信します:
openfort accounts evm send-transaction acc_... --chainId <chain> --interactions '[{"to":"0x...","data":"0x...","value":"0"}]' --policy pol_... - 確認します:
openfort transactions get <tin_id>
Solana トークンの送金
- ウォレットを作成します:
openfort accounts solana create - SOL を送金します:
openfort accounts solana transfer <id> --to <address> --amount <lamports> --cluster devnet - USDC を送金します:
openfort accounts solana transfer <id> --to <address> --amount <amount> --token usdc --cluster mainnet-beta - 任意の SPL トークンを送金します:
openfort accounts solana transfer <id> --to <address> --amount <amount> --token <mint-address>
Webhook の設定
- サブスクリプションを作成します:
openfort subscriptions create --topic transaction_intent.successful --triggers '[{"type":"webhook","target":"https://..."}]' - 利用可能なトピック:
transaction_intent.broadcast、transaction_intent.successful、transaction_intent.cancelled、transaction_intent.failed、balance.project、balance.contract、balance.dev_account、user.created、user.updated、user.deleted、account.created、solana_transaction.broadcast、solana_transaction.successful、solana_transaction.failed、funding.session.updated、transaction.submitted、transaction.succeeded、transaction.failed、test
セッションキー(委任署名)
セッションキーを使うと、ユーザーは確認を繰り返すことなく、限られた時間内にトランザクションを承認できます。
- 作成します:
openfort sessions create --address 0x... --chainId <chain> --validAfter <unix> --validUntil <unix> --player pla_... --account acc_... - 署名します:
openfort sessions sign <id> --signature 0x... - 失効させます:
openfort sessions revoke --address 0x... --chainId <chain> --player pla_...
SDK の統合ポイント
埋め込み型ウォレットとグローバルウォレットでは、ユーザーは CLI ではなく SDK を使用します。
| プラットフォーム | SDK | 主な機能 |
|---|---|---|
| React | @openfort/openfort-react | フック:useEmailAuth、useOAuth、useEthereumEmbeddedWallet、useSolanaEmbeddedWallet |
| React Native | @openfort/openfort-react-native | パスキー/パスワードによる復旧に対応したモバイル向けフック |
| JavaScript | @openfort/openfort-js | Vanilla JS。Wagmi/Viem/Ethers と連携します |
| Swift | OpenfortSDK | Apple Sign-In とパスキーに対応したネイティブ iOS |
| Unity | OpenfortSDK | クロスプラットフォームのゲーム統合 |
| Global Wallet | @openfort/ecosystem-js | アプリをまたいで使えるウォレット向けのエコシステム SDK |
認証方法(埋め込み型ウォレット)
- メールアドレス+パスワード
- メール OTP(パスワード不要)
- 電話番号 OTP(SMS)
- ソーシャル OAuth(Google、Apple、Discord、Twitter、Facebook、LINE)
- ゲストモード(登録前に試用)
- 外部ウォレット(SIWE)
- サードパーティープロバイダー(Firebase、Supabase、Better-Auth、AccelByte、PlayFab、LootLocker)
復旧方法(埋め込み型ウォレット)
- 自動 — 最も簡単な方法です。Openfort が復旧を管理します
- パスワード — ユーザーが復旧用パスワードを設定します
- パスキー — WebAuthn による生体認証で保護されます
対応チェーン
Openfort は複数の EVM チェーンと Solana に対応しています。一般的なチェーン ID:
- Ethereum Mainnet:1
- Polygon:137
- Base:8453
- Base Sepolia(テストネット):84532
- Arbitrum:42161
- Optimism:10
- Solana:
--cluster mainnet-betaまたは--cluster devnetを使用します
ID の形式
ID のプレフィックスを理解すると、システム内を把握しやすくなります。
acc_— アカウント(ウォレット)ply_— ポリシーpol_— スポンサーシップ(手数料ポリシー)con_— コントラクトtin_— トランザクションインテントpla_— プレイヤー(ユーザー)pro_— プロジェクトses_— セッションsub_— サブスクリプション
設定
認証情報
~/.config/openfort/credentials(または $XDG_CONFIG_HOME/openfort/credentials)に保存されます。
環境変数
| 変数 | 説明 |
|---|---|
OPENFORT_SECRET_KEY | シークレット API キー |
OPENFORT_WALLET_SECRET | ウォレット暗号化シークレット |
OPENFORT_PUBLISHABLE_KEY | クライアント側で使用する公開可能キー |
OPENFORT_BASE_URL | カスタム API ベース URL |
CLI のグローバルオプション
--format <toon|json|yaml|md|jsonl>、--filter-output <keys>、--verbose、--schema
ドキュメントリファレンス
特定のトピックに関する詳細なドキュメントについては、ユーザーに以下を案内してください。
- 埋め込みウォレット:https://openfort.xyz/docs/products/embedded-wallet/
- グローバルウォレット:https://openfort.xyz/docs/products/cross-app-wallet/
- バックエンドウォレット:https://openfort.xyz/docs/products/server/
- インフラストラクチャ(バンドラー/ペイマスター):https://openfort.xyz/docs/products/infrastructure/
- 設定:https://openfort.xyz/docs/configuration/
- レシピ(サンプルアプリ):https://openfort.xyz/docs/recipes/
- ポリシー:https://openfort.xyz/docs/configuration/policies/
- ガススポンサーシップ:https://openfort.xyz/docs/configuration/gas-sponsorship
レシピとサンプルアプリ
特定の連携を構築する際は、ユーザーに以下を案内してください。
- EIP-7702:埋め込みウォレットとアカウント委任を使用した Next.js
- Aave:埋め込みウォレットを使用した DeFi の貸し借り
- Hyperliquid:バックエンドウォレットを使用した取引(パーペチュアル、現物、HyperEVM)
- LI.FI:埋め込みウォレットを使用したクロスチェーンスワップ
- Morpho:埋め込みウォレットを使用した Base での USDC 利回り
- Solana:Kora による SOL の送金とガスレス取引
- USDC:React Native によるステーブルコイン決済
- x402:HTTP ベースの USDC マイクロペイメント
- エージェント権限:セッションキーを使用した委任型 DCA 取引