PnL V2 Datastream está disponible en los planes Premium, Business y Enterprise.
Conéctate a
Conéctate a
wss://datastream.solanatracker.io/{apiKey} con tu clave de la Data API.Tipos de sala
Hay tres salas, cada una para un caso de uso distinto:Las salas de PnL emiten
tradeUpdate en cada fill y balanceUpdate en cambios de saldo. También emiten priceUpdate, pero con menor frecuencia. Considera priceUpdate como un mensaje de actualización para posiciones inactivas, no como un feed rápido de precios. Para los ticks de PnL no realizado más rápidos, combina las salas de PnL con un stream de precios.Conexión
Sala: pnl:{wallet}:{token}
Suscríbete a una posición específica de un token en un wallet. Los mensajes de trade y saldo actualizan la posición;priceUpdate refresca periódicamente los valores que dependen del precio.
tradeUpdate reports a buy or sell:
balanceUpdate reports a position balance update:
Ejemplo de suscripción
Sala: pnl:{wallet}
Suscríbete a todas las posiciones de tokens de un wallet a la vez. Emite los mismos mensajestradeUpdate, balanceUpdate y priceUpdate, pero para cada token con el que interactúa el wallet — no necesitas conocer las direcciones de los tokens de antemano.
Sala: pnl:{wallet}:summary
Recibe el resumen total de PnL del wallet cada vez que cambia el agregado. Esta sala devuelve totales a nivel de wallet, no posiciones individuales.Actualiza el PnL no realizado con precios en vivo
Las salas de PnL te dan el cost basis oficial, PnL realizado en FIFO y cambios de saldo cuando llega una operación. FIFO significa “first in, first out”: las compras más antiguas se emparejan primero con las ventas. Las salas de PnL no están diseñadas como un feed de precios tick a tick. Los eventospriceUpdate están throttled y solo se emiten para posiciones inactivas durante un tiempo.
Para una UI de portfolio en tiempo real donde el número de PnL no realizado se actualice en cada tick de precio, combina la sala de PnL con un stream de precios:
Usa la sala de PnL como fuente de verdad para
currentBalance y holdingCostBasis, y recalcula unrealizedPnl = (currentBalance × livePrice) − holdingCostBasis cada vez que llega un tick de precio.
Ejemplo: PnL no realizado en vivo sobre una sola posición
Ejemplo: PnL no realizado en vivo en todo un wallet
Suscríbete apnl:{wallet} para recibir trade y balance updates en cada posición, y luego suscríbete dinámicamente a una sala de precio para cada token del wallet.
Payload de priceUpdate (sala PnL)
Las salas de PnL emiten priceUpdate como respaldo cuando la cotización de una posición no se ha movido durante un tiempo. Tómalo como una actualización periódica, no como un feed en tiempo real:
Cancelar suscripción
Sal de cualquier sala enviando un mensajeleave:
Guías relacionadas
Guías de PnL
Conceptos centrales de PnL V2, endpoints y cómo funciona la indexación de wallets.
Precios en vivo
Salas
price:aggregated y price-by-token — combínalas con PnL para PnL no realizado en vivo.PnL de la wallet
Analiza el PnL del wallet, posiciones, timing de trades y exposición con la REST API.
Posiciones y trades
Combina actividad de wallets en vivo con streams de PnL para un dashboard de portfolio en tiempo real.