What's Changed
Stream API client moves into the SDK
The OpenSea Stream API client now ships at the @opensea/sdk/stream subpath, replacing the standalone @opensea/stream-js package. It speaks the Phoenix Channels wire protocol directly rather than depending on phoenix, so the subpath pulls in no third-party runtime code, and neither ethers nor seaport.
Migrating is mostly an import change. See developerDocs/stream-migration.md.
- Node users no longer need
wsornode-localstorage. apiKeyreplacestokeninClientConfig.tokenstill works and is deprecated.- Unsubscribing removes a single handler instead of leaving the whole collection channel. Two subscriptions on one collection previously meant unsubscribing from one silently stopped the other.
engines.nodeis raised to>=22.0.0. Node 20 reached end of life in April 2026.
Correctness fixes
getTraitsno longer camelizes its response. Its keys are the collection's own trait names and values, so afur_colortrait was reported asfurColor, and a collection with bothdark_brownanddarkBrownhad them merged into one entry with a wrong count.parseUnitsaccepts scientific notation from strings.parseUnits("1e-8", 18)previously threw. This affected any caller that stringified an amount first, including the SDK's ownwrapEth,unwrapWeth, and listing/offer price paths.- Private listings reject payment items in different tokens.
constructPrivateListingCounterOrdersummed mixed currencies into one item, so 100 TOKEN_A plus 20 TOKEN_B became 120 TOKEN_A and surfaced as an onchain revert rather than an SDK error.
Repository rename
The public repo is now ProjectOpenSea/opensea-sdk, matching the package name it has shipped as since 9.0.0. repository.url and bugs.url point there. The old URL still redirects. The npm package name is unchanged.
The TypeDoc GitHub Pages site was retired: nothing built it, so it had been serving v8.0.20 docs. Reference documentation lives in developerDocs/api-reference.md.
Community Contributions
getTraitstrait-key camelization fix, thanks @crazywriter1 (opensea-sdk#1989)parseUnitsstring scientific notation fix, thanks @Lesnak1 (opensea-sdk#1990)- Mixed ERC20 payment token rejection in private listings, thanks @MrFaruk0 (opensea-sdk#1991)
Full Changelog: ProjectOpenSea/opensea-devtools@sdk-v11.8.0...sdk-v11.9.0