Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
RPC Assistant

¿Qué es una API NFT de Base y cómo consultar datos NFT en Base?

Resumen

Una API NFT de Base es el conjunto de métodos RPC y servicios de datos indexados que se utilizan para leer la propiedad, los metadatos y el historial de transferencias de NFT en la red Base. Las llamadas JSON-RPC estándar como eth_call, eth_getLogs y eth_getBalance cubren las lecturas on-chain, mientras que las API de tipo indexador añaden datos de propiedad y colección preagregados. Este artículo explica qué enfoque se adapta a cada carga de trabajo y cómo conectarse de forma fiable.

Verás cómo consultar contratos ERC-721 y ERC-1155 directamente a través de Base RPC, cuándo un indexador es la mejor herramienta y cómo configurar un endpoint de producción. OnFinality proporciona acceso a la API RPC de Base e infraestructura de nodos dedicados si necesitas un rendimiento constante para el tráfico de lectura intensivo de NFT.

Si has buscado una API NFT de Base, probablemente necesites leer datos NFT en Base: quién posee un token, qué contiene una colección o cómo se movió un token entre carteras. No existe una única "API NFT" en Base. En su lugar, combinas llamadas JSON-RPC estándar a la red Base con servicios de indexación opcionales que preagregan la propiedad y los metadatos. Esta página muestra qué hace cada capa, cómo conectarse y cómo mantener estable el tráfico de lectura de NFT en producción.

Qué enfoque se adapta a tu carga de trabajo NFT

Antes de escribir código, decide si necesitas lecturas on-chain sin procesar o datos preindexados. La elección correcta depende de cuánta agregación quieras hacer tú mismo y de la frescura que necesiten los datos.

Carga de trabajoMejor opciónPor qué
Leer el propietario o el saldo de un tokenBase RPC (eth_call)Lectura directa del contrato, siempre actualizada en el bloque consultado
Listar todos los tokens que posee una carteraAPI de indexador o tu propio indexadorRPC por sí solo no puede enumerar tenencias sin escanear logs
Obtener metadatos e imágenes de una colecciónAPI de indexador o tokenURI + obtención off-chainLos metadatos a menudo residen en IPFS o HTTP, no completamente on-chain
Rastrear transferencias en tiempo realBase RPC (eth_getLogs o WebSocket)Los logs te dan los eventos Transfer sin procesar a medida que ocurren
Rellenar el historial completo de transferenciasRPC con capacidad de archivo o indexadorLas consultas históricas de logs necesitan estado de archivo y paginación cuidadosa
Verificar un mint o una venta on-chainBase RPC (eth_getTransactionReceipt)Los recibos confirman lo que realmente se ejecutó

Un patrón práctico es usar Base RPC para lecturas autoritativas en un punto en el tiempo y un indexador para consultas de tipo lista. Muchos equipos ejecutan ambos: RPC para la corrección y el indexador para la velocidad en vistas agregadas.

Configuración de la cadena Base de un vistazo

Utiliza estos valores al añadir Base a una cartera, configuración de backend o entorno de pruebas. Coinciden con la configuración de red que OnFinality publica para Base.

ConfiguraciónBase mainnetBase Sepolia testnet
Chain ID845384532
Moneda nativaETH (18 decimales)ETH (18 decimales)
Explorador de bloqueshttps://basescan.orghttps://sepolia.basescan.org
RPC público (OnFinality)https://base.api.onfinality.io/publichttps://base-sepolia.api.onfinality.io/public
TransporteHTTPHTTP

Para obtener un endpoint gestionado y detalles de la red, consulta la página de red Base RPC y la página de red Base Sepolia RPC.

Leer datos NFT con JSON-RPC

La mayoría de las lecturas de ERC-721 y ERC-1155 se realizan mediante eth_call con un selector de función codificado. Las tres llamadas que más usarás son ownerOf, balanceOf y tokenURI para ERC-721, y balanceOf más uri para ERC-1155.

Aquí tienes un ejemplo mínimo de curl que llama a ownerOf(uint256) en un contrato ERC-721. El selector de ownerOf es 0x6352211e, seguido del ID del token rellenado a 32 bytes.

curl -s https://base.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_call",
    "params": [
      {
        "to": "0xYOUR_NFT_CONTRACT",
        "data": "0x6352211e0000000000000000000000000000000000000000000000000000000000000001"
      },
      "latest"
    ]
  }'

La respuesta está codificada en ABI. Decodifícala como una dirección. Si el token no existe, la llamada se revierte y obtienes un objeto de error en lugar de un valor, así que maneja ambos casos.

En JavaScript, viem y ethers se encargan de la codificación por ti. Este ejemplo lee el propietario y el token URI de un token ERC-721:

import { createPublicClient, http, parseAbi } from "viem";
import { base } from "viem/chains";

