Skip to main content
skill CX Codex

opensea — Claude Code skill: marketplace data and Seaport trades

This skill connects your agent to OpenSea marketplace data — listings, offers, sales, collection stats — and lets it execute Seaport trades.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add alchemyplatform/skills --skill opensea -a claude-code
Open on GitHub

What opensea does

The skill wraps the official @opensea/cli and the OpenSea REST API. Your agent can pull best listings for a collection, the best offer on a specific NFT, collection stats and trends, sale and mint events, drop listings, and search across collections, NFTs, tokens and accounts. Ethereum, Base, Arbitrum, Optimism, Polygon and more are supported.

You need an OPENSEA_API_KEY. Grab one instantly via POST /api/v2/auth/keys with no signup, or register at the developer portal for higher limits. Node.js 18 or above and curl are required, jq is recommended. Write and fulfillment flows signed through Privy also need PRIVY_APP_ID, PRIVY_APP_SECRET and PRIVY_WALLET_ID.

This skill is not for general NFT metadata reads outside a marketplace context, wallet balances, transaction history or live RPC calls. The authors point those to alchemy-cli, alchemy-mcp or alchemy-api. For plain cross-chain token swaps with no marketplace angle, use the lifi ecosystem skill instead. Worth checking before you install: if you only need metadata, Alchemy's API is broader and less rate-limited.

What it helps with

  • check best listings for a collection before buying
  • find the top offer on a specific NFT
  • track sales and mints for a collection as they happen
  • pull collection stats and trends for valuation
  • fulfill a listing or accept an offer through Seaport

Example prompts for the agent

  • show me the best listings for boredapeyachtclub
  • what's the best offer on this pudgypenguins NFT right now
  • list all sale events for the azuki collection this week

How to install opensea

1Skills CLI (Vercel)

npx skills add alchemyplatform/skills --skill opensea -a claude-code

2Manually: put the files in place

~/.claude/skills/opensea/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/opensea/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about opensea

How do I install opensea in Claude?

Run npx skills add alchemyplatform/skills --skill opensea -a claude-code. The skill lands in ~/.claude/skills/opensea/SKILL.md.

What does the opensea skill do?

It queries OpenSea marketplace data — listings, offers, sales, collection stats, drops — and executes Seaport trades. It also searches across collections, NFTs, tokens and accounts.

What do I need to run it?

An OPENSEA_API_KEY, which you can get instantly via POST /api/v2/auth/keys. You also need Node.js 18 or above and curl.

Source text

