- b6abc18: Reject explicit empty OAuth scope lists to prevent the authorization server from expanding them to every account role.
- a410930: Request Zitadel's role-specific scopes so OAuth tokens are limited to the OpenSea scopes the client asked for.
- d10626b: Add an
opensea whoamicommand that displays the current wallet identity, scope source, and expiry, with unverified JWT diagnostics available through an explicit flag. Expose whether OAuth scopes came from the authorization-server response or a JWT fallback.
- d846160: Use the current OpenSea API endpoints for SIWE login, scoped-token exchange, refresh, revocation, and wallet-link nonces.
- b64a4d5: Require complete OAuth wallet sessions, retain refresh tokens during rotation, validate the CLI auth store, and preserve case-sensitive wallet addresses.
- 5966017: Keep the default SDK test suite offline by blocking unmocked network requests and running live API and RPC checks through the integration suite.
- 71ae9ee: Keep OAuth scope status aligned with the OpenAPI scope catalog when the token endpoint omits its
scopefield.
- df2b152: Add SIWX wallet-link helpers for nonce, message, and link flows.
- 4bef9a5: Add typed
api.walletAuthhelpers for all 29 scoped wallet operations.
- 2459068: Align wallet-auth scope metadata with the production OpenAPI specification.
- 0df96eb: Enable Seaport support for Robinhood chain. Canonical Seaport 1.6 is deployed on Robinhood (chain id 4663) and configured in the marketplace backend, so the payment-token helpers no longer throw for it: offers use WETH
0x0bd7d308f8e1639fab988df18a8011f41eacad73, listings use native ETH, and the chain uses the same default conduit as Abstract, HyperEVM, and Monad. - Updated dependencies [df2b152]
- Updated dependencies [2459068]
- Updated dependencies [4bef9a5]
- @opensea/api-types@0.8.0
- df2b152: Add public SIWX wallet-link support for agents: export nonce generation, message signing, and wallet-link verification helpers (
generateSiwxNonce,generateSiwxMessage, andverifyWalletLinkfunctions) fromsrc/auth/siwx.tsfor integrating keyless wallet-link flows in autonomous agent environments.
- 0df96eb: Enable Seaport support for Robinhood chain (4663): canonical Seaport 1.6 is now configured for Robinhood, enabling payment-token helpers and offer/listing generation. Robinhood uses WETH
0x0bd7d308f8e1639fab988df18a8011f41eacad73for offers, native ETH for listings, and the same default conduit as Abstract, HyperEVM, and Monad. - ba30caf: Fix
parseUnitsto correctly handle string inputs with scientific notation (e.g.,"1e-8","1E6"). Previously only number-type values were normalized, causing SyntaxError for string scientific notation. Fixes #1978. - Updated dependencies [df2b152]
- @opensea/api-types@0.7.0
- ef89be8: Add SIWE authentication helpers:
OpenSeaAuthclass with authenticate, getValidToken, and revoke methods. SupportauthTokenandauthBaseUrlinOpenSeaAPIConfigfor wallet-authenticated endpoints. - e61a57c: Add
OpenSeaOAuthOAuth 2.1 helper (authorization-code + PKCE, device authorization grant, refresh, and revoke) for keyless login against the OpenSea authorization server. ExposesOpenSeaOAuthConfig,OAuthToken, and related types, plus adecodeJwtPayloadutility for reading token claims. - ef89be8: Add
OPENSEA_SCOPES,OpenSeaScope, andALL_SCOPESexports — scope constants derived from the OpenAPI spec'sAuthScopeschema (via@opensea/api-types), with compile-time assertions that fail the build if they drift from the spec. - c460fc1: Add wallet trading P&L methods to
OpenSeaAPI:getWalletPnl,getWalletClosedPositions, andgetWalletTokenTransfers, with camelizedWalletPnlResponse,ClosedPositionsResponse, andPositionTokenTransfersResponsetypes plusWalletClosedPositionsArgs/WalletTokenTransfersArgsquery args.
- b816727: Add missing chain payment-token mappings for Soneium and AnimeChain, and make Solana/Hyperliquid fail fast with clear unsupported-chain errors for OpenSea Seaport offer/listing helpers. This fixes the chain helper drift tracked in #1975.
- c9d8cb1: Recreate the community fixes from #1974 and #1976: validate
amountbeforeparseUnitsin_getPriceParameters, and rejectcancelOrdersbatches that mix protocol addresses. Also add a runtime chain-helper exhaustiveness guard so newChainvalues are consciously categorized. - e59df7f: Sync OpenAPI spec: add tool activity endpoint,
robinhoodchain,source/collectionsearch filters,calldata_suffixon fulfillment, SIWX wallet-link endpoint (POST /api/v2/accounts/wallets/siwxwithLinkWalletSiwxRequest/WalletLinkResponse), re-publishedGET /api/v2/account/{address}/favorites, and the newwrite:walletsauth scope (also added to the SDK'sOPENSEA_SCOPES) - Updated dependencies [e59df7f]
- Updated dependencies [c460fc1]
- Updated dependencies [ef89be8]
- @opensea/api-types@0.6.0
- Updated dependencies
- @opensea/api-types@0.5.0
- fix: correct
GetSwapQuoteArgsto match the swap quote endpoint.getSwapQuotenow takes{ fromChain, fromAddress, toChain, toAddress, quantity, address, slippage?, recipient? }, matchingGET /api/v2/swap/quote(the previous{ tokenIn, tokenOut, amount, chain }shape did not map to the endpoint's query params).
-
8fa9fb5: Expose the new
token/{chain}/{address}/holdersandtoken/{chain}/{address}/liquidity-poolsendpoints across SDK, CLI, and skill.OpenSeaAPI.getTokenHolders(chain, address, args?)→TokenHoldersResponse— paginated holders (limit,cursor,sortBy: "QUANTITY",sortDirection) plus aggregate distribution health (STRONG | HEALTHY | CONCERNING | BAD).OpenSeaAPI.getTokenLiquidityPools(chain, address, args?)→TokenLiquidityPoolsResponse— pools with pool type, USD reserves, bonding-curve progress, graduation flag.- New type exports:
TokenHoldersResponse,TokenHoldersArgs,TokenLiquidityPoolsResponse,TokenLiquidityPoolsArgs. - New path helpers in
apiPaths.ts:getTokenHoldersPath,getTokenLiquidityPoolsPath.
opensea tokens holders <chain> <address> [--limit] [--next] [--sort-by] [--sort-direction]opensea tokens liquidity-pools <chain> <address> [--limit]- SDK class additions:
OpenSeaCLI.tokens.holders(...),OpenSeaCLI.tokens.liquidityPools(...). - New type re-exports:
TokenHoldersResponse,TokenLiquidityPoolsResponse.
tokens/opensea-token-holders.sh <chain> <address> [limit] [cursor] [sort_by] [sort_direction]tokens/opensea-token-liquidity-pools.sh <chain> <address> [limit]- Documentation: added rows to
SKILL.md(Investigation Scripts) andreferences/rest-api.md(Tokens).
Bumps consume
@opensea/api-types0.4.3 (released alongside, see the spec-sync PR for full schema details).
- Updated dependencies [96928f4]
- Updated dependencies [90702a7]
- @opensea/api-types@0.4.3
-
e7deba3: Rebuild the SDK's type layer on
@opensea/api-typeswith automatic case translation at the fetcher boundary. Consumer API stays camelCase; underneath, the fetcher snakeizes outgoing query params and POST bodies and camelizes responses, so the SDK no longer ships hand-rolled response shapes.The Order family, NFT/Trait, Drop family, Collection, Account, Payment, Chain, Token, and event response shapes now derive directly from the generated OpenAPI types via a generic
Camelize<T>mapper. When the API spec gains a field, the SDK type picks it up automatically — no per-endpoint converter to keep in sync. The oldutils/converters.tsis gone.utils/case.tsships two utilities:camelizeKeysDeep<T>/Camelize<T>— walks the API response and rewrites snake_case keys to camelCase.snakeizeKeysDeep<T>/Snakeize<T>— the inverse, applied to query params and POST bodies on the way out.
Consumers always see camelCase; the API always sees snake_case. No converter drift, no field-name typos.
Where the OpenAPI spec is too loose, the SDK still narrows:
Listing.typeis theOrderTypeenum (spec ships plainstring).Listing.status/Offer.statusare theOrderStatusenum.Order/Offer/Listing.protocolDatais the seaport-jsOrderWithCounter(the SDK passes it directly to Seaport).
These come from aligning with what the API actually returns:
Order.protocolDataandOrder.protocolAddressare optional. They're populated on every endpoint except the profile listings/offers endpoints, where the API intentionally returns null for performance. Code that reads them unconditionally needs a guard.Orderbase type no longer carriesprice— onlyOfferandListingdo (matching the API).OfferandListinggainremainingQuantity(required),orderCreatedAt, andasset?: OrderAsset(the field added in ProjectOpenSea/os2-core#42022 for profile endpoints).NFTis nowNftDetailed— gainsdisplayImageUrl,displayAnimationUrl,originalImageUrl,originalAnimationUrl,animationUrl,isSuspicious,subscription,owner.quantityString. Drops stalerarity.{score,calculatedAt,maxRank,tokensScored,rankingFeatures}that weren't actually in the spec.TokenBalancegains optionalstatus,baseTokenLiquidityUsd,quoteTokenLiquidityUsd.RarityStrategyis nowCamelize<Rarity>from api-types —{ strategyId, strategyVersion, rank? }. The previous extra fields (calculatedAt,maxRank,tokensScored) were spec-incomplete patches.GetCollectionResponseis now an alias forOpenSeaCollection— the previous{ collection: OpenSeaCollection }wrapper never matched the actual API response.- Acronym casing follows generic snake→camel rules:
is_nsfw→isNsfw(notisNSFW). PaymentToken.image(wasimageUrl) — the spec usesimage; the previous converter renamed it. Code readingpaymentToken.imageUrlshould switch topaymentToken.image.
utils/converters.ts(collectionFromJSON,accountFromJSON,paymentTokenFromJSON,feeFromJSON,rarityFromJSON,pricingCurrenciesFromJSON) and the corresponding test file.
Profile endpoints (
/account/{address}/listings,/offers,/offers_received) now exposeasset: { identifier?: string; contract: string }, so consumers no longer have to parse SeaportprotocolData.parameters.offer[0]to identify the NFT.
-
fb03c09: Source
EventPayment,EventAsset,GetNFTResponse,BuildOfferResponse, andCancelOrderResponsefrom@opensea/api-typesinstead of hand-rolling them. Same shapes consumers see today (after camelize at the fetcher), now auto-tracking the OpenAPI spec.EventPayment→Camelize<Payment>EventAsset→Camelize<Nft>(gainsoriginal_image_url,original_animation_url, andtraitsfields the API also returns)GetNFTResponse→Camelize<NftResponse>BuildOfferResponse→Camelize<BuildOfferResponse>(api-types ships this with camelCase keys natively)CancelOrderResponse→Camelize<CancelResponse>
The narrow event types (
ListingEvent,OfferEvent,TraitOfferEvent,CollectionOfferEvent,OrderEvent,MintEvent,SaleEvent,TransferEvent) andAssetEventunion keep their existing SDK definitions — they're refinements that narroweventTypeto specific enum values, which the api-typesOrderEvent/SaleEvent/TransferEventschemas don't model. -
68b07cb: Fix critical bugs introduced by the api-types migration where unconditional body snakeize corrupted Seaport-shaped POST payloads.
The OpenSea OpenAPI spec is mixed-casing: outer envelope keys are snake_case (
protocol_address,protocol_data,order_hash) but inner Seaport struct keys are camelCase to mirror the on-chain struct (parameters.startTime,parameters.endTime,parameters.orderType,parameters.zoneHash,parameters.conduitKey,parameters.totalOriginalConsiderationItems,parameters.offer[].itemType,parameters.offer[].identifierOrCriteria, etc.). A few top-level request fields are also camelCase per spec:CancelRequest.offererSignature,CriteriaObject.numericTraits.The blanket
snakeizeKeysDeep(body)at the fetcher boundary recursively rewrote every inner key to snake_case, breaking:postListing/postOffer— Seaportparameterssent with snake_case keys the API rejected (or that no longer matched the EIP-712 signature digest).offchainCancelOrder—offererSignatureshipped asofferer_signature, silently dropping the cancel signature.buildOffer/postCollectionOffer—criteria.numericTraitsshipped asnumeric_traits, broadening trait offers to the whole collection.
Added
snakeizeBody?: boolean(defaulttrue) to the publicFetcher.post()method. Internal callsites whose wire bodies contain camelCase keys now passsnakeizeBody: falseand emit bodies in exact wire shape:OrdersAPI.postListing,OrdersAPI.postOffer— outerprotocol_addresssnake_case; innerparameterspreserved camelCase via spread of the SeaportOrderWithCounter.OrdersAPI.offchainCancelOrder— body{ offererSignature }preserved.OffersAPI.buildOffer,OffersAPI.postCollectionOffer— outerprotocol_address/protocol_data/offer_protection_enabledsnake_case;criteria.numericTraitspreserved camelCase.
The default behavior (snakeize-all) is unchanged for any caller of
api.post()that doesn't hit a mixed-casing endpoint.OpenSeaAPI.requestInstantApiKey(and theOpenSeaSDKpassthrough) now camelizes its response — previously it calledfetch()directly and returned snake_case despite the typed surface promising{ apiKey, expiresAt, ... }. JSDoc examples on both methods corrected.OpenSeaRateLimitError.responseBodyis now camelized to match the rest of the boundary contract._fetcherror envelope is camelized before reading.errors, so nested snake_case keys no longer leak into thrown Error messages.camelToSnakeno longer emits a leading underscore for PascalCase / acronym keys (URL→url,MyKey→my_key). The correspondingSnakeize<T>type was updated to match the runtime.OpenSeaAccount.socialMediaAccountsdefends against the wire returningnull(the previous hand-rolled converter did?? []; the new pipeline did not).- Dead-code OrderV2/Order casts dropped in
fulfillment.ts— both branches read the same camelCase property after the migration.
Added 11 unit tests covering
snakeizeKeysDeep(flat + nested objects, array walking, multi-segment, primitives, null/undefined, Date passthrough, top-leveloffererSignature/protocolAddressrewrite, position-0 guard). The previous test file imported onlycamelizeKeysDeep— the entire outbound translator had zero unit coverage, which is how these bugs slipped through.A new CI workflow (
.github/workflows/sdk-integration.yml) runs the SDK integration suite nightly and on PRs labeledrun-integration, so future fetcher-boundary regressions are caught against the live API. -
Updated dependencies [fb03c09]
- @opensea/api-types@0.4.2
-
051b558: Surface 22 new endpoints added in
@opensea/api-types0.4.0 as SDK methods and CLI commands.@opensea/sdk— new methods onOpenSeaAPI(and the underlying domain clients):getTokensBatch,getNFTsBatch,getCollectionsBatch— batch lookupscreateListingActions— ordered approval + Seaport-sign actions for new listingsdeployDropContract,getDeployContractReceipt— drop contract deploymenttransferAssets— build transactions to transfer NFTs or tokensgetCollectionOfferAggregates,getCollectionHolders,getCollectionFloorPrices— collection analyticsgetTokenPriceHistory,getTokenOhlcv,getTokenActivity— token analyticsgetNFTOwners,getNFTAnalytics— NFT analyticsgetPortfolioStats,getPortfolioHistory,getProfileOffers,getProfileOffersReceived,getProfileListings,getProfileFavorites,getProfileCollections— account profile
New internal
AssetsAPIclient; new request/response types re-exported through@opensea/sdk(from@opensea/api-types).@opensea/cli— new commands on the existingaccounts,collections,nfts,tokens,listings,dropssubcommands, plus a newassets transfersubcommand. SDK class methods mirroring the same surface added toOpenSeaCLI.No removed endpoints; pure additive release.
-
94dbf08: Sync downstream packages to the API surface introduced in
@opensea/api-types0.3.0 (os2-core#40171 + #40190): drop methods backed by removed endpoints, fix POST shapes, and surface the four new endpoints (/listings/sweep,/offers/collection/{slug}/nfts/{identifier},/swap/execute,/transactions/receipt).Removed methods (the underlying GET endpoints were deleted; they would return 404 against the new API):
OpenSeaAPI.getOrder/OrdersAPI.getOrder— was already@deprecated. UsegetBestOffer/getBestListingfor "best" orgetAllOffers/getAllListingsfor collection-wide results.OpenSeaAPI.getOrders/OrdersAPI.getOrders— was already@deprecated. UsegetAllOffers/getAllListings.OpenSeaAPI.postOrder/OrdersAPI.postOrder— was already@deprecated. UsepostListing/postOffer.OpenSeaAPI.getNFTOffers/OffersAPI.getNFTOffers— replaced bygetOffersByNFT(slug, tokenId)(new endpoint takes a collection slug, not contract address).OpenSeaAPI.getNFTListings/ListingsAPI.getNFTListings— no per-NFT all-listings endpoint exists. UsegetBestListing(slug, tokenId)for the best, orgetAllListings(slug)and filter client-side.- Helpers
getOrdersAPIPath,serializeOrdersQueryOptions,deserializeOrder— orphaned with the methods above. - Types
OrderAPIOptions,OrdersQueryOptions,OrdersQueryResponse,OrdersPostQueryResponse,ListingPostQueryResponse,OfferPostQueryResponse,SerializedOrderV2,GetOrdersResponse— unused after the deletions. - Stats fields
IntervalStat.{volume_diff, volume_change, sales_diff, average_price}andStats.{market_cap, average_price}— server stopped returning them (always0previously).
Behavior changes:
OrdersAPI.postListingandOrdersAPI.postOffernow read the bareListing/Offerresponse (the upstream API dropped the legacyorderwrapper field).OpenSeaSDK.createOfferreturnsPromise<Offer>(wasPromise<OrderV2>).OpenSeaSDK.createListingreturnsPromise<Listing>(wasPromise<OrderV2>).OpenSeaSDK.createBulkListingsreturnsPromise<BulkOrderResult<Listing>>;createBulkOffersreturnsPromise<BulkOrderResult<Offer>>.BulkOrderResultis now generic in the success type.
New methods:
OpenSeaAPI.getOffersByNFT(slug, identifier, limit?, next?)— all offers for one NFT.OpenSeaAPI.sweepCollection(request)— bulk-buy items from a collection, any payment token (incl. cross-chain).OpenSeaAPI.executeSwap(request)— multi-asset swap; companion togetSwapQuote.OpenSeaAPI.getTransactionReceipt(request)— fetch transaction status (sweep, swap, fulfillment).- New
TransactionsAPIsub-client.
OrdersResponse,SimpleAccountre-exports removed fromsrc/types/api.ts(schemas no longer exist).offers allandlistings allnow accept--maker <address>to filter by order maker.- New commands:
listings sweep— bulk-buy items from a collection with any payment token.offers by-nft <collection> <token-id>— all offers for a specific NFT.transactions receipt --request <file>— fetch transaction receipt/status (request body via JSON file).
- New SDK helpers:
OpenSeaCLI.transactions.receipt,SwapsAPI.executeMulti(POST/swap/execute).
opensea-api/references/rest-api.md— endpoint tables refreshed: removed deleted GET rows, added?maker=annotations, addedlistings/sweep, per-NFT offers,swap/execute, andtransactions/receiptrows.opensea-marketplace/references/marketplace-api.md— replaced "Get listings/offers for specific NFT" sections (which curled the removed endpoints) with the slug-based replacements.
- Updated dependencies [7a51fd0]
- @opensea/api-types@0.3.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.
- 4a76bc1: Add server-side trait filtering on three collection-scoped read methods.
getNFTsByCollection,getBestListings, andgetEventsByCollectionnow accept an optionaltraitsargument (aTraitFilter[]); multiple entries are AND-combined server-side. The SDK JSON-encodes the array for the request — callers pass a structured[{ traitType, value }]. New exports:TraitFilter,GetEventsByCollectionArgs,encodeTraitsParam. Requires@opensea/api-types@^0.2.2.
-
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.
- a57c63d: Update @opensea/seaport-js from ^4.0.7 to ^4.1.1
- 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
-
bc5b7b6: Add viem support via provider abstraction layer.
Breaking changes:
OrderSide.LISTINGvalue changed from"ask"to"listing"OrderSide.OFFERvalue changed from"bid"to"offer"BigNumberishtype replaced withAmount(string | number | bigint)Overridestype replaced withRecord<string, unknown>providerpublic property removed fromOpenSeaSDKclassestimateGasutility function removed- TypeChain dependency removed (replaced with inline ABIs)
ethers.FetchRequestreplaced with nativefetch()
New features:
@opensea/sdk/viemsubpath export with native viemPublicClient/WalletClientsupport- Provider abstraction types:
OpenSeaSigner,OpenSeaProvider,ContractCaller,OpenSeaWallet ZERO_ADDRESSandMAX_UINT256exported from constantschecksumAddressutility using@noble/hashesparseUnitsandparseEtherstandalone utilities
-
Rename package from
opensea-jsto@opensea/sdkThe old
opensea-jspackage has been deprecated with a stub that directs users to install@opensea/sdkinstead.
-
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