createos-deploy について
ウォレット認証による HTTP フローで CreateOS ゲートウェイにプロジェクトをデプロイするスキルです。ネイティブ MPP と任意の x402 決済を扱い、ポートや決済方法、デプロイ状態の確認を重視します。
主な機能
- 01ウォレット認証によるデプロイ手順
- 02ネイティブ MPP と x402 決済への対応
- 03デプロイ前のプロジェクトとポート確認
- 04デプロイ状態の監視とエンドポイント検証
- 05決済再試行と削除の安全策
活用シーン
- 01ローカルプロジェクトの CreateOS へのデプロイ
- 02決済条件の確認と承認済みチェーンの選択
- 03ready または failed までデプロイを監視
- 04ポート設定やプロジェクト名の競合の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nodeops-app/ skills --skill createos-deployインストール後、Claude Code で/createos-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignorepackage.jsonagents/openai.yamlreferences/api.mdscripts/deploy.mjs詳細
CreateOS にデプロイする
ゲートウェイのウォレット認証 HTTP フローを使用します。ブラウザーセッションや OAuth は不要です。
デフォルトのゲートウェイ:https://mpp-createos.nodeops.network
支払いの再試行時にもデプロイする本文を正確に保持し、アップロードからシークレットを除外し、新しい認証 nonce を使い、最終エンドポイントを検証するため、同梱スクリプトの使用をおすすめします。
cd path/to/createos-deploy
bun install
# Inspect the 402 and stop before signing a payment.
bun run deploy -- --dir /path/to/project --name my-app --port 3000
# Pay the selected native MPP offer and deploy.
bun run deploy -- --dir /path/to/project --name my-app --port 3000 --chain arbitrum --yes
# Select x402 instead. It must be advertised by the gateway for that chain.
bun run deploy -- --dir /path/to/project --name my-app --port 3000 --chain bsc --protocol x402 --yes
PRIVATE_KEY はプロセス環境、またはこのスキルと同じディレクトリにある .env で指定してください。アップロードするプロジェクトには絶対に含めないでください。別のゲートウェイをテストするには、CREATEOS_GATEWAY を設定してください。
安全上の境界
- デプロイ前にアプリケーションのソースを調べ、実際のリスニングポートを特定してください。古いデプロイメタデータを信用しないでください。
- プロジェクト名はウォレットごとではなく、プラットフォーム全体で一意である必要があります。名前には必ずランダムなサフィックスを付けてください。同梱スクリプトは自動で付加します。
GET /agent/projectsに表示されるのは自分のプロジェクトだけなので、別のアカウントが使用している名前は検出できません。 POST /agent/deployでの5xxは、通常ゲートウェイの障害ではなく、この名前の衝突が原因です。まず名前の競合として扱い、新しいサフィックスで再試行してください。別のアカウントが使用している名前に対して、ゲートウェイは409を返しません。- ウォレットに未使用のクレジットが十分ある場合、最初の
POST /agent/deployですぐにデプロイされることがあります。見積もりのみのモードでは新たな支払いを防げますが、API に個別の見積もりエンドポイントがないため、クレジットによるこの動作は防げません。 --yesを指定しない場合は、選択したプロトコル、ネットワーク、送金先、USDC の金額を提示した時点で停止してください。- 実行時の
402ヘッダーを正としてください。検出メタデータにあるデフォルトの支払いチェーンをハードコードしないでください。 Authorization: Payment ...とPAYMENT-SIGNATUREの両方を送信しないでください。- 支払い認証情報を送信した後、エラーから復旧するためだけに別の認証情報を作成して送信しないでください。利用できる場合は、レシートまたはチャレンジとトランザクション参照を提示してください。クレジットがすでに付与されている可能性がある場合、支払いヘッダーなしで再試行するのは安全です。
- プロジェクトを削除する直前に、必ずユーザーに確認してください。削除は取り消せません。
支払いの動作
デフォルトのプロトコルはネイティブ MPP です。
- Base、Arbitrum、Arbitrum Sepolia では、EIP-3009 の USDC 承認を使用します。エージェントが承認に署名し、ゲートウェイのセトラーがブロードキャストしてガス代を支払います。
- BSC では、Binance B402 Permit2 Exact を使用します。ウォレットが USDC の支払い先として正規の Permit2 を承認していれば、ガスレスで支払えます。スクリプトは現在の支払い額と同額の上限付き承認を使用します。承認自体には BNB のガス代が必要です。
x402 はオプションです。
- チェーンが
PAYMENT-REQUIRED.acceptsに含まれている場合に限り、x402 で支払い可能です。 - Base および Arbitrum 系の x402 オファーでは、EIP-3009 を使用します。
- BSC の x402 では、Binance B402 Permit2 Exact を使用します。
- x402 の
amountは、トークンの最小単位で表した値です。ワイヤースキーマにはdecimalsが含まれないため、信頼できるローカルのアセットメタデータを使用してください。
ゲートウェイは現在、サポート対象のすべてのチェーンで USDC を扱っています。既知のチェーン ID と、既知の正確なトークンコントラクトのみを必ず受け入れてください。
デプロイのワークフロー
- プロジェクトを確認して
portを特定し、デプロイリクエストを送信する前にプロジェクト名を検証します。一意の名前にはランダムなサフィックスを付け、クリーンな名前は表示名として保持します。 GET /agent/projectsを使用して既存の名前を検出し、共有クレジットによってランタイムに影響を受ける可能性のあるアクティブなプロジェクトを表示します。この確認で対象となるのはご自身のウォレットのみなので、サフィックスは必須です。- 新しいウォレット認証ヘッダーを付け、支払い認証情報を付けずに
POST /agent/deployを送信します。 200が返された場合、クレジットを使用したデプロイはすでに開始されています。402が返された場合は、ネイティブ MPP についてはWWW-Authenticateを、x402 についてはPAYMENT-REQUIREDを確認します。ユーザーが承認したプロトコルと、十分な USDC がある広告対象のチェーンのみを選択します。- 認証情報を1つ作成し、同一のボディを
AuthorizationまたはPAYMENT-SIGNATUREのいずれかを付けて再送信します。 - エラー報告では
Payment-ReceiptとPAYMENT-RESPONSEの値を保持します。 - 新しい認証 nonce を毎回使用し、所有するデプロイを5秒ごとにポーリングして、
readyまたはfailedになるまで待ちます。 - エンドポイントを取得する前に待機します。
readyはプラットフォームのステータスであり、コンテナーのステータスではありません。アプリは引き続き起動してポートにバインドする必要があるため、最初のプローブでは通常404が返るか、接続が拒否されます。最大2分間、10秒ごとにプローブし、その後にのみポートを判定します。ウィンドウ全体を通して404が続く場合は、アプリが/で実際に返している応答の可能性があります。まったく応答がない場合は、--portの指定が誤っていると考えられます。
同梱スクリプトを使わずにフローを実装する場合や、ゲートウェイの応答を診断する場合は、references/api.md をお読みください。
コメント
Markdown 対応