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

# Transmitir transacciones Solana con gRPC

> Filtra transacciones por cuenta o programa, consulta metadatos de ejecución y separa resultados correctos y fallidos.

Filtra transacciones ejecutadas por las cuentas que incluyen. Lee comisiones, logs, errores y saldos en los metadatos; decodifica instrucciones o eventos para interpretar trades.

Guarda el [helper del inicio rápido](/es/yellowstone-grpc/quickstart) como `stream.mts` en el mismo directorio. Los ejemplos usan las mismas variables y dependencias.

## Suscríbete por programa o cuenta

```typescript transactions.mts theme={null}
import bs58 from "bs58";
import { subscribe } from "./stream.mts";

const address = process.env.WATCH_ADDRESS;
if (!address) throw new Error("Set WATCH_ADDRESS to a program or account");

for await (const update of subscribe({
  transactions: {
    selected: {
      vote: false, failed: false,
      accountInclude: [address], accountExclude: [], accountRequired: [],
    },
  },
})) {
  const transaction = update.transaction?.transaction;
  if (!transaction) continue;
  console.log({
    signature: bs58.encode(transaction.signature),
    slot: update.transaction!.slot,
    feeLamports: transaction.meta?.fee,
    error: transaction.meta?.err,
    logs: transaction.meta?.logMessages,
  });
}
```

```bash theme={null}
export WATCH_ADDRESS="YOUR_PROGRAM_OR_ACCOUNT_ADDRESS"
npx tsx transactions.mts
```

## Combina filtros de transacciones

* `accountInclude`: coincide al menos una cuenta de la lista.
* `accountRequired`: exige todas las cuentas indicadas.
* `accountExclude`: descarta transacciones con cualquiera de esas cuentas.
* `vote: false`: excluye votos de validadores.
* `failed: false`: solo ejecuciones correctas; `true` selecciona fallos y omitirlo incluye ambos.
* `signature`: selecciona una firma concreta.

Include, required y exclude se aplican juntos. Una lista include vacía no restringe por sí sola los resultados.

## Interpreta el resultado

La firma es binaria: conviértela a base58. El slot está en `update.transaction` y los detalles en `update.transaction.transaction.meta`. Un cambio de saldo puede incluir fees, renta o varias instrucciones; no equivale necesariamente a una transferencia.

## Gestiona duplicados y huecos

Para transacciones confirmed o finalized, deduplica por firma. Si consumes processed, conserva el contexto de slot/fork para reconciliar resultados provisionales. Reconectar no recupera automáticamente el historial perdido.

## Guías relacionadas

<CardGroup cols={2}>
  <Card title="Trades Pump.fun" href="/es/yellowstone-grpc/examples/pumpfun-transactions" />

  <Card title="Fiabilidad y rendimiento" href="/es/yellowstone-grpc/best-practices" />
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.