mcpField
O
openfort-cli

openfort-cli

github.com/openfort-xyzその他249 回インストール5 週間前に更新
リポジトリ

openfort-cli について

openfort-cli は、Openfort のブロックチェーンウォレット基盤を扱うコマンドラインスキルガイドです。バックエンドウォレットを中心に、アカウント、ガススポンサー、トランザクション、Solana の手順を説明します。

主な機能

  1. 01バックエンドウォレットの署名鍵を設定
  2. 02EVM と Solana のアカウントを管理
  3. 03ガスレスを含むトランザクションを送信
  4. 04ポリシーとスポンサー設定を管理
  5. 05セッションと Webhook 購読を管理
  6. 06テストネットとメインネットの認証情報を区別

活用シーン

  1. 01アプリ用のバックエンドウォレットを作成
  2. 02スポンサー付き EVM トランザクションを設定
  3. 03Solana で SOL やトークンを転送
  4. 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つのコマンドですべてを実行)

  1. EOA アカウント ID を受け取ります
  2. 対象チェーン上の委任アカウントを自動的に検索または作成します
  3. 必要に応じて EIP-7702 の認証に署名します(初回のトランザクション)
  4. トランザクションインテントを作成します
  5. 署名して送信します

上級者向け:手動フロー(きめ細かな制御が必要な場合)

  1. EOA を委任アカウントにアップグレードします:accounts evm update
  2. トランザクションインテントを作成します:transactions create(署名可能なハッシュを返します)
  3. ハッシュに署名します:accounts evm sign
  4. 署名を送信します:transactions sign

よくあるワークフロー

初回セットアップ
  1. openfort login — ブラウザーで認証します
  2. openfort backend-wallet setup — ECDSA P-256 署名キーを生成します
  3. openfort accounts evm create — 最初のウォレットを作成します
ガス代無料のトランザクションを送信(エンドツーエンド)
  1. ウォレットを作成します:openfort accounts evm create
  2. 対象のコントラクトを登録します:openfort contracts create --name "..." --address 0x... --chainId <chain>
  3. ポリシーを作成します:openfort policies create --scope project --rules '[{"action":"accept","operation":"sponsorEvmTransaction","criteria":[{"type":"evmNetwork","operator":"in","chainIds":[<chain>]}]}]'
  4. スポンサーシップを作成します:openfort sponsorship create --policyId ply_... --strategy pay_for_user --name "..." --chainId <chain>
  5. 送信します:openfort accounts evm send-transaction acc_... --chainId <chain> --interactions '[{"to":"0x...","data":"0x...","value":"0"}]' --policy pol_...
  6. 確認します:openfort transactions get <tin_id>
Solana トークンの送金
  1. ウォレットを作成します:openfort accounts solana create
  2. SOL を送金します:openfort accounts solana transfer <id> --to <address> --amount <lamports> --cluster devnet
  3. USDC を送金します:openfort accounts solana transfer <id> --to <address> --amount <amount> --token usdc --cluster mainnet-beta
  4. 任意の SPL トークンを送金します:openfort accounts solana transfer <id> --to <address> --amount <amount> --token <mint-address>
Webhook の設定
  1. サブスクリプションを作成します:openfort subscriptions create --topic transaction_intent.successful --triggers '[{"type":"webhook","target":"https://..."}]'
  2. 利用可能なトピック: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
セッションキー(委任署名)

セッションキーを使うと、ユーザーは確認を繰り返すことなく、限られた時間内にトランザクションを承認できます。

  1. 作成します:openfort sessions create --address 0x... --chainId <chain> --validAfter <unix> --validUntil <unix> --player pla_... --account acc_...
  2. 署名します:openfort sessions sign <id> --signature 0x...
  3. 失効させます: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-jsVanilla JS。Wagmi/Viem/Ethers と連携します
SwiftOpenfortSDKApple Sign-In とパスキーに対応したネイティブ iOS
UnityOpenfortSDKクロスプラットフォームのゲーム統合
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

ドキュメントリファレンス

特定のトピックに関する詳細なドキュメントについては、ユーザーに以下を案内してください。

レシピとサンプルアプリ

特定の連携を構築する際は、ユーザーに以下を案内してください。

  • EIP-7702:埋め込みウォレットとアカウント委任を使用した Next.js
  • Aave:埋め込みウォレットを使用した DeFi の貸し借り
  • Hyperliquid:バックエンドウォレットを使用した取引(パーペチュアル、現物、HyperEVM)
  • LI.FI:埋め込みウォレットを使用したクロスチェーンスワップ
  • Morpho:埋め込みウォレットを使用した Base での USDC 利回り
  • Solana:Kora による SOL の送金とガスレス取引
  • USDC:React Native によるステーブルコイン決済
  • x402:HTTP ベースの USDC マイクロペイメント
  • エージェント権限:セッションキーを使用した委任型 DCA 取引

コメント