Communitygithub.com

ProjectOpenSea/opensea-skill

Consulta datos del mercado OpenSea a través de la CLI oficial, SDK, servidor MCP o scripts de shell. Obtén precios mínimos, estadísticas de colecciones, detalles de NFT, datos de tokens, colecciones en tendencia, drops, eventos, búsqueda, favoritos, configuración de perfil y colecciones, y otras operaciones de cartera. Para trading usa opensea-marketplace, para swaps de tokens usa opensea-swaps.

¿Qué es opensea-skill?

Esta skill permite consultar datos completos del mercado OpenSea en múltiples cadenas como Ethereum, Base, Arbitrum, Optimism y Polygon. Está diseñada para agentes de IA y desarrolladores que necesitan acceder a información de colecciones, tokens y NFT, así como a eventos en tiempo real y búsquedas cruzadas. Compatible con CLI (@opensea/cli), SDK, servidor MCP y scripts de shell, la skill gestiona automáticamente la resolución de claves API (incluyendo claves instantáneas gratuitas) y soporta autenticación mediante SIWE, PAT con ámbito y JWT de corta duración. Es especialmente útil para leer datos del mercado, monitorear actividad, explorar drops y gestionar configuraciones de perfil, pero no debe usarse para ejecutar transacciones de compra/venta o swaps de tokens, que corresponden a skills especializadas como opensea-marketplace y opensea-swaps. Su documentación incluye guías paso a paso para la resolución de claves y tablas detalladas de comandos para cada tipo de consulta.

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/ProjectOpenSea/opensea-skill/tree/main/opensea-api

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

API de OpenSea

Consulta datos de NFT y tokens, explora drops, transmite eventos en tiempo real y realiza búsquedas en Ethereum, Base, Arbitrum, Optimism, Polygon y más.

Cuándo usar esta skill (scope_in)

Usa opensea-api para:

  • Detalles de colecciones, estadísticas, rasgos, tendencias y colecciones principales
  • Detalles de NFT, propiedad, actualización de metadatos
  • Detalles de tokens, tokens en tendencia, tokens principales, grupos de tokens
  • Búsqueda entre colecciones, NFT, tokens y cuentas
  • Búsqueda y descubrimiento de herramientas de agente IA registradas (ERC-8257)
  • Lectura de listados, ofertas y órdenes del mercado (sin ejecutarlas)
  • Eventos y monitoreo de actividad (incluyendo transmisiones WebSocket en tiempo real)
  • Drops y elegibilidad para acuñación
  • Consultas de cuentas y resolución ENS
  • Operaciones autenticadas de perfil, configuración de colecciones, lista de seguimiento, drops, cancelación de órdenes y vinculación de carteras descritas en references/authentication.md
  • SIWE sin cabeza, creación de PAT con ámbito, intercambio de JWT de corta duración y REST o MCP autenticados con cartera

Cuándo NO usar esta skill (scope_out, transferencia)

NecesidadUsa en su lugar
Comprar/vender NFT (ejecutar listados u ofertas)opensea-marketplace
Crear nuevos listados u ofertasopensea-marketplace
Compras de NFT entre cadenasopensea-marketplace
Intercambiar tokens ERC20opensea-swaps
Configurar proveedores de firma de carteraopensea-wallet
Construir/registrar/restringir herramientas de agente IAopensea-tool-sdk

Inicio rápido

# Resolver una clave API: reutiliza tu variable de entorno / una clave instantánea
# en caché, o busca una nueva clave instantánea (sin registro) Y la guarda en
# disco para reutilizarla. Consulta "Resolución de clave API" más abajo: guarda
# y reutiliza siempre una clave obtenida.
export OPENSEA_API_KEY=$(scripts/auth/opensea-resolve-key.sh)

# Instalar la CLI globalmente (o usar npx)
npm install -g @opensea/cli

# Obtener información de una colección
opensea collections get boredapeyachtclub

# Obtener precio mínimo y estadísticas de volumen
opensea collections stats boredapeyachtclub

# Obtener detalles de un NFT
opensea nfts get ethereum 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d 1234

# Buscar en OpenSea
opensea search "cool cats"

# Obtener tokens en tendencia
opensea tokens trending --limit 5

Resolución de clave API (léelo antes de tu primera solicitud)

Toda solicitud a OpenSea necesita OPENSEA_API_KEY. Si aún no tienes una clave, puedes obtener una clave instantánea gratuita sin registro. La única regla importante: una vez que obtengas una clave instantánea, guárdala en disco y reutilízala. No la vuelvas a obtener en cada solicitud. Una segunda obtención puede fallar y dejarte sin clave. La solicitud anterior exitosa no habrá persistido la clave por ti.

El flujo (sigue estos pasos en orden, cada vez)

  1. Primero verifica el entorno. Si OPENSEA_API_KEY ya está definida y no está vacía, úsala tal cual. Esta es la ruta para usuarios que proporcionan su propia clave: nunca la sobrescribas ni la vuelvas a obtener.
  2. Luego verifica el disco. Si no hay variable de entorno, busca una clave en caché en ~/.opensea/api_key (sobrescribe el directorio con $OPENSEA_CONFIG_DIR). Si el archivo existe y no está vacío, cárgalo en OPENSEA_API_KEY y úsalo.
  3. Obtén solo si falta. Si no hay ni variable de entorno ni clave en caché, solicita una nueva clave instantánea a POST /api/v2/auth/keys.
  4. Guarda inmediatamente después de obtener. Escribe la clave obtenida en ~/.opensea/api_key (modo 600) antes de hacer tu llamada a la API, para que el siguiente paso — y cada solicitud futura — la reutilice en lugar de volver a obtenerla.

El helper scripts/auth/opensea-resolve-key.sh realiza los cuatro pasos por ti y muestra la clave resuelta. Prefiérelo sobre una llamada curl ... /auth/keys desnuda, que obtiene sin guardar y es exactamente lo que causó que se perdieran las claves:

# ¿Variable de entorno? -> úsala. ¿Clave en caché? -> reutilízala. Si no, obtén + guarda en disco.
export OPENSEA_API_KEY=$(scripts/auth/opensea-resolve-key.sh)

opensea collections get boredapeyachtclub

Si no puedes usar el helper, replica la misma lógica ordenada explícitamente:

KEY_FILE="${OPENSEA_CONFIG_DIR:-$HOME/.opensea}/api_key"
if [ -n "${OPENSEA_API_KEY:-}" ]; then
  :                                              # 1. la variable de entorno gana
elif [ -s "$KEY_FILE" ]; then
  export OPENSEA_API_KEY=$(cat "$KEY_FILE")      # 2. reutilizar clave en caché
else
  api_key=$(curl -s -X POST https://api.opensea.io/api/v2/auth/keys | jq -r '.api_key')  # 3. obtener
  mkdir -p "$(dirname "$KEY_FILE")"
  (umask 077; printf '%s\n' "$api_key" > "$KEY_FILE")  # 4. GUARDAR antes de usarla
  export OPENSEA_API_KEY="${api_key}"
fi

Casos límite

  • La clave ya existe (variable de entorno o archivo en caché): reutilízala; no obtengas una nueva. Volver a obtener desperdicia el límite de tasa y puede fallar.
  • Clave inválida o caducada (las claves instantáneas caducan después de 7 días; una solicitud devuelve HTTP 401/403): la clave en caché está obsoleta. Vuelve a obtenerla y sobrescribe la caché con scripts/auth/opensea-resolve-key.sh --force (o elimina ~/.opensea/api_key y vuelve a ejecutar el flujo). --force nunca sobrescribe una clave proporcionada a través de la variable de entorno OPENSEA_API_KEY.
  • La obtención falla (límite de tasa HTTP 429, o error de red): no reintentes en un bucle cerrado. Si tienes una clave en caché, sigue usándola. De lo contrario, espera e inténtalo de nuevo más tarde, o crea una clave completa en Configuración → Desarrollador. Para límites de tasa más altos que el nivel gratuito instantáneo, usa una clave completa.

También puedes obtener una clave cruda (respuesta JSON, sin persistencia) con opensea auth request-key o scripts/auth/opensea-auth-request-key.sh — pero si usas esos, debes guardar la clave tú mismo según el paso 4 anterior.

Guía de tareas

Recomendado: Usa la CLI opensea (@opensea/cli) como tu herramienta principal. Instálala con npm install -g @opensea/cli o usa npx @opensea/cli. Los scripts de shell en scripts/ siguen disponibles como alternativas.

Lectura de datos NFT

TareaComando CLIAlternativa
Obtener detalles de colecciónopensea collections get <slug>collections/opensea-collection.sh <slug>
Obtener estadísticas de colecciónopensea collections stats <slug>collections/opensea-collection-stats.sh <slug>
Obtener colecciones en tendenciaopensea collections trending [--timeframe <tf>] [--chains <chains>]collections/opensea-collections-trending.sh [timeframe] [limit] [chains] [category]
Obtener colecciones principalesopensea collections top [--sort-by <field>] [--chains <chains>]collections/opensea-collections-top.sh [sort_by] [limit] [chains] [category]
Listar NFT en colecciónopensea nfts list-by-collection <slug> [--limit <n>] [--traits <json>]collections/opensea-collection-nfts.sh <slug> [limit] [next]
Obtener un solo NFTopensea nfts get <chain> <contract> <token_id>nfts/opensea-nft.sh <chain> <contract> <token_id>
Listar NFT por carteraopensea nfts list-by-account <chain> <address> [--limit <n>]accounts/opensea-account-nfts.sh <chain> <address> [limit]
Listar NFT por contratoopensea nfts list-by-contract <chain> <contract> [--limit <n>]
Obtener rasgos de colecciónopensea collections traits <slug>
Obtener detalles de contratoopensea nfts contract <chain> <address>
Actualizar metadatos de NFTopensea nfts refresh <chain> <contract> <token_id>

Lectura de datos de tokens

TareaComando CLIAlternativa
Obtener tokens en tendenciaopensea tokens trending [--chains <chains>] [--limit <n>]get_trending_tokens (MCP)
Obtener tokens principales por volumenopensea tokens top [--chains <chains>] [--limit <n>]get_top_tokens (MCP)
Obtener detalles de tokenopensea tokens get <chain> <address>get_tokens (MCP)
Obtener actividad de intercambio de tokenopensea tokens activity <chain> <address> [--limit <n>] [--next <cursor>]tokens/opensea-token-activity.sh
Obtener actividad de token de cuentaopensea tokens account-activity <address> [--chains <chains>] [--tokens <tokens>] [--type <types>] [--limit <n>] [--next <cursor>]
Listar grupos de tokensopensea token-groups list [--limit <n>] [--next <cursor>]tokens/opensea-token-groups.sh [limit] [cursor]
Obtener grupo de token por slugopensea token-groups get <slug>tokens/opensea-token-group.sh <slug>
Buscar tokensopensea search <query> --types tokensearch_tokens (MCP)
Verificar saldos de tokensget_token_balances (MCP)

REST y MCP autenticados con cartera

Lee la referencia de autenticación de cartera antes de actuar como una cartera. Contiene las rutas felices de CLI y SDK, encabezados REST y MCP, ciclo de vida de credenciales y reglas de recuperación.

Consultas del mercado (solo lectura)

TareaComando CLIAlternativa
Obtener mejores listados para colecciónopensea listings best <slug> [--limit <n>] [--traits <json>]listings/opensea-best-listing.sh <slug> <token_id>
Obtener mejor listado para un NFT específicoopensea listings best-for-nft <slug> <token_id>listings/opensea-best-listing.sh <slug> <token_id>
Obtener mejor oferta para NFTopensea offers best-for-nft <slug> <token_id>offers/opensea-best-offer.sh <slug> <token_id>
Listar todos los listados de colecciónopensea listings all <slug> [--limit <n>]listings/opensea-listings-collection.sh <slug> [limit]
Listar todas las ofertas de colecciónopensea offers all <slug> [--limit <n>]offers/opensea-offers-collection.sh <slug> [limit]
Obtener ofertas de colecciónopensea offers collection <slug> [--limit <n>]offers/opensea-offers-collection.sh <slug> [limit]
Obtener ofertas de rasgosopensea offers traits <slug> --type <type> --value <value>
Obtener orden por hashorders/opensea-order.sh <chain> <order_hash>

Filtrado de rasgos del lado del servidor

Tres endpoints con ámbito de colección aceptan un parámetro de consulta traits para filtrado del lado del servidor:

EndpointCLISDK
Listar NFT en colecciónopensea nfts list-by-collection <slug> --traits <json>client.nfts.listByCollection(slug, { traits })
Mejores listados para colecciónopensea listings best <slug> --traits <json>client.listings.best(slug, { traits })
Eventos para colecciónopensea events by-collection <slug> --traits <json>client.events.byCollection(slug, { traits })

--traits toma un arreglo codificado en JSON de objetos { "traitType": string, "value": string }. Múltiples entradas se combinan con AND:

opensea nfts list-by-collection doodles-official \
  --traits '[{"traitType":"Background","value":"Red"}]'

Siempre prefiere el filtrado del lado del servidor sobre el del lado del cliente: paginar el conjunto sin filtrar desperdicia el presupuesto del límite de tasa.

Búsqueda

TareaComando CLI
Buscar coleccionesopensea search <query> --types collection
Buscar NFTopensea search <query> --types nft
Buscar tokensopensea search <query> --types token
Buscar cuentasopensea search <query> --types account
Buscar múltiples tiposopensea search <query> --types collection,nft,token
Buscar en cadena específicaopensea search <query> --chains base,ethereum

Eventos y monitoreo

TareaComando CLIAlternativa
Listar eventos recientesopensea events list [--event-type <type>] [--limit <n>]
Obtener eventos de colecciónopensea events by-collection <slug> [--event-type <type>] [--traits <json>]events/opensea-events-collection.sh <slug> [event_type] [limit]
Obtener eventos para un NFT específicoopensea events by-nft <chain> <contract> <token_id>
Obtener eventos para una cuentaopensea events by-account <address>
Transmitir eventos en tiempo realstream/opensea-stream-collection.sh <slug> (requiere websocat)

Tipos de evento: sale, transfer, mint, listing, offer, trait_offer, collection_offer

Drops y acuñación

TareaComando CLIAlternativa
Listar drops (destacados/próximos/recientes)opensea drops list [--type <type>] [--chains <chains>]drops/opensea-drops.sh [type] [limit] [chains]
Obtener detalles y etapas de dropopensea drops get <slug>drops/opensea-drop.sh <slug>
Construir transacción de acuñaciónopensea drops mint <slug> --minter <address> [--quantity <n>]drops/opensea-drop-mint.sh <slug> <minter> [quantity]
Construir transacciones de acuñación entre cadenasopensea drops cross-chain-mint <slug> --payer <address> --minter <address> --payment-chain <chain> --payment-token <address> [--quantity <n>]drops/opensea-drop-cross-chain-mint.sh <slug> <payer> <minter> <payment_chain> <payment_token> [quantity]
Construir o enviar la transacción de publicación (cartera propietaria, write:drops)opensea drops publish <slug> [--send] [--wallet-provider <provider>]
Construir o enviar la transacción de despublicaciónopensea drops unpublish <slug> [--send] [--wallet-provider <provider>]
Subir medios y metadatos de drop a IPFSopensea drops upload-metadata-ipfs <slug> [--wait] [--interval <s>] [--wait-timeout <s>]
Verificar progreso de subida IPFSopensea drops metadata-ipfs-status <slug> <workflow-execution-id>
Solicitar subida de manifiesto CSV de metadatosopensea drops create-manifest-upload <slug>
Subir un archivo a un contexto de subida`opensea drops upload-file --context <path-> --file [--index ]`
Desplegar un nuevo contrato SeaDropdeploy_seadrop_contract (MCP)
Verificar estado del despliegueget_deploy_receipt (MCP)

publish --send firma con la cartera EVM configurada y rechaza una que no sea el from de la transacción (el propietario en cadena del contrato), ya que una transacción desde cualquier otra dirección se revertiría. upload-file toma un único contexto de subida; para el arreglo que devuelve create-item-media-upload, pasa --index <n> o canaliza un elemento con jq '.[0]'. upload-metadata-ipfs --wait sale con 1 cuando la subida falla, no se encuentra o supera --wait-timeout.

Para una acuñación entre cadenas, envía cada transacción devuelta en orden. Guarda el objeto receipt_request devuelto exactamente como se recibió, luego consúltalo hasta que el estado sea SUCCESS o FAILED. Si es FAILED, revisa los registros de la transacción para depurar.

Transmisión en tiempo real

# Transmitir eventos de colección (requiere websocat)
stream/opensea-stream-collection.sh boredapeyachtclub

Cuentas y perfiles

TareaComando CLIAlternativa
Obtener detalles de cuentaopensea accounts get <address_or_ens>accounts/opensea-account.sh <address_or_ens>
Listar NFT de cuentaopensea nfts list-by-account <chain> <address> [--limit <n>]accounts/opensea-account-nfts.sh <chain> <address> [limit]
Obtener actividad de cuentaopensea events by-account <address>
Resolver ENSopensea accounts resolve-ens <name>
Obtener perfil del usuario actualopensea accounts me
Actualizar perfil del usuario actualopensea accounts update-me --bio "<text>" [--profile-image <url>] [--banner-image <url>]
Añadir cartera al perfilopensea accounts add-wallet <address>

Actualizaciones de listados (solo lectura)

Estos endpoints devuelven actualizaciones de metadatos de listados. Para la creación y ejecución real de órdenes, usa opensea-marketplace.

TareaComando CLIAlternativa
Obtener listado por hashopensea orders get <chain> <order_hash>orders/opensea-order.sh <chain> <order_hash>
Obtener listado por criterioslistings/opensea-listing-by-criteria.sh
Obtener oferta por criteriosoffers/opensea-offer-by-criteria.sh

Arquitectura y MCP

Esta skill expone comandos CLI (vía @opensea/cli), scripts de shell en scripts/ y una ruta de Protocolo de Contexto de Modelo (MCP). Para conectarte a un servidor MCP:

{
  "mcpServers": {
    "opensea": {
      "command": "npx",
      "args": ["-y", "@opensea/mcp-server"]
    }
  }
}

El servidor MCP carga tu OPENSEA_API_KEY del entorno y expone todas las consultas como herramientas. La mayoría de los comandos CLI tienen una contraparte MCP directa (por ejemplo, get_collection, get_collection_stats, search_collections). La autenticación MCP sigue el mismo flujo de resolución de claves descrito anteriormente.

Referencia de SDK y API REST

La documentación completa de la API REST de OpenSea está en docs.opensea.io. El SDK (@opensea/sdk) ofrece clientes con seguridad de tipos para todos los endpoints. Los scripts de shell en scripts/ y los comandos CLI son envoltorios alrededor de la API REST.

Solución de problemas

  • Clave API no encontrada: Ejecuta scripts/auth/opensea-resolve-key.sh y exporta el resultado como OPENSEA_API_KEY. Si el script falla, verifica tu conectividad de red.
  • Error 401/403: la clave ha caducado o es inválida. Fuerza una nueva obtención con scripts/auth/opensea-resolve-key.sh --force.
  • Error 429: te has quedado sin límite de tasa. Reduce la frecuencia de las solicitudes o usa una clave de nivel superior.
  • Comando no encontrado: instala la CLI con npm install -g @opensea/cli o usa npx @opensea/cli.
  • Scripts de shell no ejecutables: ejecuta chmod +x scripts/**/*.sh.
  • Preguntas sobre la API: consulta la documentación de OpenSea.

Para la API del toolkit de agente (ERC-8257), usa opensea-search-tools o la referencia de herramientas registradas en references/agent-toolkit.md.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados