Skip to content

Commit dfad7fc

Browse files
ryanioclaude
andcommitted
Release v2.13.0
Origin-SHA: 2e83d06a1a48b2a5eb72ceec4170b8ba64e82d2b ### Minor Changes - 032316b: Add order commands for endpoints the CLI did not cover: `listings post`, `listings fulfillment-data`, `offers post`, `offers build`, `offers post-criteria`, `offers fulfillment-data` and `orders get`, with matching `OpenSeaCLI` methods (`listings.post`, `listings.fulfillmentData`, `offers.post`, `offers.build`, `offers.postCriteria`, `offers.fulfillmentData`, `orders.get`). The submit commands send a caller-signed order from a `--body` JSON file unchanged and print the API response; they do not build or sign orders. Chain, protocol, protocol address and order hash are URL-encoded, and `.` or `..` is rejected, so a path argument cannot retarget the request. - 77cf7e5: Add collection management and PFP endpoints. The SDK gains `api.collections.getCreatorFeeEnforcement(slug)`, `api.collections.getCollectionPfpProfiles(slug, args?)` and `api.collections.getTopPfpCollections(args)`, plus wallet-authenticated `api.walletAuth.getCollectionMetadata`, `createCollectionPageMediaUpload`, `setCollectionPricingCurrency`, `buildCreatorFeeEnforcementTransactions` and `refreshCollectionMetadata`. The CLI gains `opensea collections trait-floors`, `collections pfp-profiles`, `collections top-pfp`, `tokens payment-token` and `profile shelves`, with `collections.traitFloors`, `collections.pfpProfiles`, `collections.topPfp` and `tokens.paymentToken` on the programmatic client. ### Patch Changes - Updated dependencies [77cf7e5] - Updated dependencies [fd907e9] - Updated dependencies [bcf689a] - Updated dependencies [36df83d] - Updated dependencies [1edbc0e] - Updated dependencies [df922bd] - @opensea/sdk@12.13.0 - @opensea/api-types@0.17.0 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 45a1ad5 commit dfad7fc

25 files changed

Lines changed: 1349 additions & 158 deletions

‎CHANGELOG.md‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# @opensea/cli
22

3+
## 2.13.0
4+
5+
### Minor Changes
6+
7+
- 032316b: Add order commands for endpoints the CLI did not cover: `listings post`, `listings fulfillment-data`, `offers post`, `offers build`, `offers post-criteria`, `offers fulfillment-data` and `orders get`, with matching `OpenSeaCLI` methods (`listings.post`, `listings.fulfillmentData`, `offers.post`, `offers.build`, `offers.postCriteria`, `offers.fulfillmentData`, `orders.get`). The submit commands send a caller-signed order from a `--body` JSON file unchanged and print the API response; they do not build or sign orders. Chain, protocol, protocol address and order hash are URL-encoded, and `.` or `..` is rejected, so a path argument cannot retarget the request.
8+
- 77cf7e5: Add collection management and PFP endpoints. The SDK gains `api.collections.getCreatorFeeEnforcement(slug)`, `api.collections.getCollectionPfpProfiles(slug, args?)` and `api.collections.getTopPfpCollections(args)`, plus wallet-authenticated `api.walletAuth.getCollectionMetadata`, `createCollectionPageMediaUpload`, `setCollectionPricingCurrency`, `buildCreatorFeeEnforcementTransactions` and `refreshCollectionMetadata`. The CLI gains `opensea collections trait-floors`, `collections pfp-profiles`, `collections top-pfp`, `tokens payment-token` and `profile shelves`, with `collections.traitFloors`, `collections.pfpProfiles`, `collections.topPfp` and `tokens.paymentToken` on the programmatic client.
9+
10+
### Patch Changes
11+
12+
- Updated dependencies [77cf7e5]
13+
- Updated dependencies [fd907e9]
14+
- Updated dependencies [bcf689a]
15+
- Updated dependencies [36df83d]
16+
- Updated dependencies [1edbc0e]
17+
- Updated dependencies [df922bd]
18+
- @opensea/sdk@12.13.0
19+
- @opensea/api-types@0.17.0
20+
21+
## 2.12.1
22+
23+
### Patch Changes
24+
25+
- 8e3c55f: Escape terminal control characters in CLI output. Table, toon and JSON output, and error messages on stderr, now show C0, DEL, C1 and bidi control characters from API data as `\uXXXX` escapes, so a collection, NFT or token name can no longer move the cursor, rewrite earlier lines or set the clipboard when printed.
26+
327
## 2.12.0
428

529
### Minor Changes

‎docs/cli-reference.md‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,17 @@ opensea collections get <slug>
114114
opensea collections list [--chain <chain>] [--order-by <field>] [--creator <username>] [--include-hidden] [--limit <n>] [--next <cursor>]
115115
opensea collections stats <slug>
116116
opensea collections traits <slug>
117+
opensea collections trait-floors <slug>
118+
opensea collections pfp-profiles <slug> [--limit <n>] [--next <cursor>]
119+
opensea collections top-pfp [--limit <n>] [--chain <chain>]
117120
```
118121

122+
`trait-floors` prints the floor price of each text trait value that has at
123+
least one active listing. `pfp-profiles` lists the profiles wearing a verified
124+
NFT from the collection as their profile picture. `top-pfp` ranks collections
125+
by that wearer count; `--limit` takes 1 to 50 (default 20), and leaving out
126+
`--chain` ranks across every chain.
127+
119128
`--order-by` values: `created_date`, `one_day_change`, `seven_day_volume`, `seven_day_change`, `num_owners`, `market_cap`
120129

121130
### Managing a collection page
@@ -198,6 +207,8 @@ opensea listings best <collection> [--limit <n>] [--next <cursor>]
198207
opensea listings best-for-nft <collection> <token-id>
199208
opensea listings actions --body <request.json>
200209
opensea listings fulfillment-actions --body <request.json>
210+
opensea listings post <chain> --body <signed-order.json> [--protocol seaport]
211+
opensea listings fulfillment-data --body <request.json>
201212
```
202213

203214
## Offers
@@ -209,11 +220,18 @@ opensea offers best-for-nft <collection> <token-id>
209220
opensea offers traits <collection> --type <type> --value <value> [--limit <n>] [--next <cursor>]
210221
opensea offers actions --body <request.json>
211222
opensea offers fulfillment-actions --body <request.json>
223+
opensea offers post <chain> --body <signed-order.json> [--protocol seaport]
224+
opensea offers build --body <request.json>
225+
opensea offers post-criteria --body <signed-criteria-offer.json>
226+
opensea offers fulfillment-data --body <request.json>
212227
```
213228

229+
`listings post`, `offers post` and `offers post-criteria` submit an order you have already signed. The CLI does not build or sign orders: it sends the JSON file as the request body and prints the API response. `offers build` returns the unsigned parameters for a collection or trait offer; sign them yourself, then submit the result with `offers post-criteria`.
230+
214231
## Orders
215232

216233
```bash
234+
opensea orders get <chain> <protocol_address> <order_hash>
217235
opensea orders cancel <chain> <protocol_address> <order_hash> [--body <request.json>]
218236
opensea orders cancel-actions <chain> <protocol_address> <order_identifier> --body <request.json>
219237
```
@@ -365,12 +383,21 @@ opensea search <query> [--types <types>] [--chains <chains>] [--limit <n>]
365383
opensea tokens trending [--chains <chains>] [--limit <n>] [--next <cursor>]
366384
opensea tokens top [--chains <chains>] [--limit <n>] [--next <cursor>]
367385
opensea tokens get <chain> <address>
386+
opensea tokens payment-token <chain> <address>
368387
opensea tokens activity-stats <chain> <address> [--windows <windows>]
369388
```
370389

371390
`--windows` accepts a comma-separated list containing `5m`, `1h`, `4h`, and
372391
`24h`. If omitted, the API returns every available materialized window.
373392

393+
## Profile
394+
395+
```bash
396+
opensea profile shelves <address>
397+
```
398+
399+
`shelves` lists the profile shelves of any wallet and needs an API key alone.
400+
374401
## Swaps
375402

376403
```bash

‎docs/sdk.md‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ const { collections, next } = await client.collections.list({
3737
const stats = await client.collections.stats("mfers")
3838

3939
const traits = await client.collections.traits("mfers")
40+
41+
const { floors } = await client.collections.traitFloors("mfers")
42+
43+
const { profiles } = await client.collections.pfpProfiles("mfers", {
44+
limit: 20,
45+
})
46+
47+
const { collections: pfpRanking } = await client.collections.topPfp({
48+
limit: 10,
49+
chain: "base",
50+
})
4051
```
4152

4253
## NFTs
@@ -81,6 +92,15 @@ const { listings, next } = await client.listings.all("mfers", { limit: 10 })
8192
const { listings, next } = await client.listings.best("mfers", { limit: 10 })
8293

8394
const listing = await client.listings.bestForNFT("mfers", "3490")
95+
96+
// Submit an order you already signed; the body is sent unchanged.
97+
const posted = await client.listings.post("ethereum", "seaport", signedOrder)
98+
99+
const fulfillment = await client.listings.fulfillmentData({
100+
listing: { hash: "0x...", chain: "ethereum", protocol_address: "0x..." },
101+
fulfiller: { address: "0x..." },
102+
include_optional_creator_fees: false,
103+
})
84104
```
85105

86106
## Offers
@@ -97,6 +117,19 @@ const { offers, next } = await client.offers.traits("mfers", {
97117
value: "blue",
98118
limit: 10,
99119
})
120+
121+
const offer = await client.offers.post("ethereum", "seaport", signedOrder)
122+
123+
const built = await client.offers.build(buildOfferRequest)
124+
const criteriaOffer = await client.offers.postCriteria(signedCriteriaOffer)
125+
126+
const fulfillment = await client.offers.fulfillmentData(fulfillmentRequest)
127+
```
128+
129+
## Orders
130+
131+
```typescript
132+
const { order } = await client.orders.get("ethereum", "0x...", "0x...")
100133
```
101134

102135
## Drops and cross-chain minting
@@ -259,6 +292,8 @@ const { tokens, next } = await client.tokens.top({
259292

260293
const tokenDetails = await client.tokens.get("base", "0x123...")
261294

295+
const paymentToken = await client.tokens.paymentToken("base", "0x123...")
296+
262297
const activity = await client.tokens.activityStats(
263298
"base",
264299
"0x4200000000000000000000000000000000000006",

0 commit comments

Comments
 (0)