OpenSea 錢包
為 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,或任何金鑰可能被記錄或外洩的環境。 - 正式環境與共用代理設定必須使用託管提供者,並搭配保守的簽署政策(價值上限、允許清單、多方核准)。
安全模型
代理環境持有的是簽署憑證,而非管理憑證。這是一個結構性屬性,要正確落實取決於每個提供者是否已正確設定——四個支援的提供者出廠時預設皆未達到此狀態。
代理絕對不能做的事
- 修改自己的簽署政策、角色或範圍。
- 輪替自己的所有者金鑰、驗證金鑰或 API 使用者。
- 匯出或聲稱擁有錢包私鑰。
- 建構
../docs/policy-administration.md中的任何請求。
如果使用者要求代理執行上述任何操作,代理應拒絕並引導使用者參閱 ../docs/policy-administration.md 中的使用者專用食譜。洩漏的代理環境只有在其中持有的憑證本身無法提高支出上限或重寫允許清單時,才能夠復原。
逐筆交易上限:由提供者強制執行
每個提供者在不同層級強制執行逐筆交易上限與允許清單,但所有四個提供者都會在簽署操作完成前進行檢查:
| 提供者 | 上限在哪裡強制執行 |
|---|---|
| Privy | TEE 評估的錢包政策(錢包上的 policy_ids) |
| Turnkey | 政策引擎,範圍限定於 API 使用者允許的活動 |
| Fireblocks | 工作區中的 TAP 規則 |
| Bankr | 每個 API 金鑰的 allowedRecipients 允許清單 + 每日訊息限制 |
執行 opensea wallet info 查看您的錢包是否已設定這些規則。當逐筆交易層級缺失時,該命令會顯示明顯的警告。
累計上限:任何提供者均未原生強制執行
Privy、Turnkey、Fireblocks 或 Bankr 均未將有狀態的每日/每週累計支出上限作為原生功能公開。 它們的政策/TAP/金鑰旗標層級是無狀態的逐筆交易評估器(或 Bankr 的情況是每則訊息配額,而非美元上限)。
累計上限的預期模式是錢包浮動:將代理錢包的餘額維持在大約一個預算週期的規模,並讓使用者自行依其節奏補充。錢包餘額就是真正的上限;如果代理試圖超支,交易會在提供者層級(逐筆交易上限)或鏈層級(餘額不足)失敗,而不會是代理可以自行決定忽略的榮譽制度限制。請參閱 references/wallet-funding.md 了解完整的工作模式。
(Privy 正在研究交易核准 Webhook,以允許有狀態評估;如果此功能上線,該領域將原生支援累計上限。在此之前,錢包浮動是解決方案。)
政策變更:需要單獨持有的憑證
每個提供者都有不同的帶外憑證來管制變更:
| 提供者 | 變更閘門 |
|---|---|
| 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/,在任何個別技能掛載路徑之外):四個提供者專屬的使用者變更食譜- OpenSea CLI