OpenSea
Query OpenSea NFT marketplace data via official MCP server. Get floor prices, trending collections, token prices, wallet balances, swap quotes, and NFT holdings. Supports Ethereum, Base, Polygon, Solana, and other major chains. Requires OpenSea developer account for MCP token.
Rank
62
Safety
84
Downloads
1.5k
Updated
Apr 15, 2026
Version
1.0.2
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 4/15/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Apr 15, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Apr 15, 2026
- Adoption signal
- 1.5K downloadsadoption · observed Apr 15, 2026
- Latest release
- 1.0.2release · observed Feb 8, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install kn7176r43k8cwrwyv9h52051z9809n51:opensea-mcp- Install using `clawhub skill install kn7176r43k8cwrwyv9h52051z9809n51:opensea-mcp` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/dfinzer/opensea-mcp before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-dfinzer-opensea-mcp/snapshot"
Documentation
CLAWHUB
76,635 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
# OpenSea API Query NFT data, trade on the Seaport marketplace, and swap ERC20 tokens across Ethereum, Base, Arbitrum, Optimism, Polygon, and more. ## Quick start 1. Set `OPENSEA_API_KEY` in your environment 2. Run helper scripts in `scripts/` for common operations 3. Use the MCP server for token swaps and advanced queries ```bash export OPENSEA_API_KEY="your-api-key" # Token swap: ETH to token ./scripts/opensea-swap.sh 0xTokenAddress 0.1 0xYourWallet 0xYourKey base # Token swap: Token to token (specify from_token as last arg) ./scripts/opensea-swap.sh 0xToToken 100 0xYourWallet 0xYourKey base 0xFromToken # Get collection info ./scripts/opensea-collection.sh boredapeyachtclub # Get NFT details ./scripts/opensea-nft.sh ethereum 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d 1234 # Get best listing price for an NFT ./scripts/opensea-best-listing.sh boredapeyachtclub 1234 ``` ## Task guide ### Token swaps OpenSea's API includes a cross-chain DEX aggregator for swapping ERC20 tokens with optimal routing across all supported chains. | Task | Tool/Script | |------|-------------| | Get swap quote with calldata | `get_token_swap_quote` (MCP) or `opensea-swap.sh` | | Check token balances | `get_token_balances` (MCP) | | Search tokens | `search_tokens` (MCP) | | Get trending tokens | `get_trending_tokens` (MCP) | | Get top tokens by volume | `get_top_tokens` (MCP) | ### Reading NFT data | Task | Script | |------|--------| | Get collection details | `opensea-collection.sh <slug>` | | Get collection stats | `opensea-collection-stats.sh <slug>` | | List NFTs in collection | `opensea-collection-nfts.sh <slug> [limit] [next]` | | Get single NFT | `opensea-nft.sh <chain> <contract> <token_id>` | | List NFTs by wallet | `opensea-account-nfts.sh <chain> <address> [limit]` | ### Marketplace queries | Task | Script | |------|--------| | Get best listing for NFT | `opensea-best-listing.sh <slug> <token_id>` | | Get best offer for NFT | `opensea-best-offer.sh <slug> <token_id>` | | List all collection listings | `opensea-listings-collection.sh <slug> [limit]` | | List all collection offers | `opensea-offers-collection.sh <slug> [limit]` | | Get listings for specific NFT | `opensea-listings-nft.sh <chain> <contract> <token_id>` | | Get offers for specific NFT | `opensea-offers-nft.sh <chain> <contract> <token_id>` | | Get order by hash | `opensea-order.sh <chain> <order_hash>` | ### Marketplace actions (POST) | Task | Script | |------|--------| | Get fulfillment data (buy NFT) | `opensea-fulfill-listing.sh <chain> <order_hash> <buyer>` | | Get fulfillment data (accept offer) | `opensea-fulfill-offer.sh <chain> <order_hash> <seller> <contract> <token_id>` | | Generic POST request | `opensea-post.sh <path> <json_body>` | ### Events and monitoring | Task | Script | |------|--------| | Get collection events | `opensea-events-collection.sh <slug> [event_type] [limit]` | | Stream real-time events | `opensea-stream-collection.sh <slug>` (requires websocat) |
_meta.json
{
"ownerId": "kn7176r43k8cwrwyv9h52051z9809n51",
"slug": "opensea-mcp",
"version": "1.0.2",
"publishedAt": 1770513419679
}references/marketplace-api.md
# OpenSea Marketplace API
This reference covers the marketplace endpoints for buying and selling NFTs on OpenSea.
## Overview
OpenSea uses the **Seaport protocol** for all marketplace orders. The API provides endpoints to:
- Query existing listings and offers
- Build new listings and offers (returns unsigned Seaport orders)
- Fulfill orders (accept listings or offers)
- Cancel orders
**Important**: Creating and fulfilling orders requires wallet signatures. The API returns order data that must be signed client-side before submission.
## Base URL and Authentication
```
Base URL: https://api.opensea.io/api/v2
Auth: x-api-key: $OPENSEA_API_KEY
```
## Supported Chains
| Chain | Identifier |
|-------|------------|
| Ethereum | `ethereum` |
| Polygon | `matic` |
| Arbitrum | `arbitrum` |
| Optimism | `optimism` |
| Base | `base` |
| Avalanche | `avalanche` |
| Klaytn | `klaytn` |
| Zora | `zora` |
| Blast | `blast` |
| Sepolia (testnet) | `sepolia` |
---
## Read Operations (GET)
### Get Best Listing for NFT
Returns the lowest-priced active listing for an NFT.
```bash
GET /api/v2/listings/collection/{collection_slug}/nfts/{identifier}/best
```
**Parameters:**
- `collection_slug`: Collection slug (e.g., `boredapeyachtclub`)
- `identifier`: NFT identifier (token ID)
**Example:**
```bash
scripts/opensea-get.sh "/api/v2/listings/collection/boredapeyachtclub/nfts/1234/best"
```
### Get Best Offer for NFT
Returns the highest active offer for an NFT.
```bash
GET /api/v2/offers/collection/{collection_slug}/nfts/{identifier}/best
```
**Example:**
```bash
scripts/opensea-get.sh "/api/v2/offers/collection/boredapeyachtclub/nfts/1234/best"
```
### Get All Listings for Collection
Returns all active listings for a collection.
```bash
GET /api/v2/listings/collection/{collection_slug}/all
```
**Query parameters:**
- `limit`: Page size (default 50, max 100)
- `next`: Cursor for pagination
**Example:**
```bash
scripts/opensea-listings-collection.sh boredapeyachtclub 50
```
### Get All Offers for Collection
Returns all active offers for a collection.
```bash
GET /api/v2/offers/collection/{collection_slug}/all
```
**Example:**
```bash
scripts/opensea-offers-collection.sh boredapeyachtclub 50
```
### Get Listings for Specific NFT
```bash
GET /api/v2/orders/{chain}/seaport/listings
```
**Query parameters:**
- `asset_contract_address`: Contract address
- `token_ids`: Comma-separated token IDs
- `limit`, `next`: Pagination
**Example:**
```bash
scripts/opensea-get.sh "/api/v2/orders/ethereum/seaport/listings" "asset_contract_address=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&token_ids=1234"
```
### Get Offers for Specific NFT
```bash
GET /api/v2/orders/{chain}/seaport/offers
```
**Query parameters:**
- `asset_contract_address`: Contract address
- `token_ids`: Comma-separated token IDs
**Example:**
```bash
scripts/opensea-get.sh "/api/v2/orders/ethereum/seaport/offers" "asset_contract_address=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&token_idsreferences/rest-api.md
# OpenSea REST API Reference
## Base URL and Authentication
```
Base URL: https://api.opensea.io
Auth header: x-api-key: $OPENSEA_API_KEY
```
## Pagination
List endpoints support cursor-based pagination:
- `limit`: Page size (default varies, max 100)
- `next`: Cursor token from previous response
## Supported Chains
| Chain | Identifier |
|-------|------------|
| Ethereum | `ethereum` |
| Polygon | `matic` |
| Arbitrum | `arbitrum` |
| Optimism | `optimism` |
| Base | `base` |
| Avalanche | `avalanche` |
| Klaytn | `klaytn` |
| Zora | `zora` |
| Blast | `blast` |
| Sepolia (testnet) | `sepolia` |
## Endpoint Reference
### Collections
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v2/collections/{slug}` | GET | Single collection details |
| `/api/v2/collections/{slug}/stats` | GET | Collection statistics (floor, volume) |
| `/api/v2/collections` | GET | List multiple collections |
### NFTs
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v2/chain/{chain}/contract/{contract}/nfts/{token_id}` | GET | Single NFT details |
| `/api/v2/collection/{slug}/nfts` | GET | NFTs by collection |
| `/api/v2/chain/{chain}/account/{address}/nfts` | GET | NFTs by wallet |
| `/api/v2/chain/{chain}/contract/{contract}/nfts` | GET | NFTs by contract |
| `/api/v2/nft/{contract}/{token_id}/refresh` | POST | Refresh NFT metadata |
### Listings
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v2/listings/collection/{slug}/all` | GET | All listings for collection |
| `/api/v2/listings/collection/{slug}/nfts/{token_id}/best` | GET | Best listing for NFT |
| `/api/v2/orders/{chain}/seaport/listings` | GET | Listings by contract/token |
| `/api/v2/orders/{chain}/seaport/listings` | POST | Create new listing |
| `/api/v2/listings/fulfillment_data` | POST | Get buy transaction data |
### Offers
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v2/offers/collection/{slug}/all` | GET | All offers for collection |
| `/api/v2/offers/collection/{slug}/nfts/{token_id}/best` | GET | Best offer for NFT |
| `/api/v2/orders/{chain}/seaport/offers` | GET | Offers by contract/token |
| `/api/v2/orders/{chain}/seaport/offers` | POST | Create new offer |
| `/api/v2/offers/fulfillment_data` | POST | Get sell transaction data |
### Orders
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v2/orders/chain/{chain}/protocol/{protocol}/{hash}` | GET | Get order by hash |
| `/api/v2/orders/chain/{chain}/protocol/{protocol}/{hash}/cancel` | POST | Cancel order |
### Events
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v2/events/collection/{slug}` | GET | Events by collection |
| `/api/v2/events/chain/{chain}/contract/{contract}/nfts/{token_id}` | GET | Events by NFT |
| `/api/v2/events/chain/{chain}/account/{address}` | GET | Events by account |
### Accounts
| Endpoint | Method | Description |
|references/seaport.md
# Seaport (OpenSea marketplace protocol)
## What it is
Seaport is the marketplace protocol used for OpenSea orders. All listings and offers on OpenSea are Seaport orders under the hood.
## Order structure
- **Offer items**: What the offerer provides (e.g., an NFT for listings, WETH for offers)
- **Consideration items**: What the offerer expects to receive (e.g., ETH payment + fees)
## Seaport Contract Addresses
| Chain | Seaport 1.6 Address |
|-------|---------------------|
| All EVM chains | `0x0000000000000068F116a894984e2DB1123eB395` |
Legacy Seaport 1.4: `0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC`
---
## Buying NFTs (Fulfilling Listings)
**No SDK required!** The OpenSea API returns ready-to-use calldata.
### Workflow
1. **Find a listing** - Get order hash from listings endpoint
2. **Get fulfillment data** - POST to fulfillment endpoint
3. **Submit transaction** - Send calldata directly to blockchain
### Step 1: Get Listings
```bash
# Via script
./scripts/opensea-listings-collection.sh basenames
# Via MCP
mcporter call opensea.get_listings collection="basenames" limit=10
```
Note the `order_hash` and `protocol_address` from the response.
### Step 2: Get Fulfillment Calldata
```bash
# Via script
./scripts/opensea-fulfill-listing.sh base 0xORDER_HASH 0xYOUR_WALLET
# Via curl
curl -X POST "https://api.opensea.io/api/v2/listings/fulfillment_data" \
-H "Content-Type: application/json" \
-H "x-api-key: $OPENSEA_API_KEY" \
-d '{
"listing": {
"hash": "0xORDER_HASH",
"chain": "base",
"protocol_address": "0x0000000000000068F116a894984e2DB1123eB395"
},
"fulfiller": {
"address": "0xYOUR_WALLET"
}
}'
```
**Response contains:**
- `fulfillment_data.transaction.to` - Seaport contract
- `fulfillment_data.transaction.value` - ETH to send (wei)
- `fulfillment_data.transaction.input_data` - Encoded calldata
### Step 3: Submit Transaction
```javascript
import { createPublicClient, createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { base } from 'viem/chains';
const account = privateKeyToAccount(PRIVATE_KEY);
const wallet = createWalletClient({ account, chain: base, transport: http() });
const pub = createPublicClient({ chain: base, transport: http() });
// From fulfillment response
const txData = response.fulfillment_data.transaction;
const hash = await wallet.sendTransaction({
to: txData.to,
data: txData.input_data.parameters ? encodeSeaportCall(txData.input_data) : txData.data,
value: BigInt(txData.value)
});
const receipt = await pub.waitForTransactionReceipt({ hash });
console.log(receipt.status === 'success' ? '✅ NFT purchased!' : '❌ Failed');
```
### Complete Working Example
```javascript
// buy-nft.mjs - Buy an NFT via OpenSea fulfillment API
import { createPublicClient, createWalletClient, http, encodeFunctionData } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { base } from 'viem/chains';
const SEAPOactivepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceUrl": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-dfinzer-opensea-mcp/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-dfinzer-opensea-mcp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.5K downloads",
"href": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceUrl": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.2",
"href": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceUrl": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-08T01:16:59.679Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-dfinzer-opensea-mcp/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-dfinzer-opensea-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.2",
"description": "Version 1.0.2 - Documentation updates only; no file or code changes detected. - No impact to functionality or interfaces.",
"href": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceUrl": "https://clawhub.ai/dfinzer/opensea-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-08T01:16:59.679Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
