@opensea/cli 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,22 +15,14 @@ Query the OpenSea API from the command line or programmatically. Designed for bo
15
15
 
16
16
  - [Install](#install)
17
17
  - [Authentication](#authentication)
18
- - [CLI Usage](#cli-usage)
19
- - [Global Options](#global-options)
20
- - [Collections](#collections)
21
- - [NFTs](#nfts)
22
- - [Listings](#listings)
23
- - [Offers](#offers)
24
- - [Events](#events)
25
- - [Search](#search)
26
- - [Tokens](#tokens)
27
- - [Swaps](#swaps)
28
- - [Accounts](#accounts)
18
+ - [Quick Start](#quick-start)
19
+ - [Commands](#commands)
29
20
  - [Programmatic SDK](#programmatic-sdk)
30
21
  - [Output Formats](#output-formats)
31
- - [Examples](#examples)
32
22
  - [Exit Codes](#exit-codes)
33
23
  - [Requirements](#requirements)
24
+ - [Development](#development)
25
+ - [Docs](#docs)
34
26
 
35
27
  ## Install
36
28
 
@@ -58,109 +50,78 @@ opensea --api-key your-api-key collections get mfers
58
50
 
59
51
  Get an API key at [docs.opensea.io](https://docs.opensea.io/reference/api-keys).
60
52
 
61
- ## CLI Usage
62
-
63
- ### Global Options
64
-
65
- ```
66
- --api-key <key> OpenSea API key (or set OPENSEA_API_KEY env var)
67
- --chain <chain> Default chain (default: ethereum)
68
- --format <format> Output format: json or table (default: json)
69
- --base-url <url> API base URL override
70
- ```
71
-
72
- ### Collections
73
-
74
- ```bash
75
- opensea collections get <slug>
76
- opensea collections list [--chain <chain>] [--order-by <field>] [--limit <n>]
77
- opensea collections stats <slug>
78
- opensea collections traits <slug>
79
- ```
80
-
81
- ### NFTs
53
+ ## Quick Start
82
54
 
83
55
  ```bash
84
- opensea nfts get <chain> <contract> <token-id>
85
- opensea nfts list-by-collection <slug> [--limit <n>]
86
- opensea nfts list-by-contract <chain> <contract> [--limit <n>]
87
- opensea nfts list-by-account <chain> <address> [--limit <n>]
88
- opensea nfts refresh <chain> <contract> <token-id>
89
- opensea nfts contract <chain> <address>
90
- ```
91
-
92
- ### Listings
93
-
94
- ```bash
95
- opensea listings all <collection> [--limit <n>]
96
- opensea listings best <collection> [--limit <n>]
97
- opensea listings best-for-nft <collection> <token-id>
98
- ```
56
+ # Get collection details
57
+ opensea collections get mfers
99
58
 
100
- ### Offers
59
+ # Get floor price and volume stats
60
+ opensea collections stats mfers
101
61
 
102
- ```bash
103
- opensea offers all <collection> [--limit <n>]
104
- opensea offers collection <collection> [--limit <n>]
105
- opensea offers best-for-nft <collection> <token-id>
106
- opensea offers traits <collection> --type <type> --value <value>
107
- ```
62
+ # List NFTs in a collection
63
+ opensea nfts list-by-collection mfers --limit 5
108
64
 
109
- ### Events
65
+ # Get best listings
66
+ opensea listings best mfers --limit 5
110
67
 
111
- ```bash
112
- opensea events list [--event-type <type>] [--chain <chain>] [--limit <n>]
113
- opensea events by-account <address> [--event-type <type>]
114
- opensea events by-collection <slug> [--event-type <type>]
115
- opensea events by-nft <chain> <contract> <token-id> [--event-type <type>]
116
- ```
68
+ # Search across OpenSea
69
+ opensea search collections "cool cats"
117
70
 
118
- ### Search
71
+ # Get trending tokens
72
+ opensea tokens trending --limit 5
119
73
 
120
- ```bash
121
- opensea search collections <query> [--chains <chains>] [--limit <n>]
122
- opensea search nfts <query> [--collection <slug>] [--chains <chains>] [--limit <n>]
123
- opensea search tokens <query> [--chain <chain>] [--limit <n>]
124
- opensea search accounts <query> [--limit <n>]
74
+ # Human-readable table output
75
+ opensea --format table collections stats mfers
125
76
  ```
126
77
 
127
- ### Tokens
78
+ ## Commands
128
79
 
129
- ```bash
130
- opensea tokens trending [--chains <chains>] [--limit <n>] [--cursor <cursor>]
131
- opensea tokens top [--chains <chains>] [--limit <n>] [--cursor <cursor>]
132
- opensea tokens get <chain> <address>
133
- ```
80
+ | Command | Description |
81
+ |---|---|
82
+ | `collections` | Get, list, stats, and traits for NFT collections |
83
+ | `nfts` | Get, list, refresh metadata, and contract details for NFTs |
84
+ | `listings` | Get all, best, or best-for-nft listings |
85
+ | `offers` | Get all, collection, best-for-nft, and trait offers |
86
+ | `events` | List marketplace events (sales, transfers, mints, etc.) |
87
+ | `search` | Search collections, NFTs, tokens, and accounts |
88
+ | `tokens` | Get trending tokens, top tokens, and token details |
89
+ | `swaps` | Get swap quotes for token trading |
90
+ | `accounts` | Get account details |
134
91
 
135
- ### Swaps
92
+ Global options: `--api-key`, `--chain` (default: ethereum), `--format` (json/table), `--base-url`
136
93
 
137
- ```bash
138
- opensea swaps quote --from-chain <chain> --from-address <address> --to-chain <chain> --to-address <address> --quantity <quantity> --address <address> [--slippage <slippage>] [--recipient <recipient>]
139
- ```
140
-
141
- ### Accounts
142
-
143
- ```bash
144
- opensea accounts get <address>
145
- ```
94
+ Full command reference with all options and flags: [docs/cli-reference.md](docs/cli-reference.md)
146
95
 
147
96
  ## Programmatic SDK
148
97
 
149
- Use as a TypeScript/JavaScript library:
150
-
151
98
  ```typescript
152
- import { OpenSeaCLI } from "@opensea/cli"
99
+ import { OpenSeaCLI, OpenSeaAPIError } from "@opensea/cli"
153
100
 
154
101
  const client = new OpenSeaCLI({ apiKey: process.env.OPENSEA_API_KEY })
155
102
 
156
103
  const collection = await client.collections.get("mfers")
157
- const stats = await client.collections.stats("mfers")
158
- const nfts = await client.nfts.listByCollection("mfers", { limit: 5 })
159
- const listings = await client.listings.best("mfers", { limit: 10 })
160
- const events = await client.events.byCollection("mfers", { eventType: "sale" })
161
- const account = await client.accounts.get("0x21130e908bba2d41b63fbca7caa131285b8724f8")
162
- const searchResults = await client.search.collections("mfers", { limit: 5 })
163
- ```
104
+ const { nfts } = await client.nfts.listByCollection("mfers", { limit: 5 })
105
+ const { listings } = await client.listings.best("mfers", { limit: 10 })
106
+ const { asset_events } = await client.events.byCollection("mfers", {
107
+ eventType: "sale",
108
+ })
109
+ const { tokens } = await client.tokens.trending({ chains: ["base"], limit: 5 })
110
+ const results = await client.search.collections("mfers", { limit: 5 })
111
+
112
+ // Error handling
113
+ try {
114
+ await client.collections.get("nonexistent")
115
+ } catch (error) {
116
+ if (error instanceof OpenSeaAPIError) {
117
+ console.error(error.statusCode) // e.g. 404
118
+ console.error(error.responseBody) // raw API response
119
+ console.error(error.path) // request path
120
+ }
121
+ }
122
+ ```
123
+
124
+ Full SDK reference: [docs/sdk.md](docs/sdk.md)
164
125
 
165
126
  ## Output Formats
166
127
 
@@ -176,152 +137,6 @@ Table - human-readable output:
176
137
  opensea --format table collections list --limit 5
177
138
  ```
178
139
 
179
- ## Examples
180
-
181
- Here are real-world examples using the [tiny dinos](https://opensea.io/collection/tiny-dinos-eth) and [mfers](https://opensea.io/collection/mfers) collections:
182
-
183
- ### Collections
184
-
185
- ```bash
186
- # Get collection details
187
- opensea collections get tiny-dinos-eth
188
-
189
- # List collections with a limit
190
- opensea collections list --limit 2
191
-
192
- # Get collection stats (volume, floor price, etc.)
193
- opensea collections stats tiny-dinos-eth
194
-
195
- # Get collection traits
196
- opensea collections traits tiny-dinos-eth
197
- ```
198
-
199
- ### NFTs
200
-
201
- ```bash
202
- # Get a specific NFT by chain/contract/token-id
203
- opensea nfts get ethereum 0xd9b78a2f1dafc8bb9c60961790d2beefebee56f4 1
204
-
205
- # List NFTs in a collection
206
- opensea nfts list-by-collection tiny-dinos-eth --limit 2
207
-
208
- # List NFTs by contract address
209
- opensea nfts list-by-contract ethereum 0xd9b78a2f1dafc8bb9c60961790d2beefebee56f4 --limit 2
210
-
211
- # List NFTs owned by an account
212
- opensea nfts list-by-account ethereum 0x21130e908bba2d41b63fbca7caa131285b8724f8 --limit 2
213
-
214
- # Get contract details
215
- opensea nfts contract ethereum 0xd9b78a2f1dafc8bb9c60961790d2beefebee56f4
216
-
217
- # Refresh NFT metadata
218
- opensea nfts refresh ethereum 0xd9b78a2f1dafc8bb9c60961790d2beefebee56f4 1
219
- ```
220
-
221
- ### Listings
222
-
223
- ```bash
224
- # Get all listings for a collection
225
- opensea listings all tiny-dinos-eth --limit 2
226
-
227
- # Get best (cheapest) listings
228
- opensea listings best tiny-dinos-eth --limit 2
229
-
230
- # Get the best listing for a specific NFT
231
- opensea listings best-for-nft mfers 3490
232
- ```
233
-
234
- ### Offers
235
-
236
- ```bash
237
- # Get all offers for a collection
238
- opensea offers all tiny-dinos-eth --limit 2
239
-
240
- # Get collection offers
241
- opensea offers collection tiny-dinos-eth --limit 2
242
-
243
- # Get best offer for a specific NFT
244
- opensea offers best-for-nft tiny-dinos-eth 1
245
-
246
- # Get trait offers (type and value are required)
247
- opensea offers traits tiny-dinos-eth --type background --value blue --limit 2
248
- ```
249
-
250
- ### Events
251
-
252
- ```bash
253
- # List recent events across all collections
254
- opensea events list --limit 2
255
-
256
- # Get events for a collection
257
- opensea events by-collection tiny-dinos-eth --limit 2
258
-
259
- # Get events for a specific NFT
260
- opensea events by-nft ethereum 0xd9b78a2f1dafc8bb9c60961790d2beefebee56f4 1 --limit 2
261
-
262
- # Get events for an account
263
- opensea events by-account 0x21130e908bba2d41b63fbca7caa131285b8724f8 --limit 2
264
- ```
265
-
266
- ### Search
267
-
268
- ```bash
269
- # Search for collections
270
- opensea search collections mfers
271
-
272
- # Search for NFTs
273
- opensea search nfts "cool cat" --limit 5
274
-
275
- # Search for NFTs within a specific collection
276
- opensea search nfts "rare" --collection tiny-dinos-eth --limit 5
277
-
278
- # Search for tokens/currencies
279
- opensea search tokens eth --limit 5
280
-
281
- # Search for tokens on a specific chain
282
- opensea search tokens usdc --chain base --limit 5
283
-
284
- # Search for accounts
285
- opensea search accounts vitalik --limit 5
286
- ```
287
-
288
- ### Tokens
289
-
290
- ```bash
291
- # Get trending tokens
292
- opensea tokens trending --limit 2
293
-
294
- # Get trending tokens on a specific chain
295
- opensea tokens trending --chains base --limit 2
296
-
297
- # Get top tokens by 24-hour volume
298
- opensea tokens top --limit 2
299
-
300
- # Get top tokens on a specific chain
301
- opensea tokens top --chains base --limit 2
302
-
303
- # Get details for a specific token (DebtReliefBot on Base)
304
- opensea tokens get base 0x3ec2156d4c0a9cbdab4a016633b7bcf6a8d68ea2
305
- ```
306
-
307
- ### Swaps
308
-
309
- ```bash
310
- # Get a swap quote for USDC to DRB on Base
311
- opensea swaps quote \
312
- --from-chain base --from-address 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 \
313
- --to-chain base --to-address 0x3ec2156d4c0a9cbdab4a016633b7bcf6a8d68ea2 \
314
- --quantity 1000000 \
315
- --address 0x21130e908bba2d41b63fbca7caa131285b8724f8
316
- ```
317
-
318
- ### Accounts
319
-
320
- ```bash
321
- # Get account details
322
- opensea accounts get 0x21130e908bba2d41b63fbca7caa131285b8724f8
323
- ```
324
-
325
140
  ## Exit Codes
326
141
 
327
142
  - `0` - Success
@@ -333,6 +148,28 @@ opensea accounts get 0x21130e908bba2d41b63fbca7caa131285b8724f8
333
148
  - Node.js >= 18.0.0
334
149
  - OpenSea API key ([get one here](https://docs.opensea.io/reference/api-keys))
335
150
 
151
+ ## Development
152
+
153
+ ```bash
154
+ npm install # Install dependencies
155
+ npm run build # Build CLI + SDK
156
+ npm run dev # Build in watch mode
157
+ npm run test # Run tests
158
+ npm run lint # Lint with Biome
159
+ npm run format # Format with Biome
160
+ npm run type-check # TypeScript type checking
161
+ ```
162
+
163
+ ## Docs
164
+
165
+ | Document | Description |
166
+ |---|---|
167
+ | [CLI Reference](docs/cli-reference.md) | Full command reference with all options and flags |
168
+ | [Examples](docs/examples.md) | Real-world usage examples for every command |
169
+ | [SDK Reference](docs/sdk.md) | Full programmatic SDK API with all methods |
170
+ | [Pagination](docs/pagination.md) | Cursor-based pagination patterns for CLI and SDK |
171
+ | [Event Types](docs/events.md) | Event type values and filtering |
172
+
336
173
  [version-badge]: https://img.shields.io/github/package-json/v/ProjectOpenSea/opensea-cli
337
174
  [version-link]: https://github.com/ProjectOpenSea/opensea-cli/releases
338
175
  [npm-badge]: https://img.shields.io/npm/v/@opensea/cli?color=red