# Tokens de acciones de Robinhood Chain: consulta el multiplicador, los titulares y la actividad diaria con una API key

> Source: https://docs.blockvectra.com/es/guides/stock-token-multiplier/

> Los datos se derivan de registros públicos en la cadena y del estado de los contratos inteligentes. Su finalidad es únicamente informativa y no constituyen asesoramiento de inversión. Los tokens de acciones están sujetos a restricciones jurisdiccionales.


Robinhood Chain admite activos del mundo real tokenizados (RWAs), incluidas acciones estadounidenses y fondos cotizados (ETFs) tokenizados. Mientras que los tokens ERC-20 estándar corresponden a los saldos en una proporción 1:1, las acciones tokenizadas incorporan un multiplicador de operaciones corporativas para reflejar desdoblamientos de acciones y ajustes por dividendos sin cambiar los saldos de las billeteras.

Esta guía explica cómo funciona el multiplicador de los tokens de acciones, cómo convertir los saldos brutos de tokens en cantidades de acciones subyacentes, cómo consultar `uiMultiplier` en la cadena mediante JSON-RPC `eth_call` y cómo obtener los titulares diarios y la actividad de transferencias mediante la Data API de BlockVectra.

Consulta los parámetros generales de la red, las políticas de métodos y la configuración de RPC en la [guía de Robinhood Chain](https://docs.blockvectra.com/es/guides/robinhood-chain/). Consulta la referencia completa de campos y los modelos de consumo en Compute Units (CU) del conjunto de datos en la [guía de acciones tokenizadas](https://docs.blockvectra.com/es/guides/stocks/).

## Qué es el multiplicador de los tokens de acciones

Los tokens de acciones de Robinhood son tokens ERC-20 estándar (con 18 decimales) emitidos por Robinhood Assets (Jersey) Limited (RHJ). Para gestionar operaciones corporativas como desdoblamientos de acciones y dividendos reinvertidos, estos contratos implementan **ERC-8056 (Scaled UI Amount Extension)**.

El multiplicador (`uiMultiplier`) define la proporción `shares-per-token`:

* **Precisión**: `uiMultiplier()` se representa como un número de punto fijo con 18 decimales, donde `1e18` equivale a `1.0`.
* **Valor inicial**: Al emitir el token, el multiplicador se inicializa en `1e18` (un token representa una acción subyacente).
* **Operaciones corporativas**: Cuando se produce una operación corporativa (como un desdoblamiento de acciones o un dividendo reinvertido), el contrato del token actualiza `uiMultiplier` y emite el evento `UIMultiplierUpdated(uint256 oldMultiplier, uint256 newMultiplier, uint256 effectiveAtTimestamp)`.

### Saldos de tokens fijos durante los desdoblamientos

Los tokens de acciones **no son tokens con reajuste de saldo (rebasing)**. Durante las operaciones corporativas:

* Los saldos de las billeteras (`balanceOf(account)`) y la emisión total de tokens (`totalSupply()`) **se mantienen sin cambios**.
* Solo cambia el multiplicador de escala.

Por ejemplo, si una acción subyacente realiza un desdoblamiento de 2 por 1:

* Un titular que posee 10 tokens sigue teniendo 10 tokens en `balanceOf`.
* El contrato actualiza `uiMultiplier` de `1.0` (`1e18`) a `2.0` (`2e18`).
* Cada token representa ahora 2 acciones subyacentes, lo que da al titular una exposición efectiva de 20 acciones.

### Conversión de saldos a cantidad de acciones

Para calcular la cantidad de acciones subyacentes representadas por un saldo de tokens, usa la fórmula ERC-8056:

```text
underlying shares = raw token amount × uiMultiplier ÷ 1e18
```

Los contratos de tokens ERC-8056 también ofrecen funciones auxiliares de solo lectura en la cadena:

* `balanceOfUI(address account)`: Devuelve directamente el saldo de la cuenta expresado en acciones subyacentes (escalado por `uiMultiplier`, con 18 decimales).
* `totalSupplyUI()`: Devuelve directamente el suministro total de tokens expresado en acciones subyacentes.

Además, las transferencias de tokens emiten el evento `TransferWithScaledUI(address indexed from, address indexed to, uint256 value, uint256 uiValue)`, que registra tanto la cantidad bruta de tokens como la cantidad escalada de acciones subyacentes.

### Multiplicador y fuentes de precios del oráculo

Robinhood Chain despliega una fuente de precios Chainlink dedicada (`AggregatorV3Interface`) para cada token de acciones:

* La fuente de precios Chainlink (`latestRoundData()`) **ya incorpora el multiplicador**. Refleja el precio de mercado completo de un token (precio de la acción subyacente multiplicado por el multiplicador).
* Las aplicaciones que leen el oráculo Chainlink en la cadena reciben directamente el precio ajustado por el multiplicador y **no deben** aplicarlo una segunda vez.
* También puedes consultar los metadatos fuera de la cadena mediante el endpoint REST de Robinhood `GET https://api.robinhood.com/rhj/assets`, que proporciona `currentMultiplier` y `pendingMultiplier`.

## Consulta del multiplicador con JSON-RPC eth\_call

Puedes inspeccionar el multiplicador de cualquier acción tokenizada directamente mediante el endpoint JSON-RPC de BlockVectra para Robinhood Chain usando `eth_call`.

* **Función**: `uiMultiplier()`
* **Selector de función de 4 bytes**: `0xa60bf13d` (`bytes4(keccak256("uiMultiplier()"))`)
* **Formato de respuesta**: `uint256` con codificación hexadecimal de 32 bytes (valor de punto fijo con 18 decimales)

BlockVectra sirve las solicitudes JSON-RPC de Robinhood Chain en `https://api.blockvectra.com/v1/robinhood_mainnet`. Envía tu API key mediante la cabecera `x-api-key` o añádela a la ruta (`https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}`).

### Ejemplos de código

Los siguientes ejemplos consultan `uiMultiplier()` en el contrato del token de acciones de Everpure (`0x1Cdad396DB64BDa184d5182A97Dd9B3C62100b7D`):

**cURL**

```bash
curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H "Content-Type: application/json" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_call",
    "params": [
      {
        "to": "0x1Cdad396DB64BDa184d5182A97Dd9B3C62100b7D",
        "data": "0xa60bf13d"
      },
      "latest"
    ]
  }'
```


  **viem (TypeScript)**

```ts
import { createPublicClient, defineChain, http, parseAbi } from "viem";

const robinhoodMainnet = defineChain({
  id: 4663,
  name: "Robinhood Chain",
  nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
  rpcUrls: {
    default: { http: ["https://api.blockvectra.com/v1/robinhood_mainnet"] },
  },
});

const client = createPublicClient({
  chain: robinhoodMainnet,
  transport: http("https://api.blockvectra.com/v1/robinhood_mainnet", {
    fetchOptions: {
      headers: { "x-api-key": process.env.BLOCKVECTRA_API_KEY! },
    },
  }),
});

const stockTokenAbi = parseAbi([
  "function uiMultiplier() external view returns (uint256)",
  "function balanceOfUI(address account) external view returns (uint256)",
  "function balanceOf(address account) external view returns (uint256)",
]);

const tokenAddress = "0x1Cdad396DB64BDa184d5182A97Dd9B3C62100b7D";

// 1. Read the corporate-action multiplier (18 decimals, 1e18 = 1.0)
const multiplier = await client.readContract({
  address: tokenAddress,
  abi: stockTokenAbi,
  functionName: "uiMultiplier",
});

console.log("uiMultiplier (raw uint256):", multiplier.toString());

// 2. Read raw balance and convert to underlying shares
const holderAddress = "0x0000000000000000000000000000000000000001";
const rawBalance = await client.readContract({
  address: tokenAddress,
  abi: stockTokenAbi,
  functionName: "balanceOf",
  args: [holderAddress],
});

const underlyingShares = (rawBalance * multiplier) / 10n ** 18n;
console.log("Calculated underlying shares:", underlyingShares.toString());

// 3. Or read pre-scaled shares directly using balanceOfUI
const directShares = await client.readContract({
  address: tokenAddress,
  abi: stockTokenAbi,
  functionName: "balanceOfUI",
  args: [holderAddress],
});
console.log("Direct balanceOfUI shares:", directShares.toString());
```


## Consulta de titulares y actividad diaria con la Data API

La Data API de BlockVectra ofrece resúmenes diarios preindexados de acciones tokenizadas. Usa `GET /v1/data/robinhood_mainnet/stocks` para la clasificación de actividad diaria y `GET /v1/data/robinhood_mainnet/stocks/{token}` para los metadatos de un token y hasta 30 días de métricas diarias. Consulta los parámetros de solicitud, los campos de respuesta y los ejemplos en la [guía de acciones tokenizadas](https://docs.blockvectra.com/es/guides/stocks/).

## Notas regulatorias

Los tokens de acciones son títulos de deuda tokenizados emitidos por Robinhood Assets (Jersey) Limited (RHJ). Consulta los folletos, las condiciones finales y los avisos jurisdiccionales en la [documentación de Robinhood RHJ](https://docs.robinhood.com/rhj).

## Próximos pasos

* [Explora el directorio de conjuntos de datos](https://blockvectra.com/es/data/) para ver todos los conjuntos de datos que indexa BlockVectra.
* [Consulta el Plan gratuito y los precios](https://blockvectra.com/es/pricing/#free) para comprobar qué incluye tu cuenta.
* [Inicia sesión en la consola](https://console.blockvectra.com/login/?next=%2Fkeys%2F) para crear una API key.
