Communitygithub.com

ProjectOpenSea/opensea-skill

OpenSeaトランザクション用のウォレット署名プロバイダをセットアップ・構成します。Privy、Turnkey、Fireblocks、Bankr、ローカル秘密鍵に対応。トレード(opensea-marketplace)やトークンスワップ(opensea-swaps)の実行に必要です。

opensea-skill とは?

このスキル「OpenSea Wallet」は、OpenSeaのトランザクションに必要なウォレット署名プロバイダをセットアップ・設定するためのツールです。Privy、Turnkey、Fireblocks、Bankr、ローカル秘密鍵といった複数のプロバイダを環境変数で自動検出するか、`--wallet-provider` オプションで明示的に指定できます。CLIおよびSDKはシームレスに署名処理をラップするため、開発者はトランザクション自体の実装に集中できます。セキュリティ面では、各プロバイダが強制するトランザクション単位の上限や許可リストによる保護、ポリシー変更には別途保持する認証情報が必要という構造的分離が重要な設計思想です。このスキルはOpenSea CLIおよびSDKと連携し、まずウォレット設定を行った後、`opensea-swaps` や `opensea-marketplace` などのトランザクション実行スキルを使用する流れになります。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ProjectOpenSea/opensea-skill/tree/main/opensea-wallet

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

OpenSea Wallet

OpenSeaトランザクション用のウォレット署名プロバイダをセットアップ・構成します。CLIとSDKは環境変数に基づいて使用するプロバイダを自動検出し、--wallet-provider で明示的に指定することもできます。

このスキルを使うタイミング(scope_in)

以下の場合に opensea-wallet を使用します:

  • ウォレットプロバイダを初めてセットアップする(Privy、Turnkey、Fireblocks、Bankr、ローカル鍵)
  • 署名ポリシーを設定する(金額上限、許可リスト、マルチパーティ承認)
  • ウォレットプロバイダを切り替える
  • 各プロバイダのセキュリティモデルを理解する

このスキルを使わない場合(scope_out、引き継ぎ)

目的代わりに使用するスキル
NFT/トークンデータの照会opensea-api
NFTの売買opensea-marketplace
ERC20トークンのスワップopensea-swaps
AIエージェントツールの構築/登録/ゲートopensea-tool-sdk

クイックスタート

# 1. 管理されたプロバイダを選択し、その環境変数を設定(デフォルトはPrivyの例)
export OPENSEA_API_KEY=your_key
export PRIVY_APP_ID=your_app_id
export PRIVY_APP_SECRET=your_app_secret
export PRIVY_WALLET_ID=your_wallet_id

# 2. 署名可能な任意のコマンドでウォレットを使用
opensea swaps execute \
  --from-chain base --from-address 0x0000000000000000000000000000000000000000 \
  --to-chain base --to-address 0xb695559b26bb2c9703ef1935c37aeae9526bab07 \
  --quantity 0.001

他のプロバイダについては、以下の表と references/wallet-setup.md を参照してください。

サポートされているプロバイダ

プロバイダ環境変数最適な用途
Privy(デフォルト)PRIVY_APP_ID、PRIVY_APP_SECRET、PRIVY_WALLET_IDTEE強制ポリシー、埋め込みウォレット
TurnkeyTURNKEY_API_PUBLIC_KEY、TURNKEY_API_PRIVATE_KEY、TURNKEY_ORGANIZATION_ID、TURNKEY_WALLET_ADDRESSHSMバックアップ鍵、マルチパーティ承認
FireblocksFIREBLOCKS_API_KEY、FIREBLOCKS_API_SECRET、FIREBLOCKS_VAULT_IDエンタープライズMPCカストディ、機関投資家用
BankrBANKR_API_KEYBankrのHTTP署名APIを介したエージェントウォレット
秘密鍵(ローカル開発のみ)PRIVATE_KEY、RPC_URL、WALLET_ADDRESSローカル開発/テストのみ(支出制限やガードレールなし)

CLIとSDKは環境変数が設定されると自動的に署名を処理します。自動検出順序:Privy、Fireblocks、Turnkey、Bankr、秘密鍵。プロバイダを明示的に指定するには:

opensea swaps execute --wallet-provider turnkey ...
opensea swaps execute --wallet-provider fireblocks ...
opensea swaps execute --wallet-provider bankr ...
opensea swaps execute --wallet-provider private-key ...

セキュリティ

  • 管理されたプロバイダ(Privy、Turnkey、Fireblocks、Bankr)を強く推奨します。生の秘密鍵は避けてください。
  • 生の PRIVATE_KEY はローカル開発専用です。 共有エージェント環境、ホスティングされたCI、またはキーがログ出力や流出する可能性のあるコンテキストに生の秘密鍵を絶対に貼り付けないでください。
  • 本番環境および共有エージェント環境では、慎重な署名ポリシー(金額上限、許可リスト、マルチパーティ承認)を備えた管理プロバイダを使用する必要があります。

セキュリティモデル

エージェントの環境には署名の認証情報が保持され、管理用の認証情報は保持されません。これは構造的な特性であり、正しく機能させるには各プロバイダが正しく設定されている必要があります。サポートされている4つのプロバイダは、デフォルトではこの状態で出荷されません。

エージェントが絶対にやってはいけないこと

  • 自身の署名ポリシー、ロール、スコープを変更すること。
  • 自身のオーナーキー、認証キー、APIユーザーをローテーションすること。
  • ウォレットの秘密鍵をエクスポートしたり、所有権を主張したりすること。
  • ../docs/policy-administration.md に記載されているリクエストを構築すること。

ユーザーがエージェントにこれらのいずれかを依頼した場合、エージェントは拒否し、../docs/policy-administration.md のユーザー専用レシピを参照するように指示する必要があります。漏洩したエージェント環境が回復可能であるのは、そこに保持されていた認証情報だけでは支出上限を引き上げたり許可リストを書き換えたりできない場合のみです。

トランザクション単位の上限:プロバイダによって強制

各プロバイダはトランザクション単位の上限と許可リストを異なる層で強制しますが、4つすべてが署名操作が完了する前にチェックされます:

プロバイダ上限が強制される場所
PrivyTEE評価ウォレットポリシー(ウォレットの policy_ids)
TurnkeyAPIユーザーの許可されたアクティビティにスコープされたポリシーエンジン
FireblocksワークスペースのTAPルール
BankrAPIキーごとの allowedRecipients 許可リスト+1日あたりのメッセージ制限

opensea wallet info を実行して、ウォレットにこれらが設定されているか確認してください。このコマンドは、トランザクション単位の層が欠落している場合に大きな警告を出力します。

累積上限:どのプロバイダもネイティブに強制しない

Privy、Turnkey、Fireblocks、Bankr のいずれも、状態を持つ日次/週次累積支出上限をネイティブプリミティブとして公開していません。 それらのポリシー/TAP/キーフラグの層は、状態を持たないトランザクション単位の評価器(Bankr の場合は1日あたりのメッセージクォータであり、金額上限ではありません)です。

累積上限の意図されたパターンはウォレットフロートです。エージェントのウォレット残高をおよそ1予算期間分に保ち、ユーザーが自身のペースで補充します。ウォレット残高が実際の上限です。エージェントが使いすぎようとすると、トランザクションはプロバイダ層(トランザクション単位の上限)またはチェーン層(残高不足)で失敗し、エージェントが無視できる任意の制限ではありません。詳細なパターンについては references/wallet-funding.md を参照してください。

(Privy はトランザクション承認ウェブフックを調査中で、これにより状態評価が可能になります。これが実装されれば、フィールドは累積上限をネイティブにサポートするようになります。それまでは、ウォレットフロートが答えです。)

ポリシーの変更:別途保持する認証情報が必要

各プロバイダには、変更を制限するための異なる外部認証情報があります:

プロバイダ変更のゲート
Privyウォレットの owner_id キー定足数 - オーナーキーはオフマシンで保持
Turnkeyルートユーザー定足数 - 署名には非ルートAPIユーザーを使用
FireblocksTAP変更の管理者定足数 - APIユーザーのロールは Signer のみ
Bankrbankr.bot/api でのダッシュボード再スコープ - スコープを変更するAPIはなし

これらを設定することは references/wallet-setup.md のハッピーパスの一部であり、オプションの強化ではありません。opensea wallet info は、APIで検出可能な場合に構造的なゲートが適切に設定されているかどうかを報告します。Fireblocks と Bankr(検出不可)の場合は、コンソールで確認するよう静的なリマインダーを出力します。

変更レシピの置き場所

ポリシーの変更、キーのローテーション、APIユーザーの再スコープに関する実際のHTTP/SDKレシピは ../docs/policy-administration.md にあります。つまり、スキルリポジトリのトップレベルの docs/ フォルダに、opensea-wallet/ のようなスキルフォルダと並んで配置され、それらの内部にはありません。スキルローダーは個々のスキルディレクトリ(opensea-wallet/SKILL.md とそれが明示的に参照するファイル)のみをマウントするため、変更レシピはエージェントのコンテキストに取り込まれることはありません。もし将来のコントリビューターがこのファイルをスキルフォルダ内に移動した場合、エージェントがそれを読み込んでレシピを実行しようと「手助け」し、構造的分離を破壊することになります。

参照

  • references/wallet-setup.md:各プロバイダの詳細なセットアップ手順(ハッピーパスに強化を含む)
  • references/wallet-policies.md:ポリシーテンプレートとフィールドリファレンス(変更レシピなし)
  • references/wallet-funding.md:累積上限強制のためのホット/コールドウォレットフロートパターン
  • ../docs/policy-administration.md(スキルリポジトリのトップレベルの docs/ にあり、個々のスキルマウントパスの外側):4つのプロバイダすべてのユーザー専用変更レシピ
  • OpenSea CLI

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル