Resumen
The GOSSIP_PRIORITY stream provides normalized gossipPriorityBid events from Hyperliquid transaction data. It emits one JSON event per gossip-priority bid action, derived from both mempool transactions and confirmed block data.
Tipo de arroyo: GOSSIP_PRIORITY
Disponibilidad de la API: Solo API gRPC
Volumen: Variable - Depends on gossip-priority auction activity
Use GOSSIP_PRIORITY when you want to observe gossip/read-priority auction activity without parsing raw MEMPOOL_TXS o completo BLOQUES/replica_cmds payloads yourself.
Important: GOSSIP_PRIORITY does not measure whether a customer received market data faster. It only surfaces the priority-bid action when it appears in observed transaction data.
Esta transmisión resulta útil para:
- Gossip Auction Monitoring - Track gossip-priority bid submissions in real-time
- Read-Priority Analysis - Understand gossip-priority patterns
- Pre-Confirmation Visibility - See gossip-priority bids from mempool before block inclusion
- Confirmation Tracking - Monitor execution outcomes for gossip-priority bids
Fuentes de datos
The GOSSIP_PRIORITY stream derives events from two sources:
| Fuente | Descripción | Campos adicionales |
|---|---|---|
| mempool_txs | Pre-consensus gossip-priority activity from the mempool. Events are not finalized and may be rejected, reordered, or absent from the finalized chain. | first_seen_time, tx_hash |
| replica_cmds | Datos de bloque confirmados que representan el procesamiento finalizado de las transacciones. | número_de_bloque, hora_del_bloque, índice_del_paquete, resultado |
Estructura del evento
Evento de mempool
{
"type": "gossip",
"source": "mempool_txs",
"first_seen_time": "2026-06-02T13:48:49.578877529",
"tx_hash": "0x...",
"signed_action_index": 0,
"maxGas": 1000000,
"slotId": 123,
"ip": "..."
}
Evento confirmado (fuente: replica_cmds)
Confirmed gossip events may also include: usuario, locutor, número_de_bloque, block_time, índice_del_paquete, resultado.
{
"type": "gossip",
"source": "replica_cmds",
"block_number": 581285917,
"block_time": "2026-06-02T13:48:49.626754186",
"bundle_index": 0,
"maxGas": 1000000,
"slotId": 123,
"ip": "...",
"user": "0x...",
"broadcaster": "0x..."
}
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| tipo | cadena | Event type: "gossip" |
| fuente | cadena | Fuente de datos: «mempool_txs» (antes del consenso) o «replica_cmds» (confirmadas) |
| fecha_de_la_primera_visita | cadena | (solo mempool_txs) Marca de tiempo ISO 8601 de la primera vez que se vio en el mempool |
| tx_hash | cadena | Transaction hash (0x-prefixed) |
| índice_de_acciones_firmadas | número | (solo mempool_txs) Índice de la acción firmada dentro de la transacción |
| maxGas | número | Maximum gas for the gossip-priority bid |
| slotId | número | Slot ID for the gossip-priority bid |
| ip | cadena | IP address associated with the bid |
| número_de_bloque | número | (replica_cmds only) Block number where the action was confirmed |
| block_time | cadena | (solo replica_cmds) Marca de tiempo ISO 8601 del bloque |
| índice_del_paquete | número | (solo replica_cmds) Índice del paquete dentro del bloque |
| usuario | cadena | (replica_cmds only) User address |
| locutor | cadena | (replica_cmds only) Broadcaster address |
| resultado | cadena | (optional, replica_cmds only) Execution outcome |
Filtrado
The GOSSIP_PRIORITY stream supports standard gRPC field filtering. Useful filters:
| Campo | Valores de ejemplo | Descripción |
|---|---|---|
| fuente | mempool_txs, replica_cmds | Filtrar por fuente de datos |
| tipo | gossip | Filtrar por tipo de evento |
Ejemplos de filtros
// Get gossip priority events from mempool
filters: {
"source": FilterValues { values: ["mempool_txs"] },
"type": FilterValues { values: ["gossip"] }
}
// Get confirmed gossip priority events
filters: {
"source": FilterValues { values: ["replica_cmds"] }
}
Para consultar la documentación completa sobre el filtrado, véase la Guía de filtrado de flujos.
Uso recomendado
For gossip-priority monitoring:
GOSSIP_PRIORITY
Los clientes deben almacenar los eventos si necesitan realizar búsquedas en el historial. StreamData es una transmisión en directo y, por sí sola, no ofrece la posibilidad de reproducir el historial.
gRPC
Ejemplo en Python
import grpc
import json
from pb import streaming_pb2, streaming_pb2_grpc
GRPC_ENDPOINT = 'your-endpoint.hype-mainnet.quiknode.pro:10000'
AUTH_TOKEN = 'your-auth-token'
def stream_gossip_priority():
credentials = grpc.ssl_channel_credentials()
channel = grpc.secure_channel(
GRPC_ENDPOINT,
credentials,
options=[
('grpc.max_receive_message_length', 100 * 1024 * 1024),
]
)
stub = streaming_pb2_grpc.StreamingStub(channel)
metadata = [('x-token', AUTH_TOKEN)]
def request_generator():
# Subscribe to GOSSIP_PRIORITY
subscribe_request = streaming_pb2.SubscribeRequest()
subscribe_request.subscribe.stream_type = streaming_pb2.StreamType.GOSSIP_PRIORITY
yield subscribe_request
# Keep connection alive with periodic pings
while True:
time.sleep(30)
ping_request = streaming_pb2.SubscribeRequest()
ping_request.ping.timestamp = int(time.time() * 1000)
yield ping_request
stream = stub.StreamData(request_generator(), metadata=metadata)
for response in stream:
if response.HasField('data'):
data = json.loads(response.data.data)
print(f"Gossip Priority Event")
print(f"Source: {data.get('source')}")
print(f"Slot ID: {data.get('slotId')}")
print(f"Max Gas: {data.get('maxGas')}")
print(f"TX Hash: {data.get('tx_hash')}")
if data.get('source') == 'replica_cmds':
print(f"Outcome: {data.get('outcome')}")
print(f"Block: {data.get('block_number')}")
print(f"User: {data.get('user')}")
print("---")
if __name__ == "__main__":
stream_gossip_priority()
Ejemplo de JavaScript/Node.js
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const GRPC_ENDPOINT = 'your-endpoint.hype-mainnet.quiknode.pro:10000';
const AUTH_TOKEN = 'your-auth-token';
// Load proto file
const packageDefinition = protoLoader.loadSync('streaming.proto');
const proto = grpc.loadPackageDefinition(packageDefinition).hyperliquid;
// Create channel with credentials
const credentials = grpc.credentials.createSsl();
const client = new proto.Streaming(GRPC_ENDPOINT, credentials);
const metadata = new grpc.Metadata();
metadata.add('x-token', AUTH_TOKEN);
// Subscribe to GOSSIP_PRIORITY
const call = client.StreamData(metadata);
call.on('data', (response) => {
if (response.data) {
const data = JSON.parse(response.data.data);
console.log(`Gossip Priority Event`);
console.log(`Source: ${data.source}`);
console.log(`Slot ID: ${data.slotId}`);
console.log(`Max Gas: ${data.maxGas}`);
console.log(`TX Hash: ${data.tx_hash}`);
if (data.source === 'replica_cmds') {
console.log(`Outcome: ${data.outcome}`);
console.log(`Block: ${data.block_number}`);
console.log(`User: ${data.user}`);
}
console.log('---');
}
});
call.on('error', (error) => {
console.error('Stream error:', error);
});
// Send subscription
call.write({
subscribe: {
stream_type: 10 // GOSSIP_PRIORITY
}
});
// Send periodic pings
setInterval(() => {
call.write({
ping: { timestamp: Date.now() }
});
}, 30000);
Notas importantes
- Derived Stream - GOSSIP_PRIORITY is a derived stream that normalizes data from MEMPOOL_TXS and BLOCKS, saving you from parsing raw payloads
- Not Latency Measurement - This stream does not measure whether a customer received market data faster; it only surfaces priority-bid actions
- Fuentes duales: los eventos proceden tanto del mempool (antes del consenso) como de los bloques confirmados (después del consenso).
- Compresión: considera la posibilidad de habilitar la compresión zstd en tu gRPC para optimizar el ancho de banda.
Streams relacionados
- ORDER_PRIORITY - Priority-fee order events
- MEMPOOL_TXS - Raw mempool transactions (source data for pre-consensus events)
- BLOCKS - Raw blockchain data (source data for confirmed events)
Para obtener más información sobre la configuración gRPC , consulta la documentacióngRPC .