Messages
{
"type": "join",
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}{
"type": "leave",
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}{
"type": "message",
"data": {
"type": "tradeUpdate",
"wallet": "DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61",
"token": "A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump",
"averageBuyAmountUsd": 0.008573769236435,
"averageSellAmountUsd": 0,
"avgCostPerToken": 0.00008177548295,
"buyCount": 1,
"currentBalance": 104.845229,
"currentPrice": 0.00009110065178426498,
"currentValue": 0.009551468698371,
"firstBuyTime": 1776706534041,
"firstTradeTime": 1776706534041,
"holdingCostBasis": 0.008573769236435,
"lastBuyTime": 1776706534041,
"lastTradeTime": 1776706534041,
"proceeds": 0,
"realizedPnl": 0,
"sellCount": 0,
"soldCostBasis": 0,
"totalBought": 104.845229,
"totalBuyUsd": 0.008573769236435,
"totalSellUsd": 0,
"totalSold": 0,
"totalTransactions": 1,
"unrealizedPnl": 0.000977699461936
},
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}{
"type": "message",
"data": {
"type": "balanceUpdate",
"wallet": "DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61",
"token": "A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump",
"avgCostPerToken": 0.00008351931949024704,
"currentBalance": 205.389603,
"currentPrice": 0.00009110065178426498,
"currentValue": 0.018711126703011425,
"holdingCostBasis": 0.017153999872932,
"unrealizedPnl": 0.0015571268300794243
},
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}PnL V2
PnL de una posición de token de Solana por WebSocket
PnL en tiempo real de una posición de token en una wallet de Solana por WebSocket de Datastream, con eventos tradeUpdate y balanceUpdate.
WSS
/
SDK Example
import { Datastream } from '@solana-tracker/data-api';
const dataStream = new Datastream({
wsUrl: 'wss://datastream.solanatracker.io/YOUR_API_KEY',
});
dataStream.on('error', console.error);
await dataStream.connect();
const sub = dataStream.subscribe.pnl.position('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF', '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN').on((data) => {
console.log(data);
});
// sub.unsubscribe();
Messages
{
"type": "join",
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}{
"type": "leave",
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}{
"type": "message",
"data": {
"type": "tradeUpdate",
"wallet": "DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61",
"token": "A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump",
"averageBuyAmountUsd": 0.008573769236435,
"averageSellAmountUsd": 0,
"avgCostPerToken": 0.00008177548295,
"buyCount": 1,
"currentBalance": 104.845229,
"currentPrice": 0.00009110065178426498,
"currentValue": 0.009551468698371,
"firstBuyTime": 1776706534041,
"firstTradeTime": 1776706534041,
"holdingCostBasis": 0.008573769236435,
"lastBuyTime": 1776706534041,
"lastTradeTime": 1776706534041,
"proceeds": 0,
"realizedPnl": 0,
"sellCount": 0,
"soldCostBasis": 0,
"totalBought": 104.845229,
"totalBuyUsd": 0.008573769236435,
"totalSellUsd": 0,
"totalSold": 0,
"totalTransactions": 1,
"unrealizedPnl": 0.000977699461936
},
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}{
"type": "message",
"data": {
"type": "balanceUpdate",
"wallet": "DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61",
"token": "A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump",
"avgCostPerToken": 0.00008351931949024704,
"currentBalance": 205.389603,
"currentPrice": 0.00009110065178426498,
"currentValue": 0.018711126703011425,
"holdingCostBasis": 0.017153999872932,
"unrealizedPnl": 0.0015571268300794243
},
"room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:A7FbnhhkY2R6hZhkT2oexNNFQyGG7cBZJLWmC32spump"
}apiKey
type:httpApiKey
API key for authentication. Include your Datastream key in the connection URL: wss://datastream.solanatracker.io/{DATASTREAM_KEY}
joinPnlTokenPosition
type:object
Subscribe to Token Position PnL
leavePnlTokenPosition
type:object
Unsubscribe from token position PnL
pnlTradeUpdateMessage
type:object
Trade update notification
pnlBalanceUpdateMessage
type:object
Balance update notification
¿Esta página le ayudó?