const client = createPublicClient({
  chain: base,
  transport: http("https://base.api.onfinality.io/public"),
});

const abi = parseAbi([
  "function ownerOf(uint256) view returns (address)",
  "function tokenURI(uint256) view returns (string)",
]);

const owner = await client.readContract({
  address: "0xYOUR_NFT_CONTRACT",
  abi,
  functionName: "ownerOf",
  args: [1n],
});

const uri = await client.readContract({
  address: "0xYOUR_NFT_CONTRACT",
  abi,
  functionName: "tokenURI",
  args: [1n],
});

console.log(owner, uri);

tokenURI normalmente devuelve un enlace ipfs:// o https://. Resolverlo es una obtención off-chain, no una llamada RPC, así que planifica el almacenamiento en caché y los tiempos de espera.

Enumerar transferencias y propiedad con logs

Para encontrar transferencias, consulta eth_getLogs filtrado por el tema del evento Transfer de ERC-721 o ERC-1155 y la dirección del contrato. Así es como la mayoría de los indexadores construyen tablas de propiedad.

const logs = await client.getLogs({
  address: "0xYOUR_NFT_CONTRACT",
  fromBlock: 0n,
  toBlock: "latest",
});

Dos restricciones importan. Primero, los proveedores limitan el rango de bloques por solicitud eth_getLogs, por lo que debes paginar a través del historial en fragmentos. Segundo, las consultas históricas profundas necesitan estado de archivo; un nodo sin archivo puede rechazarlas o fallar. Si estás rellenando una colección grande, fragmenta por rango de bloques y persiste tu progreso para que una solicitud fallida no fuerce un reinicio completo.

Para feeds de transferencias en vivo, una suscripción WebSocket a logs evita el polling. No todos los endpoints exponen transporte WebSocket, así que confirma el soporte de transporte antes de diseñar en torno a ello. Si necesitas suscripciones persistentes, la infraestructura de nodos dedicados suele ser una mejor opción que un endpoint público compartido.

Cuándo un endpoint RPC sin procesar no es suficiente

RPC te da corrección pero no comodidad. No puede responder "enumera cada NFT que posee esta cartera" sin que escanees logs y reconstruyas el estado. Ese es el trabajo de un indexador o una API de datos NFT.

Razones comunes por las que los equipos añaden una capa de indexador sobre Base RPC:

  • Vistas de cartera que deben devolverse rápidamente para muchas colecciones.
  • Páginas de mercado o galería que necesitan metadatos y recuentos a nivel de colección.
  • Análisis que agregan transferencias a través de miles de contratos.
  • Almacenamiento en caché de metadatos para no resolver tokenURI en cada carga de página.

Puedes ejecutar tu propio indexador contra un endpoint Base RPC, o usar un servicio de datos NFT alojado. De cualquier manera, el endpoint RPC subyacente aún necesita manejar tu carga de indexación, que suele ser mucho más pesada que una sola solicitud de usuario.

Lista de verificación de preparación para producción para tráfico de lectura NFT

Las cargas de trabajo NFT son intensivas en lectura y a ráfagas. Un drop o una nueva colección pueden multiplicar el volumen de solicitudes en minutos. Antes de lanzar, revisa estos elementos.

VerificaciónQué verificar
Capacidad del endpointTu proveedor puede absorber lecturas en ráfaga de carteras, galerías e indexadores
Acceso a archivoLas consultas históricas de logs y estado son compatibles si haces backfill
TransporteHTTP para lecturas, WebSocket si te suscribes a logs en vivo
Conmutación por errorUn segundo endpoint o proveedor está configurado para reintento automático
Almacenamiento en cachéLas respuestas de metadatos y tokenURI se almacenan en caché con TTL razonables
Procesamiento por lotesMúltiples lecturas se agrupan con solicitudes por lotes JSON-RPC cuando es posible
MonitoreoRealizas seguimiento de tasas de error, latencia y respuestas de límite de tasa

Si esperas un volumen de lectura NFT constante o alto, compara un endpoint público compartido con un plan gestionado y nodos dedicados. OnFinality ofrece acceso a la API RPC de Base y nodos dedicados; consulta Precios de RPC y la lista completa de redes RPC compatibles para planificar la capacidad.

Modos de fallo comunes y cómo depurarlos

La mayoría de los problemas de la API NFT de Base se dividen en unas pocas categorías repetibles.

SíntomaCausa probableSolución
eth_call se revierteEl token no existe o el contrato es incorrectoConfirma el ID del token y la dirección del contrato
Resultados de log vacíosTema o rango de bloques incorrectoVerifica el hash del tema Transfer y amplía el rango
Solicitud rechazada en bloques antiguosNodo sin archivoUsa un endpoint con capacidad de archivo
Errores de límite de tasa bajo cargaLímites de endpoint compartidoAgrupa solicitudes, almacena en caché o cambia a un plan gestionado
Los metadatos no se carganGateway IPFS o tiempo de espera HTTPAñade un gateway de respaldo y almacena en caché los resultados
Propiedad inconsistenteLectura en bloques diferentesFija un número de bloque para instantáneas consistentes

Un diagnóstico rápido es reproducir la llamada fallida contra un bloque conocido como bueno y comparar. Si tiene éxito allí, el problema suele ser la profundidad del estado o el rango, no tu codificación ABI.

Pruebas en Base Sepolia

Construye y prueba contra Base Sepolia antes de mainnet. El chain ID es 84532, y el endpoint público de OnFinality es https://base-sepolia.api.onfinality.io/public. Despliega un ERC-721 de prueba, acuña algunos tokens y ejecuta tus rutas ownerOf, balanceOf y eth_getLogs contra él. Prueba tu lógica de paginación aquí, donde los errores son baratos, en lugar de en mainnet donde un mal backfill puede ser costoso.

Puntos clave

  • Una API NFT de Base es una combinación de llamadas JSON-RPC de Base y, opcionalmente, un indexador para datos agregados.
  • Usa eth_call para ownerOf, balanceOf y tokenURI; usa eth_getLogs para transferencias.
  • RPC no puede enumerar las tenencias de una cartera por sí solo; eso necesita un indexador o tu propio trabajo de indexación.
  • Las consultas históricas de logs necesitan estado de archivo y paginación por rango de bloques.
  • Confirma el soporte de transporte antes de depender de suscripciones WebSocket.
  • Planifica el tráfico de lectura a ráfagas con almacenamiento en caché, procesamiento por lotes y conmutación por error.
  • Prueba en Base Sepolia (chain ID 84532) antes de mainnet.

Preguntas frecuentes

¿Existe una única API NFT de Base?

No. Base expone JSON-RPC estándar de Ethereum, por lo que las lecturas de NFT usan los mismos métodos que cualquier cadena EVM. Los datos NFT agregados provienen de indexadores o servicios de datos alojados superpuestos.

¿Puedo listar todos los NFT que posee una cartera usando solo RPC?

No directamente. Tendrías que escanear los logs de Transfer y reconstruir la propiedad tú mismo. Un indexador es la opción práctica para consultas de tipo cartera.

¿Necesito un nodo de archivo para el historial de NFT?

Si consultas bloques antiguos o rellenas el historial de transferencias, sí. Los endpoints con capacidad de archivo sirven estado histórico que un nodo podado no puede.

¿Base RPC admite suscripciones WebSocket?

El soporte de transporte varía según el endpoint. Consulta la documentación de tu proveedor antes de diseñar en torno a suscripciones de logs en vivo.

¿Cómo evito los límites de tasa durante un backfill?

Agrupa solicitudes, pagina a través de logs en fragmentos, almacena en caché los metadatos y considera un endpoint gestionado o dedicado para una carga de indexación sostenida.

¿Dónde puedo encontrar los detalles de endpoint y cadena de Base?

Consulta la página de red Base RPC y la página de red Base Sepolia RPC para configuraciones de cadena y endpoints.

Base de conocimiento RPC

Detalles RPC relacionados

RPC de redMonad

¿Cuándo se lanzó la mainnet de peaq y qué significa para tu desarrollo en 2025?

La mainnet de peaq se lanzó en 2024, pasando la Layer 1 enfocada en DePIN de experimentos en testnet a una red de producción donde máquinas, vehículos...

RPC de redSORA

¿Qué es el proyecto blockchain SORA y cómo se construye sobre él?

El proyecto blockchain SORA es un sistema monetario descentralizado y una plataforma DeFi construida sobre Substrate, diseñada para crear un marco eco...

Selección de proveedor RPCSolana

¿Cómo elijo proveedores de RPC de Solana confiables para API de datos NFT?

Las API de datos NFT en Solana dependen de llamadas RPC más pesadas que las transferencias simples: consultas de cuentas de tokens, lecturas de metada...

Selección de proveedor RPCSolana

¿Cómo se evalúan los servicios RPC de Solana con distribución geográfica para producción?

La distribución geográfica de RPC de Solana importa porque los tiempos de slot y las ventanas de confirmación de Solana son cortos, por lo que la dist...

Infraestructura blockchain

Alojamiento de nodos cripto: ¿Cuándo alquilar infraestructura en lugar de ejecutarla uno mismo?

El alojamiento de nodos cripto se refiere a la práctica de ejecutar nodos blockchain en infraestructura de terceros en lugar de autoalojarlos. Este ar...

Infraestructura blockchainBittensor

¿Qué es un nodo de Bittensor y cómo elegir la configuración adecuada?

Un nodo de Bittensor (subtensor) es un nodo completo de blockchain que se conecta a la red de Bittensor, permitiéndote leer el estado de la cadena, en...

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar