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_ID | TEE強制ポリシー、埋め込みウォレット |
| Turnkey | TURNKEY_API_PUBLIC_KEY、TURNKEY_API_PRIVATE_KEY、TURNKEY_ORGANIZATION_ID、TURNKEY_WALLET_ADDRESS | HSMバックアップ鍵、マルチパーティ承認 |
| Fireblocks | FIREBLOCKS_API_KEY、FIREBLOCKS_API_SECRET、FIREBLOCKS_VAULT_ID | エンタープライズMPCカストディ、機関投資家用 |
| Bankr | BANKR_API_KEY | Bankrの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つすべてが署名操作が完了する前にチェックされます:
| プロバイダ | 上限が強制される場所 |
|---|---|
| Privy | TEE評価ウォレットポリシー(ウォレットの policy_ids) |
| Turnkey | APIユーザーの許可されたアクティビティにスコープされたポリシーエンジン |
| Fireblocks | ワークスペースのTAPルール |
| Bankr | APIキーごとの allowedRecipients 許可リスト+1日あたりのメッセージ制限 |
opensea wallet info を実行して、ウォレットにこれらが設定されているか確認してください。このコマンドは、トランザクション単位の層が欠落している場合に大きな警告を出力します。
累積上限:どのプロバイダもネイティブに強制しない
Privy、Turnkey、Fireblocks、Bankr のいずれも、状態を持つ日次/週次累積支出上限をネイティブプリミティブとして公開していません。 それらのポリシー/TAP/キーフラグの層は、状態を持たないトランザクション単位の評価器(Bankr の場合は1日あたりのメッセージクォータであり、金額上限ではありません)です。
累積上限の意図されたパターンはウォレットフロートです。エージェントのウォレット残高をおよそ1予算期間分に保ち、ユーザーが自身のペースで補充します。ウォレット残高が実際の上限です。エージェントが使いすぎようとすると、トランザクションはプロバイダ層(トランザクション単位の上限)またはチェーン層(残高不足)で失敗し、エージェントが無視できる任意の制限ではありません。詳細なパターンについては references/wallet-funding.md を参照してください。
(Privy はトランザクション承認ウェブフックを調査中で、これにより状態評価が可能になります。これが実装されれば、フィールドは累積上限をネイティブにサポートするようになります。それまでは、ウォレットフロートが答えです。)
ポリシーの変更:別途保持する認証情報が必要
各プロバイダには、変更を制限するための異なる外部認証情報があります:
| プロバイダ | 変更のゲート |
|---|---|
| Privy | ウォレットの owner_id キー定足数 - オーナーキーはオフマシンで保持 |
| Turnkey | ルートユーザー定足数 - 署名には非ルートAPIユーザーを使用 |
| Fireblocks | TAP変更の管理者定足数 - APIユーザーのロールは Signer のみ |
| Bankr | bankr.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