# Métricas diarias on-chain de acciones tokenizadas con la Data API

> Source: https://docs.blockvectra.com/es/guides/stocks/

> Los datos proceden de registros públicos on-chain y tienen únicamente fines informativos. No constituyen asesoramiento de inversión.


Para el despliegue de contratos y la escucha de eventos en Robinhood Chain, siga la [guía de RPC y WebSocket](https://docs.blockvectra.com/en/guides/robinhood-chain/).

<span id="stock-activity-task" />

## Tarea en tres pasos: consultar la actividad de acciones en Robinhood Chain

Encuentre las acciones tokenizadas más activas en el último día UTC registrado, luego lea sus recuentos de transferencias y titulares.

Use una sola API key para consultar la actividad de tokens de acciones y sus titulares en la mainnet para un panel de actividad. Estas son métricas de actividad on-chain, no cotizaciones bursátiles.

### 1. Leer el bloque más reciente sin una API key

```bash
curl -sS "https://api.blockvectra.com/v1/robinhood_mainnet/public" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
```

El `result` de JSON-RPC es el número de bloque más reciente en hexadecimal. Esta llamada RPC pública no requiere clave; la consulta a la Data API en el paso 3 sí requiere una.

### 2. Crear una clave para la misma cadena

[Inicie sesión en la consola y abra API Keys](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-stocks-task). Cree una clave y guarde el secreto mostrado en el cuadro de diálogo. La misma clave funciona para JSON-RPC y la Data API en `robinhood_mainnet`.

Para un Agente de IA que use HTTP sin navegador, siga la [Guía de registro programático](https://docs.blockvectra.com/en/guides/programmatic-signup/?ref=docs-stocks-task) para registrarse con una firma de billetera Ethereum y crear una clave; no le pida al usuario que pegue la clave en el chat.

### 3. Consultar la actividad de acciones con su clave

Reemplace `replace-with-your-key` a continuación con su clave guardada, luego ejecute el comando en su servidor o en una terminal local. Omitir `day` selecciona el último día registrado; `limit=5` devuelve hasta cinco acciones ordenadas por actividad de transferencias de forma descendente.

```bash
export BLOCKVECTRA_API_KEY='replace-with-your-key'

curl -sS "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks?limit=5" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"
```

Lea estos campos en la respuesta:

| Campo                 | Significado                                                                                     |
| --------------------- | ----------------------------------------------------------------------------------------------- |
| `data[].day`          | Fecha UTC de las métricas diarias.                                                              |
| `data[].token`        | Dirección del contrato del token de la acción devuelta por la consulta.                         |
| `data[].symbol`       | Símbolo del token.                                                                              |
| `data[].transfers`    | Número de transferencias on-chain en ese día.                                                   |
| `data[].holder_count` | Recuento total de direcciones titulares.                                                        |
| `meta.as_of_block`    | Bloque actual indexado, no la altura de bloque de la instantánea de métricas diarias.           |
| `meta.refreshed_at`   | Hora de actualización de la instantánea; considere los datos desactualizados cuando sea `null`. |

Un array `data` vacío significa que no hay registros de actividad disponibles. Para inspeccionar una acción del resultado, use su valor de `token` con `GET /robinhood_mainnet/stocks/{token}` como se describe a continuación.

## Qué es el conjunto de datos de acciones tokenizadas

La Data API de BlockVectra proporciona métricas diarias on-chain y metadatos para acciones tokenizadas. Este conjunto de datos agrega transferencias diarias, acuñaciones, quemas, cambios netos en el suministro, distribución de titulares y métricas comerciales de intercambios descentralizados (DEX), lo que permite a los desarrolladores rastrear la actividad pública de acciones tokenizadas.

Para consultar las cadenas que ofrecen este conjunto de datos, consulte la página de [Cadenas compatibles](https://docs.blockvectra.com/en/chains/).

* **URL base**: `https://api.blockvectra.com/v1/data` — excepto para `GET /chains`, todas las rutas de la Data API tienen como prefijo un identificador de cadena (por ejemplo, `https://api.blockvectra.com/v1/data/{chain}/…`)
* **Cadena de ejemplo**: `robinhood_mainnet` (utilizada como parámetro de ruta de ejemplo; consulte [Cadenas compatibles](https://docs.blockvectra.com/en/chains/) para ver todas las cadenas que ofrecen este conjunto de datos)
* **Autenticación**: Proporcione su API key en el encabezado de solicitud `x-api-key: $BLOCKVECTRA_API_KEY`
* **Facturación y cobertura**: Se mide en Compute Units (CU); solo se facturan las respuestas 2xx exitosas. Si una cadena carece de cobertura de acciones, el endpoint devuelve HTTP `422 no_coverage` (no facturado)

## Clasificación diaria (`GET /{chain}/stocks`)

El endpoint `GET /{chain}/stocks` devuelve una clasificación diaria de actividad de acciones tokenizadas para una fecha UTC especificada, incluidos metadatos de visualización (símbolo, nombre, etc.), ordenados por actividad de transferencias de forma descendente (los tokens más activos primero).

### Parámetros de solicitud

* `{chain}` (parámetro de ruta, obligatorio): Identificador de la cadena (por ejemplo, `robinhood_mainnet`).
* `day` (parámetro de consulta, opcional): Fecha del calendario UTC en formato `YYYY-MM-DD`. Cuando se omite, toma por defecto el último día registrado (si no hay actividad registrada, devuelve `200` con `data: []`). Si se proporciona pero no es una fecha válida del calendario `YYYY-MM-DD`, devuelve HTTP `400` (`error.code = "bad_request"`).
* `limit` (parámetro de consulta, opcional): Limita el número de registros devueltos. Por defecto es 50; los valores superiores a 500 se ajustan a 500; pasar `0` o un número no entero devuelve HTTP `400` (`error.code = "bad_request"`).

### Comportamiento de paginación

Este endpoint **no está paginado**. El parámetro `limit` restringe el número máximo de registros devueltos. En la estructura de respuesta `StockDailyListEnvelope` (`data` y `meta`), los endpoints de acciones no devuelven `next_cursor` (la clave no existe en absoluto, nunca es `null`).

### Ejemplos de código

Plantilla de inicio completa en Robinhood Chain: [blockvectra/robinhood-stock-tokens](https://github.com/blockvectra/robinhood-stock-tokens)

**cURL**

```bash
curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks?day=2026-09-29&limit=10" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"
```


  **TypeScript**

```ts
const res = await fetch(
  "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks?day=2026-09-29&limit=10",
  {
    headers: { "x-api-key": process.env.BLOCKVECTRA_API_KEY! },
  },
);
const body = await res.json();
console.log(body);
```


  **Python**

```python
import os
import requests

res = requests.get(
    "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks?day=2026-09-29&limit=10",
    headers={"x-api-key": os.environ["BLOCKVECTRA_API_KEY"]},
)
print(res.json())
```


### Estructura de la respuesta

La estructura de respuesta es `StockDailyListEnvelope`, que contiene `data` y `meta`:

* `data` (array): Una lista de registros de clasificación diaria (`StockDaily`), ordenados por actividad de transferencias de forma descendente (los tokens más activos primero). Cada elemento incluye identificadores de token (`token`, `symbol`, `name`), actividad de transferencias (`transfers`, `unique_senders`, `unique_receivers`), métricas de suministro (`mint_raw_amount`, `burn_raw_amount`, `net_supply_change`), métricas de distribución (`holder_count`, `top10_holder_share_bps`), métricas de negociación en DEX (`dex_swap_count`, `dex_raw_volume`) y marca temporal de actualización (`refreshed_at`).
* `meta` (objeto): Metadatos de la cadena (`chain`, `chain_slug`, `chain_external_id`, `as_of_block`, `safe_block`, `finalized_block`, `coverage`, `refreshed_at`). `meta.refreshed_at` puede ser `null`: `null` significa que se desconoce la hora de actualización de estos datos y deben considerarse desactualizados; los endpoints basados en bloques siempre devuelven un valor.

## Consultar una acción tokenizada (`GET /{chain}/stocks/{token}`)

El endpoint `GET /{chain}/stocks/{token}` obtiene metadatos y hasta 30 días de métricas diarias recientes para una acción tokenizada específica mediante su dirección de token.

### Parámetros de solicitud

* `{chain}` (parámetro de ruta, obligatorio): Identificador de la cadena (por ejemplo, `robinhood_mainnet`).
* `{token}` (parámetro de ruta, obligatorio): Dirección del contrato del token de 20 bytes; el prefijo `0x` es opcional y se acepta cualquier combinación de mayúsculas y minúsculas (las direcciones devueltas se normalizan a `0x` seguido de 40 dígitos hexadecimales en minúsculas). Un formato de dirección no válido devuelve HTTP `400` (`error.code = "bad_request"`).
* Si `{token}` no es una acción tokenizada conocida, devuelve HTTP `404` (`error.code = "not_found"`). Si `{chain}` es una cadena desconocida, devuelve HTTP `404` (`error.code = "unknown_chain"`).

### Ejemplos de código

**cURL**

```bash
curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks/0x1111111111111111111111111111111111111111" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"
```


  **TypeScript**

```ts
const token = "0x1111111111111111111111111111111111111111";
const res = await fetch(
  `https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks/${token}`,
  {
    headers: { "x-api-key": process.env.BLOCKVECTRA_API_KEY! },
  },
);
const body = await res.json();
console.log(body);
```


  **Python**

```python
import os
import requests

token = "0x1111111111111111111111111111111111111111"
res = requests.get(
    f"https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks/{token}",
    headers={"x-api-key": os.environ["BLOCKVECTRA_API_KEY"]},
)
print(res.json())
```


### Estructura de la respuesta

La estructura de respuesta es `StockTokenEnvelope`, que contiene `data` y `meta`:

* `data` (objeto): Un objeto `StockToken` que contiene los metadatos del contrato del token (`address`, `symbol`, `name`, `decimals`, `created_block`, `created_tx_hash`, `factory`, `creator`, `mint_address`, `burn_address`, `refreshed_at`) y el array de métricas diarias recientes `daily`.
  * `daily` (array): Un array de métricas diarias recientes (`StockDailyMetric`), de hasta 30 días, ordenado por fecha descendente (la más reciente primero). Cada elemento diario comparte el mismo esquema de métricas que la clasificación anterior (sin los campos redundantes `token`, `symbol` y `name`).
* `meta` (objeto): Objeto de metadatos de la cadena consistente con la respuesta de la clasificación.

## Explicación de los campos clave de respuesta

### Campos de métricas diarias (StockDaily y StockDailyMetric)

Tanto la clasificación como los elementos diarios históricos de un solo token incluyen los siguientes campos principales:

| Campo                    | Tipo                 | Descripción                                                                                                                                       |
| ------------------------ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `day`                    | `string` (date)      | Fecha de agregación UTC formateada como `YYYY-MM-DD`.                                                                                             |
| `token`                  | `string` (address)   | Dirección del contrato del token (presente solo en `StockDaily` de la clasificación), 40 caracteres hexadecimales en minúsculas con prefijo `0x`. |
| `symbol`                 | `string`             | Símbolo del token (por ejemplo, `"EXMPL"`).                                                                                                       |
| `name`                   | `string`             | Nombre para mostrar del token; cadena vacía `""` cuando no hay metadatos de nombre coincidentes disponibles.                                      |
| `transfers`              | `integer` (int64)    | Número total de transferencias on-chain en este día UTC.                                                                                          |
| `unique_senders`         | `integer` (int64)    | Número de direcciones remitentes únicas que iniciaron transferencias en este día.                                                                 |
| `unique_receivers`       | `integer` (int64)    | Número de direcciones receptoras únicas que recibieron transferencias en este día.                                                                |
| `mint_raw_amount`        | `string` (decimal)   | Cantidad bruta total de tokens acuñados en este día.                                                                                              |
| `burn_raw_amount`        | `string` (decimal)   | Cantidad bruta total de tokens quemados en este día.                                                                                              |
| `net_supply_change`      | `string` (decimal)   | Cambio neto en el suministro en este día (cadena decimal con signo, puede ser negativa).                                                          |
| `holder_count`           | `integer` (int64)    | Recuento total de direcciones titulares.                                                                                                          |
| `top10_holder_share_bps` | `integer`            | Participación de los 10 principales titulares en puntos básicos (0–10000, 1 bps = 0.01%).                                                         |
| `dex_swap_count`         | `integer` (int64)    | Número de swaps en DEX que involucran este token en este día.                                                                                     |
| `dex_raw_volume`         | `string` (decimal)   | Volumen total bruto negociado en DEX en este día.                                                                                                 |
| `refreshed_at`           | `string` (timestamp) | Marca temporal UTC ISO-8601 de la última actualización de este registro diario.                                                                   |

### Campos de metadatos del token (StockToken)

Al consultar un solo token, el objeto exterior `data` contiene metadatos del contrato y métricas diarias recientes:

| Campo             | Tipo                        | Descripción                                                                                                                        |
| ----------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `address`         | `string` (address)          | Dirección del contrato del token.                                                                                                  |
| `symbol`          | `string`                    | Símbolo del token.                                                                                                                 |
| `name`            | `string`                    | Nombre completo del token.                                                                                                         |
| `decimals`        | `integer` o `null`          | Decimales del token (0–255), o `null` si no están disponibles.                                                                     |
| `created_block`   | `integer` (int64)           | Número de bloque en el que se creó el contrato del token.                                                                          |
| `created_tx_hash` | `string` (hash)             | Hash de la transacción de creación del contrato, 64 caracteres hexadecimales en minúsculas con prefijo `0x`.                       |
| `factory`         | `string` (address)          | Dirección del contrato de fábrica (factory).                                                                                       |
| `creator`         | `string` (address) o `null` | Dirección del creador, o `null` si no está disponible.                                                                             |
| `mint_address`    | `string` (address) o `null` | Dirección de acuñación (mint), o `null` si no está disponible.                                                                     |
| `burn_address`    | `string` (address) o `null` | Dirección de quema (burn), o `null` si no está disponible.                                                                         |
| `daily`           | `array`                     | Array de métricas diarias recientes (`StockDailyMetric`), hasta 30 días, ordenado por fecha descendente (la más reciente primero). |
| `refreshed_at`    | `string` (timestamp)        | Marca temporal UTC ISO-8601 de la última actualización de los metadatos del token.                                                 |

### Convenciones de codificación

La API sigue reglas estrictas de codificación en todos los endpoints para preservar la precisión numérica y la coherencia:

* **Seguridad monetaria**: Cualquier valor que pueda superar `2^53` (enteros de 256 bits como `mint_raw_amount`, `burn_raw_amount`, `net_supply_change` y `dex_raw_volume`) se serializa como una **cadena decimal**, nunca como un número JSON y nunca en notación científica o hexadecimal. Esto evita la pérdida de precisión en entornos de ejecución como JavaScript. En JavaScript/TypeScript, analice con `BigInt(str)` (por ejemplo, `const net = BigInt(body.data.daily[0].net_supply_change)`); en Python, analice con `int(str)`. Los contadores que se mantienen muy por debajo de `2^53` (`transfers`, `unique_senders`, `unique_receivers`, `holder_count`, `top10_holder_share_bps`, `dex_swap_count`, `created_block`) son números JSON normales.
* **Valores binarios y hexadecimales**: Las direcciones son `0x` seguido de 40 caracteres hexadecimales en minúsculas; los hashes son `0x` seguido de 64 caracteres hexadecimales en minúsculas. Todos los valores hexadecimales devueltos son estrictamente en minúsculas.
* **Marcas temporales y fechas**: Las marcas temporales como `refreshed_at` utilizan `YYYY-MM-DDTHH:MM:SSZ` (ISO-8601 UTC con precisión de segundos). Las agregaciones diarias (`day`) utilizan fechas de calendario simples (`YYYY-MM-DD`).

## Estimación de uso (actualizando 50 tokens diariamente)

Las consultas a la Data API consumen Compute Units (CU) según los pesos de los métodos de la plataforma. La siguiente estimación evalúa un escenario donde 50 tokens llaman cada uno a `GET /{chain}/stocks/{token}` una vez al día, evaluado según los pesos de métodos activos:

- **Peso del método por llamada:** Cada llamada a `data.stock` consume 15 CU (precio de lista $1.50 por 1M de llamadas).
- **Actualización diaria de 50 tokens** (una llamada `GET /{chain}/stocks/{token}` por token, 50 llamadas/día): el consumo diario es de 750 CU; a lo largo de un ciclo de 30 días, esto totaliza 1,500 llamadas consumiendo 22,500 CU, aprox. el <0.1% de la cuota gratuita (30,000,000 CU). Si se supera la cuota gratuita o en un plan de pago, el uso total a precio de lista es de aprox. <$0.01/mes.

## Primeros pasos y actualización

La cuota gratuita es ideal para desarrollo, pruebas y cargas de trabajo ligeras. Cuando su tráfico se expanda y requiera mayor concurrencia o más unidades de cómputo, recargue on-chain en la [página de Facturación](https://console.blockvectra.com/billing/) de la consola; una vez confirmada on-chain y acreditada, se elimina el límite de llamadas por segundo a nivel de cuenta. Cada clave permanece sujeta a los límites de tasa y ráfaga de CU, como se describe en la [documentación de JSON-RPC](https://docs.blockvectra.com/en/api/json-rpc/#method-policy). Los Créditos Gratuitos no utilizados permanecen en sus Créditos y aún se pueden utilizar. Para conocer las tarifas y unidades de facturación actuales, consulte la [página de Precios](https://blockvectra.com/en/pricing/).

## Próximos pasos

* [Explore el directorio de conjuntos de datos](https://blockvectra.com/en/data/) para ver todos los conjuntos de datos indexados por BlockVectra.
* [Consulte el plan gratuito y los precios](https://blockvectra.com/en/pricing/#free) para comprobar lo que incluye su cuenta.
* [Inicie sesión en la consola](https://console.blockvectra.com/login/?next=%2Fkeys%2F) para crear una API key.
