Historical Solana Data
Historical data for Solana has finally been added for the EAP
option, where we are providing data as old as three months.
However the options to use the historical data are quite limited and currently only works for the aggregate data on
DEXTradeByTokens
. In this section, we will see some working examples for the same.
Historical OHLC on Solana
This query returns the historical OHLC data for a given pair along with volume and number of trades in the given interval.
For this example the pair between the tokens listed below is considered.
6D7NaB2xsLd7cauWu1wKk6KBsJohJmP2qZH9GEfVi5Ui
So11111111111111111111111111111111111111112
{
Solana(dataset: archive) {
DEXTradeByTokens(
orderBy: { descendingByField: "Block_Timefield" }
where: {
Trade: {
Currency: {
MintAddress: { is: "6D7NaB2xsLd7cauWu1wKk6KBsJohJmP2qZH9GEfVi5Ui" }
}
Side: {
Currency: {
MintAddress: { is: "So11111111111111111111111111111111111111112" }
}
}
PriceAsymmetry: { lt: 0.1 }
}
}
limit: { count: 10 }
) {
Block {
Timefield: Time(interval: { in: days, count: 1 })
}
volume: sum(of: Trade_Amount)
Trade {
high: Price(maximum: Trade_Price)
low: Price(minimum: Trade_Price)
open: Price(minimum: Block_Slot)
close: Price(maximum: Block_Slot)
}
count
}
}
}
Top 10 token traders
This query returns the all time top 10 token traders for a particular token,
which is 6D7NaB2xsLd7cauWu1wKk6KBsJohJmP2qZH9GEfVi5Ui
in this case.
query MyQuery {
Solana(dataset: combined) {
DEXTradeByTokens(
limit: { count: 10 }
orderBy: { descendingByField: "tokens" }
where: {
Trade: {
Currency: {
MintAddress: { is: "6D7NaB2xsLd7cauWu1wKk6KBsJohJmP2qZH9GEfVi5Ui" }
}
}
}
) {
Trade {
Account {
Owner
}
}
tokens: sum(of: Trade_Amount)
trades: count
}
}
}
Tokens Traded by an Account
This query returns the list of tokens traded by the wallet address over a period of time. The list is sorted by the amount of tokens traded, and returns token info such as mint address, name and symbol along with the total amount of tokens traded and the number of trades involving that token.
query MyQuery {
Solana(dataset: combined) {
DEXTradeByTokens(
orderBy: {descendingByField: "tokens"}
where: {Trade: {Account: {Owner: {is: "3CgvbiM3op4vjrrjH2zcrQUwsqh5veNVRjFCB9N6sRoD"}}}}
) {
Trade {
Currency {
MintAddress
Name
Symbol
}
}
tokens: sum(of: Trade_Amount)
trades: count
}
}
}
Change in Liquidity Over a Month
This query returns the change in liquidity
for a particular token
pair over the last month. For this example the parameters listed below are used.
- Primary Token -
6D7NaB2xsLd7cauWu1wKk6KBsJohJmP2qZH9GEfVi5Ui
. - Secondary Token -
So11111111111111111111111111111111111111112
, - Pool Address -
BSzedbEvWRqVksaF558epPWCM16avEpyhm2HgSq9WZyy
query MyQuery {
Solana(dataset: combined) {
DEXTradeByTokens(
where: {
Trade: {
Currency: {
MintAddress: { is: "6D7NaB2xsLd7cauWu1wKk6KBsJohJmP2qZH9GEfVi5Ui" }
}
Side: {
Currency: {
MintAddress: { is: "So11111111111111111111111111111111111111112" }
}
}
Market: {
MarketAddress: {
is: "BSzedbEvWRqVksaF558epPWCM16avEpyhm2HgSq9WZyy"
}
}
}
}
orderBy: { descendingByField: "Block_Timefield" }
limit: { count: 1 }
) {
tokenLiquidity: sum(
of: Trade_Amount
if: { Trade: { Side: { Type: { is: buy } } } }
)
wsolLiquidity: sum(
of: Trade_Side_Amount
if: { Trade: { Side: { Type: { is: sell } } } }
)
Block {
Timefield: Time(interval: { in: months, count: 1 })
}
Trade {
Market {
MarketAddress
}
}
}
}
}