-
9ecf704: Provider-aware wallet hardening across Privy, Turnkey, Fireblocks, and Bankr.
@opensea/wallet-adapters- New
WalletInfodiscriminated union exported. - New optional
getWalletInfo()method onWalletAdapter(implemented by all four managed providers). - Privy adapter: optional
PRIVY_AUTH_SIGNING_KEYenv var enablesprivy-authorization-signatureheader on/rpcrequests via@privy-io/node(added as optional peer dependency), supporting theowner_id+additional_signerhardening pattern. - Privy adapter:
personal_signnow sendsparams.encoding("utf-8" / "hex") to satisfy Privy's RPC schema (was previously omitting this and getting 400s on owner-gated wallets). - Privy adapter: 401 errors with
Invalid app ID or app secretbody now include aprintf %shint for theechovsecho -ndebugging dead-end. - Top-of-file security-model docstrings on all four adapters declaring signing-only intent and forbidding mutation surfaces.
@opensea/cli- New
opensea walletcommand group with three subcommands:wallet info— provider-aware posture readout, hardening warnings to stderr, structured info to stdout.wallet create— Privy-only,POST /v1/wallets. Optional--owner-public-keyregisters anowner_idat create time. Narrow mutation surface: creates new resources only.wallet generate-auth-key— pure-local P-256 keypair generation, no API calls.
- New
- Updated dependencies [9ecf704]
- @opensea/wallet-adapters@0.3.0
- 16f4b7e: Re-export
BankrAdapterandBankrConfigfrom@opensea/wallet-adapters. Theswaps executecommand description now lists Bankr alongside Privy, Turnkey, and Fireblocks.createWalletFromEnv()already auto-detects Bankr whenBANKR_API_KEYis set; this just makes the named adapter directly importable from@opensea/cli. - Updated dependencies [a81071b]
- @opensea/wallet-adapters@0.2.0
-
961f2c5: fix(api): consume cross-chain fulfillment types from
@opensea/api-typesThe cross-chain fulfillment types added in the previous release were hand-rolled in
packages/sdk/src/api/types.tsandpackages/cli/src/types/api.tsrather than generated from the OpenAPI spec. This release pulls them from@opensea/api-types(the source of truth) so future spec changes flow through automatically.@opensea/api-types: Adds named exports forCrossChainFulfillmentRequest,CrossChainFulfillmentResponse,CrossChainPaymentToken,FulfillerObject, andListingObjectschemas (regenerated from the production OpenAPI spec).@opensea/sdk(type rename — minimal-impact since the prior release shipped <1 day ago):CrossChainListing→ListingObjectCrossChainFulfillmentDataRequest→CrossChainFulfillmentRequestCrossChainFulfillmentDataResponse→CrossChainFulfillmentResponseCrossChainTransaction→SwapTransactionResponse
The runtime call signature on
BaseOpenSeaSDK.getCrossChainFulfillmentData()is unchanged.@opensea/cli(type rename — same minimal impact):CrossChainFulfillmentTransaction→SwapTransactionResponseCrossChainFulfillmentDataResponse→CrossChainFulfillmentResponse
Adds a new blocking CI check (
pnpm check-api-paths) that fails when an/api/v2/...URL referenced in SDK or CLI source is not present inpackages/api-types/opensea-api.json. AGENTS docs updated to make the api-types-first flow explicit for new endpoints. -
Updated dependencies [961f2c5]
- @opensea/api-types@0.2.3
-
fc44d9f: feat: add cross-chain fulfillment support
Add support for the new
POST /api/v2/listings/cross_chain_fulfillment_dataendpoint across SDK, CLI, and skill packages.SDK: New
getCrossChainFulfillmentData()method on both the API client and the base SDK class. Accepts listings, fulfiller, payment token (chain + address), and optional recipient. Returns ordered transactions to sign and submit.CLI: New
listings cross-chain-fulfillsubcommand with--hashes,--listing-chain,--protocol-address,--fulfiller,--payment-chain,--payment-token, and optional--recipientflags. Supports sweeping multiple listings via comma-separated hashes.Skill: New
opensea-cross-chain-fulfill.shscript and updated SKILL.md with cross-chain buying workflow documentation.
- d247639: Replace duplicated wallet adapter implementations with
@opensea/wallet-adapterspackage. All adapter code (Privy, Turnkey, Fireblocks, PrivateKey) now comes from the shared package, reducing ~1200 lines of duplicated code. The CLI re-exports all wallet types and adapters from@opensea/wallet-adaptersalongside the CLI-specific chain resolution utilities (CHAIN_IDS,resolveChainId).
- 4a76bc1: Add
--traits <json>flag tonfts list-by-collection,listings best, andevents by-collectionfor server-side trait filtering. Accepts a JSON-encoded array of{ traitType, value }filters; multiple entries are AND-combined. Programmatic SDK methods (client.nfts.listByCollection,client.listings.best,client.events.byCollection) accept a structuredTraitFilter[]array.
-
bc9c6ce: Add token-groups and instant API key endpoints.
SDK:
sdk.api.getTokenGroups({ limit?, cursor? })andsdk.api.getTokenGroup(slug)for the new/api/v2/token-groupsendpoints.OpenSeaSDK.requestInstantApiKey()andOpenSeaAPI.requestInstantApiKey()— static methods that callPOST /api/v2/auth/keyswithout authentication and return a free-tier key you can pass into the SDK constructor. Rate limited to 3 keys/hour per IP; keys expire after 30 days.OpenSeaAPIclass is now exported from the package root (@opensea/sdkand@opensea/sdk/viem).
CLI:
- New
opensea token-groups listandopensea token-groups get <slug>commands. - New
opensea auth request-keycommand — works without--api-key/OPENSEA_API_KEYsince the endpoint is unauthenticated.
- Updated dependencies [5b6ba13]
- @opensea/api-types@0.2.1
- 497b636: Add missing API wrapper methods for full OpenAPI spec coverage:
getNFTCollection()— get the collection an NFT belongs togetNFTMetadata()— get raw NFT metadata (name, description, image, traits)- Expose
fulfillPrivateOrder()as a public method onOpenSeaSDK
- 6bb30d7: Fix
--versionto report correct version; auto-convert decimal quantities in swap commands
-
b3a5e84: Add drops endpoints, trending/top collections, and account resolve
- api-types: Sync OpenAPI spec with 6 new endpoints and 8 new schemas (drops, trending/top collections, account resolve)
- SDK: New DropsAPI class, extended CollectionsAPI and AccountsAPI with new methods
- CLI: New
dropscommand,collections trending/topsubcommands,accounts resolvesubcommand
-
f82c035: Replace hardcoded chain ID maps with codegen from OpenSea REST API
- SDK: Fix Blast chain ID from 238 (testnet) to 81457 (mainnet)
- CLI: Add chains previously only in SDK (b3, flow, ronin, etc.)
- CLI: Remove
bsc,sepolia,base_sepolia,monad_testnetfromCHAIN_IDS— these are not in the OpenSea API - Add
pnpm sync-chainscodegen script (fetches GET /api/v2/chains as source of truth)
-
Updated dependencies [b3a5e84]
- @opensea/api-types@0.2.0