> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Solana Yellowstone gRPC: transmisión de datos en tiempo real

> Transmisión de datos de alto rendimiento y en tiempo real de la blockchain de Solana mediante el protocolo gRPC, con filtrado avanzado y entrega de latencia ultrabaja para desarrolladores.

<Note>
  **¿Buscas el servicio gRPC administrado de Helius?** Esta página documenta el protocolo abierto **Yellowstone gRPC** como referencia. Para usarlo en producción con reproducción histórica de 24 horas, conmutación por error entre varios nodos y un entorno completamente administrado, consulta [LaserStream](/docs/es/laserstream), la oferta de gRPC compatible con Yellowstone de Helius.
</Note>

## ¿Qué es Yellowstone gRPC?

Yellowstone gRPC proporciona **transmisión de latencia ultrabaja** de datos de la blockchain de Solana al conectarse directamente con los líderes de Solana para recibir shreds a medida que se producen. Esto entrega datos en tiempo real a tu aplicación con un retraso mínimo.

<CardGroup cols={2}>
  <Card title="High Performance" icon="bolt">
    Protocolo binario con serialización eficiente para maximizar el rendimiento y minimizar el uso de ancho de banda
  </Card>

  <Card title="Real-time Streaming" icon="wave-pulse">
    Transmisión bidireccional con creación y cancelación inmediatas de suscripciones
  </Card>

  <Card title="Advanced Filtering" icon="filter">
    Controla con precisión qué datos recibes mediante filtros de cuentas, transacciones y programas
  </Card>

  <Card title="Multiple Data Types" icon="database">
    Suscríbete a cuentas, transacciones, slots, bloques y entradas en un solo flujo
  </Card>
</CardGroup>

## Tipos de flujo

<Tabs>
  <Tab title="Accounts">
    **Supervisa los cambios en las cuentas en tiempo real**

    Realiza un seguimiento de las actualizaciones de saldo, las modificaciones de datos, los cambios de propiedad y los eventos de creación o eliminación de cuentas con opciones de filtrado precisas.

    <Card title="Account Monitoring Guide" icon="user" href="/docs/es/grpc/account-monitoring">
      Aprende a transmitir actualizaciones de cuentas con ejemplos de filtrado
    </Card>
  </Tab>

  <Tab title="Transactions">
    **Transmite datos de transacciones y resultados de ejecución**

    Recibe firmas de transacciones, estados de ejecución, interacciones con programas y cambios en los saldos de tokens a medida que ocurren.

    <Card title="Transaction Monitoring Guide" icon="receipt" href="/docs/es/grpc/transaction-monitoring">
      Supervisa transacciones con filtrado por programa y detalles de ejecución
    </Card>
  </Tab>

  <Tab title="Slots & Blocks">
    **Realiza un seguimiento del consenso de la red y la producción de bloques**

    Supervisa las actualizaciones de slots, la creación de bloques y los cambios en el estado de la red en distintos niveles de confirmación.

    <Card title="Slot & Block Monitoring Guide" icon="cube" href="/docs/es/grpc/slot-and-block-monitoring">
      Transmite slots y bloques con detalles de las transacciones
    </Card>
  </Tab>

  <Tab title="Entries">
    **Supervisa las entradas de bajo nivel de la blockchain**

    Accede a unidades fundamentales de ejecución que contienen lotes de transacciones y sus resultados.

    <Card title="Entry Monitoring Guide" icon="code" href="/docs/es/grpc/entry-monitoring">
      Transmite entradas de bloques con lotes de transacciones
    </Card>
  </Tab>
</Tabs>

## Cómo acceder a Yellowstone gRPC

Elige la opción que mejor se adapte a tus necesidades:

### LaserStream

[LaserStream](/docs/es/laserstream) es un servicio gRPC multiinquilino y de alta disponibilidad, con conmutación por error automática y [funciones de reproducción histórica de 24 horas](/docs/es/laserstream/historical-replay). Es ideal para la mayoría de las aplicaciones de producción.