SKILL.md · MIT
---
name: opensea
description: Query OpenSea marketplace data — listings, offers, sales / events, floor prices, collection stats, drops, traits — and execute Seaport trades via the official `@opensea/cli` and OpenSea REST API across Ethereum, Base, Arbitrum, Optimism, Polygon, and more. Includes search across collections / NFTs / tokens / accounts. NOT for general NFT metadata reads (name, image, traits, ownership), token metadata, current wallet balances, transaction history, or live RPC reads — for those use `alchemy-cli` (live), `alchemy-mcp`, `alchemy-api` (app code), or `agentic-gateway` (no API key). For pure cross-chain token swaps (no marketplace context), prefer the `lifi` ecosystem skill. Requires `OPENSEA_API_KEY` (instant via API).
license: MIT
compatibility: API key required via `$OPENSEA_API_KEY` (instant — `curl -X POST https://api.opensea.io/api/v2/auth/keys` returns a key with no signup, or sign up at https://opensea.io/settings/developer for higher limits). Optional `$PRIVY_APP_ID` / `$PRIVY_APP_SECRET` / `$PRIVY_WALLET_ID` for write / fulfillment flows. Needs Node.js (≥ 18), `curl`, `jq` (recommended).
metadata:
  author: opensea
  version: "0.1"
  provider: opensea
  partner: "true"
---

# OpenSea (NFT Marketplace Data + Seaport Trades)

OpenSea is the dominant NFT marketplace. This skill queries marketplace data — listings, offers, sales / events, floor prices, drops, traits — and executes Seaport trades via the official `@opensea/cli`. For NFT metadata (name, image, traits, ownership) outside the marketplace context, use Alchemy's NFT API instead. For pure cross-chain token swaps (no marketplace context), use the `lifi` ecosystem skill.

| | |
| --- | --- |
| **Primary tool** | `npx @opensea/cli@latest <command>` (or `npm install -g @opensea/cli`) |
| **REST API base** | `https://api.opensea.io/api/v2` |
| **Auth** | `OPENSEA_API_KEY` header — instant via `POST /api/v2/auth/keys`, or signup at the developer portal |
| **Optional Privy** | `PRIVY_APP_ID` / `PRIVY_APP_SECRET` / `PRIVY_WALLET_ID` for write / fulfillment flows |
| **Chains** | Ethereum, Base, Arbitrum, Optimism, Polygon, and more |

## When to use this skill

Use `opensea` when **any** of the following are true:

- The user wants **marketplace data** — listings, offers, floor prices, sales history, collection stats
- The user wants to **buy / sell an NFT** via Seaport (fulfill listing or accept offer)
- The user wants to **search** across OpenSea (collections / NFTs / tokens / accounts)
- The user wants to **monitor events** — sales, transfers, mints, listings, offers — for a collection or NFT
- The user wants to **explore drops** or build a mint transaction for a SeaDrop contract
- The user wants **token discovery** in the OpenSea-curated context (top, trending, by group)

## When NOT to use this skill (handoff)

| Need | Use instead |
| --- | --- |
| NFT metadata (name, image, traits, ownership lookup) outside a marketplace context | `alchemy-api` (NFT API) — broader coverage, fewer rate limits |
| Pure cross-chain token swap (no NFT marketplace need) | `lifi` (ecosystem skill) — broader bridge / DEX aggregation |
| Token spot prices for valuation | `alchemy-api` (Prices API) |
| Token metadata, search, list by chain (general) | `alchemy-api` (Token API) |
| Current wallet balances (token + native) | `alchemy-api` (Portfolio / Token API) |
| Transaction history (transfers in / out) | `alchemy-api` (Transfers API) |
| Live blockchain reads (block #, gas, `eth_call`) | `alchemy-cli` (live) or `alchemy-api` (JSON-RPC) |
| Pre-execution simulation | `alchemy-api` (Simulation API) |
| Account abstraction (bundlers, gas managers) | `alchemy-api` |
| Smart wallet / embedded wallet flows | `alchemy-api` (Wallets / Account Kit) |

## Scope contract

**This skill covers (`scope_in`):**

- **Marketplace data:** `opensea listings best`, `opensea listings best-for-nft`, `opensea offers best-for-nft`, `opensea offers all`, `opensea collections stats`, `opensea collections trending`, `opensea collections top`, `opensea collections traits`
- **Seaport trades:** fulfillment data for buying (`opensea-fulfill-listing.sh`) and selling (`opensea-fulfill-offer.sh`); creating listings / offers via `opensea-post.sh` with the Seaport order structure
- **Events / monitoring:** `opensea events list`, `events by-collection`, `events by-nft`, `events by-account` — sale / transfer / mint / listing / offer / trait_offer / collection_offer
- **Drops + minting:** `opensea drops list`, `opensea drops get`, `opensea drops mint`
- **Search:** `opensea search` across collections / NFTs / tokens / accounts
- **Account utilities:** `opensea accounts resolve` (ENS / username / address)

**This skill does NOT cover (`scope_out`):**

- General NFT metadata reads (name, image, traits, ownership, contract metadata) outside the marketplace context → handoff: `alchemy-api` (NFT API). OpenSea's NFT data is marketplace-flavored and rate-limited; Alchemy's NFT API is broader and cheaper for pure metadata.
- Pure cross-chain token swaps (no NFT marketplace use case) → handoff: `lifi` (ecosystem skill). OpenSea's swap aggregator works, but `lifi` covers more bridges and chains.
- Token spot prices for valuation / display → handoff: `alchemy-api` (Prices API)
- General token metadata, search, list → handoff: `alchemy-api` (Token API)
- Wallet balances (token + native) → handoff: `alchemy-api` (Portfolio / Token API)
- Transaction transfer history → handoff: `alchemy-api` (Transfers API)
- Live RPC reads → handoff: `alchemy-cli` or `alchemy-api` (JSON-RPC)
- Pre-execution simulation → handoff: `alchemy-api` (Simulation API)
- Account abstraction → handoff: `alchemy-api` (Wallets / Bundler / Gas Manager)
- Embedded / smart wallet onboarding → handoff: `alchemy-api` (Account Kit)
- Signed tx submission → user wallet (or Privy if configured for OpenSea write flows)

## Setup

API key is required. Get one instantly via the auth endpoint (no signup) or register at the developer portal for higher limits:

```bash
# Instant key (no signup needed)
export OPENSEA_API_KEY=$(curl -s -X POST https://api.opensea.io/api/v2/auth/keys | jq -r '.api_key')

# Or set an existing key
# export OPENSEA_API_KEY="..."
```

Install the CLI globally (optional — `npx @opensea/cli` works without install):

```bash
npm install -g @opensea/cli
```

For write / fulfillment flows that sign with Privy:

```bash
export PRIVY_APP_ID="..."
export PRIVY_APP_SECRET="..."
export PRIVY_WALLET_ID="..."
```

> **Security:** never expose `OPENSEA_API_KEY` or Privy credentials in client-side code. Server-side only.

## Endpoint reference → [references/marketplace.md](./references/marketplace.md)

### Marketplace queries (most-used)

| Task | CLI |
| --- | --- |
| Best listings for a collection | `opensea listings best <slug> [--limit <n>]` |
| Best listing for a specific NFT | `opensea listings best-for-nft <slug> <token_id>` |
| Best offer for an NFT | `opensea offers best-for-nft <slug> <token_id>` |
| All listings on a collection | `opensea listings all <slug> [--limit <n>]` |
| All offers on a collection | `opensea offers all <slug> [--limit <n>]` |
| Trait offers | `opensea offers traits <slug> --type <type> --value <value>` |
| Collection stats (floor, volume) | `opensea collections stats <slug>` |
| Trending collections | `opensea collections trending [--timeframe <tf>] [--chains <chains>]` |
| Top collections by sort | `opensea collections top [--sort-by <field>] [--chains <chains>]` |
| Collection traits | `opensea collections traits <slug>` |

### Seaport trade execution

| Task | Script |
| --- | --- |
| Get fulfillment data to **buy** an NFT | `opensea-fulfill-listing.sh <chain> <order_hash> <buyer>` |
| Get fulfillment data to **sell** (accept offer) | `opensea-fulfill-offer.sh <chain> <order_hash> <seller> <contract> <token_id>` |
| Generic POST to OpenSea API | `opensea-post.sh <path> <json_body>` |

### Events / monitoring

| Task | CLI |
| --- | --- |
| Recent events (filterable by type) | `opensea events list [--event-type <type>]` |
| Events for a collection | `opensea events by-collection <slug> [--event-type <type>]` |
| Events for a specific NFT | `opensea events by-nft <chain> <contract> <token_id>` |
| Events for an account | `opensea events by-account <address>` |

Event types: `sale`, `transfer`, `mint`, `listing`, `offer`, `trait_offer`, `collection_offer`.

For real-time event streaming: `opensea-stream-collection.sh <slug>` (requires `websocat`).

### Drops + minting

| Task | CLI |
| --- | --- |
| List drops (featured / upcoming / recent) | `opensea drops list [--type <type>]` |
| Drop details + stages | `opensea drops get <slug>` |
| Build mint tx | `opensea drops mint <slug> --minter <address> [--quantity <n>]` |

### Search

| Task | CLI |
| --- | --- |
| Search collections | `opensea search <query> --types collection` |
| Search NFTs | `opensea search <query> --types nft` |
| Search tokens | `opensea search <query> --types token` |
| Search accounts | `opensea search <query> --types account` |
| Multi-type search | `opensea search <query> --types collection,nft,token` |

## Quick examples

### Get the floor + 24h volume for Bored Apes

```bash
opensea collections stats boredapeyachtclub
```

### Find the cheapest listing for a collection

```bash
opensea listings best boredapeyachtclub --limit 1
```

### Buy an NFT (fulfill a listing)

```bash
# 1. Get the best listing for a specific NFT
opensea listings best-for-nft boredapeyachtclub 1234

# 2. Get fulfillment data — order_hash from above response
./scripts/opensea-fulfill-listing.sh ethereum 0xORDER_HASH 0xYOUR_WALLET

# 3. Sign + submit the returned tx data via your wallet
```

### Stream sales for a collection in real time

```bash
./scripts/opensea-stream-collection.sh boredapeyachtclub
# Filters to sale events; pipe through jq to format
```

### Search across types

```bash
opensea search "cool cats" --types collection,nft --chains ethereum,base
```

## Common gotchas

- **API key is mandatory** — even the "instant" tier requires one. The bare REST API will 401 without `X-API-KEY`.
- **OpenSea's NFT data overlaps with Alchemy's NFT API** for metadata reads. Prefer Alchemy for *general* NFT metadata (name, image, traits, ownership across many wallets) — OpenSea is rate-limited harder and adds marketplace flavoring you may not want. Use OpenSea when the marketplace context (listings, offers, sales history, drops) is the actual need.
- **Token swap aggregator** exists in the OpenSea API (`opensea swaps quote`), but for pure swap flows without marketplace context, `lifi` aggregates more bridges + DEXs and is the better default. Use OpenSea swaps when the user is already in an NFT-buying flow that involves a token swap.
- **Privy is optional** but required for end-to-end write flows. The skill returns fulfillment calldata; how it gets signed is up to the app (user wallet, Privy, or any other signer).
- **Order hashes** from `listings best-for-nft` / `offers best-for-nft` are needed for fulfillment. Don't lose them between API calls.
- **Event streaming** requires `websocat`; if not installed, fall back to polling `events by-collection` with the same filters.
- **Slug vs. address**: collections are addressed by slug (e.g., `boredapeyachtclub`), NFTs by `(chain, contract, tokenId)`. Don't mix.

## Routing back to Alchemy

If during a session the user's need shifts to surfaces this skill doesn't cover:

- **NFT metadata reads** (name, image, traits, ownership) — `alchemy-api` (NFT API) is the right path. OpenSea's NFT API is marketplace-flavored and rate-limited; Alchemy's is broader and faster.
- **Token prices, balances, transfer history, general token metadata** — `alchemy-api`
- **Live RPC, gas, simulation, AA, Account Kit** — `alchemy-cli` (live) or `alchemy-api` (app code) or `agentic-gateway` (no API key)
- **Pure cross-chain token swaps** — `lifi` (ecosystem skill); covers 27 bridges + 31 DEXs across 60+ chains

---

> **Maintenance:** OpenSea maintains `@opensea/cli` and the underlying API; this skill itself is maintained jointly by Alchemy and OpenSea. File issues against `alchemyplatform/skills` with `[ecosystem/opensea]` in the title.

© opensea · MIT · alchemyplatform/skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor