Messages
{
"type": "join",
"room": "transfer:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}{
"type": "leave",
"room": "transfer:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}{
"type": "message",
"room": "transfer:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"data": {
"signature": "2VxcHt8HKSt2T2EuUZLyWPsEKz4H4BPreWV28aZDEzoaHG4Fsu232oKKeQqpVqsSYaf3vv8KN7UoZ4MPJA8vw9EF",
"slot": 459159504,
"timestamp": 1792483949,
"commitment": "processed",
"swapTx": false,
"transfers": [
{
"id": "2VxcHt8HKSt2T2EuUZLyWPsEKz4H4BPreWV28aZDEzoaHG4Fsu232oKKeQqpVqsSYaf3vv8KN7UoZ4MPJA8vw9EF:2:-1",
"signature": "2VxcHt8HKSt2T2EuUZLyWPsEKz4H4BPreWV28aZDEzoaHG4Fsu232oKKeQqpVqsSYaf3vv8KN7UoZ4MPJA8vw9EF",
"slot": 459159504,
"timestamp": 1792483949,
"commitment": "processed",
"instruction": 2,
"inner": -1,
"type": "spl",
"program": "spl-token",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"decimals": 6,
"amount": "25000000",
"uiAmount": "25",
"from": {
"address": "C2RjaMN2NeYAErS6KiBjPQhHCt95J8mCmmLiQqZXPisR",
"owner": "BfG7WYmravgBhNdWpGoiFmF8L1duw2vdqdDHiZid2hoJ",
"postBalance": "71035743"
},
"to": {
"address": "D9CEogjHA6CpS12F8St9zpSco7pQKJB5uR1RqDsuzQZk",
"owner": "GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3",
"postBalance": "656987841913"
},
"swapTx": false
}
],
"balances": [
{
"owner": "BfG7WYmravgBhNdWpGoiFmF8L1duw2vdqdDHiZid2hoJ",
"account": "C2RjaMN2NeYAErS6KiBjPQhHCt95J8mCmmLiQqZXPisR",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"program": "spl-token",
"decimals": 6,
"pre": "96035743",
"post": "71035743",
"change": "-25000000",
"cause": "transfer"
},
{
"owner": "GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3",
"account": "D9CEogjHA6CpS12F8St9zpSco7pQKJB5uR1RqDsuzQZk",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"program": "spl-token",
"decimals": 6,
"pre": "656962841913",
"post": "656987841913",
"change": "25000000",
"cause": "transfer"
}
]
}
}Websockets
Token transfers
某个 SPL 或 Token-2022 代币在任意钱包之间的所有转账。房间:transfer:{mint}。balances 列出该代币在此交易中的余额变化。不支持 SOL:请使用钱包房间或 transfer:So11111111111111111111111111111111111111112:{wallet}。添加 :enriched 获取代币元数据、美元价值和钱包身份。事件处于 processed 状态,尚未确认。
WSS
/
WebSocket example
const mint = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"; // USDC
const room = `transfer:${mint}`; // or `${...}:enriched` for token metadata, USD values and wallet identities
const ws = new WebSocket("wss://datastream.solanatracker.io/YOUR_API_KEY");
ws.addEventListener("open", () => {
ws.send(JSON.stringify({ type: "join", room }));
});
ws.addEventListener("message", (event) => {
const msg = JSON.parse(event.data);
if (msg.type === "ping") return ws.send(JSON.stringify({ type: "pong" }));
if (msg.type !== "message") return;
const { signature, transfers, balances } = msg.data;
for (const t of transfers) {
console.log(signature, t.direction ?? "", t.uiAmount, t.mint, t.from.owner, "->", t.to.owner);
}
});
uiAmount。已在交易房间中推送的兑换中的转账不会再次发送;兑换的剩余部分(平台手续费、小费、付款)会带 swapTx: true 推送。历史加实时更新的用法请参阅转账指南。
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.transfers.token('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', { enriched: true }).on((data) => {
console.log(data);
});
// sub.unsubscribe();
Messages
{
"type": "join",
"room": "transfer:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}{
"type": "leave",
"room": "transfer:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}{
"type": "message",
"room": "transfer:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"data": {
"signature": "2VxcHt8HKSt2T2EuUZLyWPsEKz4H4BPreWV28aZDEzoaHG4Fsu232oKKeQqpVqsSYaf3vv8KN7UoZ4MPJA8vw9EF",
"slot": 459159504,
"timestamp": 1792483949,
"commitment": "processed",
"swapTx": false,
"transfers": [
{
"id": "2VxcHt8HKSt2T2EuUZLyWPsEKz4H4BPreWV28aZDEzoaHG4Fsu232oKKeQqpVqsSYaf3vv8KN7UoZ4MPJA8vw9EF:2:-1",
"signature": "2VxcHt8HKSt2T2EuUZLyWPsEKz4H4BPreWV28aZDEzoaHG4Fsu232oKKeQqpVqsSYaf3vv8KN7UoZ4MPJA8vw9EF",
"slot": 459159504,
"timestamp": 1792483949,
"commitment": "processed",
"instruction": 2,
"inner": -1,
"type": "spl",
"program": "spl-token",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"decimals": 6,
"amount": "25000000",
"uiAmount": "25",
"from": {
"address": "C2RjaMN2NeYAErS6KiBjPQhHCt95J8mCmmLiQqZXPisR",
"owner": "BfG7WYmravgBhNdWpGoiFmF8L1duw2vdqdDHiZid2hoJ",
"postBalance": "71035743"
},
"to": {
"address": "D9CEogjHA6CpS12F8St9zpSco7pQKJB5uR1RqDsuzQZk",
"owner": "GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3",
"postBalance": "656987841913"
},
"swapTx": false
}
],
"balances": [
{
"owner": "BfG7WYmravgBhNdWpGoiFmF8L1duw2vdqdDHiZid2hoJ",
"account": "C2RjaMN2NeYAErS6KiBjPQhHCt95J8mCmmLiQqZXPisR",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"program": "spl-token",
"decimals": 6,
"pre": "96035743",
"post": "71035743",
"change": "-25000000",
"cause": "transfer"
},
{
"owner": "GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3",
"account": "D9CEogjHA6CpS12F8St9zpSco7pQKJB5uR1RqDsuzQZk",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"program": "spl-token",
"decimals": 6,
"pre": "656962841913",
"post": "656987841913",
"change": "25000000",
"cause": "transfer"
}
]
}
}apiKey
type:httpApiKey
API key for authentication. Include your Datastream key in the connection URL: wss://datastream.solanatracker.io/{DATASTREAM_KEY}
Subscribe to token transfers
type:object
Unsubscribe from token transfers
type:object
Token transfers notification
type:object
此页面对您有帮助吗?