<Tip>
  Comienza a usar LaserStream desde tu [panel de Helius](https://dashboard.helius.dev/laserstream). Mainnet requiere un plan Business o Professional; Devnet está disponible en el plan Developer y superiores. Consulta [Planes y precios](/docs/es/billing/plans) para obtener más información.
</Tip>

### Nodos dedicados

Los [nodos dedicados](/docs/es/dedicated-nodes) ofrecen un endpoint gRPC exclusivo con aislamiento de recursos garantizado. Son la mejor opción para requisitos especializados y operadores avanzados.

### Compara las opciones de gRPC

¿Necesitas ayuda para decidir? Lee nuestra [guía comparativa de gRPC](/docs/es/laserstream/laserstream-vs-dedicated-nodes) para determinar si LaserStream o los nodos dedicados son la mejor opción para tu caso de uso.

## Inicio rápido

¿Todo listo para comenzar a transmitir?

Comienza por leer nuestra guía completa de configuración o inicia desde tu panel:

<CardGroup>
  <Card title="Yellowstone gRPC Quickstart" icon="rocket" href="/docs/es/grpc/quickstart">
    Incluye la instalación, la autenticación y la configuración de tu primer flujo
  </Card>

  <Card title="Get Started" icon="rocket" href="https://dashboard.helius.dev/laserstream">
    Habilita LaserStream desde tu panel de Helius y comienza a transmitir.
  </Card>
</CardGroup>

## Estructura de la solicitud de suscripción

Cada suscripción de gRPC requiere una solicitud con la estructura correcta. Así puedes crear una:

### Parámetros principales

<ParamField path="commitment" type="string" required>
  **Nivel de confirmación para la coherencia de los datos**

  * `processed` - Transacción procesada por el nodo
  * `confirmed` - Transacción confirmada por el clúster
  * `finalized` - Transacción finalizada por el clúster
</ParamField>

<ParamField path="ping" type="boolean" optional>
  **Mantén activa la conexión**

  Establécelo en `true` para recibir mensajes pong cada 15 segundos y evitar tiempos de espera agotados en la conexión debido a balanceadores de carga o proxies.
</ParamField>

<ParamField path="accounts_data_slice" type="array" optional>
  **Optimiza la transferencia de datos**

  Solicita rangos de bytes específicos de los datos de la cuenta:

  ```json theme={"system"}
  [
    { "offset": 0, "length": 100 },
    { "offset": 200, "length": 50 }
  ]
  ```
</ParamField>

### Configuración de filtros

<Accordion title="Account Filters">
  <ParamField path="account" type="array<string>">
    Arreglo de claves públicas de cuentas que se supervisarán (OR lógico)
  </ParamField>

  <ParamField path="owner" type="array<string>">
    Arreglo de claves públicas de propietarios que se supervisarán (OR lógico)
  </ParamField>

  <ParamField path="filters" type="array<object>">
    Filtros DataSize y Memcmp (AND lógico):

    ```json theme={"system"}
    [
      { "dataSize": 165 },
      { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } }
    ]
    ```
  </ParamField>

  <Info>
    Cuando se usan varios tipos de filtros, funcionan como un AND lógico. Dentro de los arreglos, los valores funcionan como un OR lógico.
  </Info>
</Accordion>

<Accordion title="Transaction Filters">
  <ParamField path="vote" type="boolean">
    Incluye o excluye transacciones de votación
  </ParamField>

  <ParamField path="failed" type="boolean">
    Incluye o excluye transacciones fallidas
  </ParamField>

  <ParamField path="signature" type="string">
    Supervisa una firma de transacción específica
  </ParamField>

  <ParamField path="account_include" type="array<string>">
    Incluye transacciones que involucren cualquiera de estas cuentas (OR lógico)
  </ParamField>

  <ParamField path="account_exclude" type="array<string>">
    Excluye transacciones que involucren cualquiera de estas cuentas
  </ParamField>

  <ParamField path="account_required" type="array<string>">
    Incluye transacciones que involucren todas estas cuentas (AND lógico)
  </ParamField>
</Accordion>

<Accordion title="Block Filters">
  <ParamField path="account_include" type="array<string>">
    Filtra transacciones y cuentas dentro de los bloques
  </ParamField>

  <ParamField path="include_transactions" type="boolean">
    Incluye todas las transacciones del bloque
  </ParamField>

  <ParamField path="include_accounts" type="boolean">
    Incluye todas las actualizaciones de cuentas del bloque
  </ParamField>

  <ParamField path="include_entries" type="boolean">
    Incluye todas las entradas del bloque
  </ParamField>
</Accordion>

<Accordion title="Slot Filters">
  <ParamField path="filter_by_commitment" type="boolean" default="false">
    Cuando sea `true`, recibe únicamente actualizaciones de slots para el nivel de confirmación especificado. Cuando sea `false`, recibe actualizaciones para todos los niveles de confirmación.
  </ParamField>
</Accordion>

***

## Ejemplo: supervisión básica de transacciones

Este es un ejemplo completo para comenzar:

```typescript theme={"system"}
import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc";

const client = new Client("your-grpc-endpoint", "your-api-token", {
  "grpc.max_receive_message_length": 64 * 1024 * 1024
});

const stream = await client.subscribe();

// Handle incoming data
stream.on("data", (data) => {
  if (data.transaction) {
    console.log(`Transaction: ${data.transaction.signature}`);
    console.log(`Success: ${!data.transaction.meta?.err}`);
  }
});

// Subscribe to transactions with complete request structure
const subscribeRequest: SubscribeRequest = {
  transactions: {
    client: {
      accountInclude: [
        "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", // Token Program
        "11111111111111111111111111111111"               // System Program
      ],
      accountExclude: [],
      accountRequired: [],
      vote: false,
      failed: false
    }
  },
  commitment: CommitmentLevel.CONFIRMED,
  ping: { id: 1 }
};

stream.write(subscribeRequest);
```

<Note>
  Este es un ejemplo básico. Para usarlo en producción, implementa un manejo adecuado de errores, lógica de reconexión y procesamiento de datos. Consulta nuestras guías detalladas para ver implementaciones completas.
</Note>

***

## ¿Todo listo para comenzar?

<CardGroup cols={2}>
  <Card title="Complete Setup Guide" icon="rocket" href="/docs/es/grpc/quickstart">
    Instalación, autenticación e implementación del primer flujo
  </Card>

  <Card title="Stream Pump AMM Data" icon="chart-line" href="/docs/es/grpc/stream-pump-amm-data">
    Ejemplo real: supervisa transacciones de Pump AMM
  </Card>
</CardGroup>

## Recursos avanzados

* **[Repositorio de código fuente de Yellowstone gRPC](https://github.com/rpcpool/yellowstone-grpc)** - Definiciones completas de protobuf y ejemplos
* **[Comunidad de Discord](https://discord.com/invite/6GXdee3gBj)** - Obtén ayuda de desarrolladores y del equipo de Helius
* **[Documentación de LaserStream](/docs/es/laserstream)** - Servicio gRPC mejorado con funciones adicionales
