kafuka
April 2, 2025, 10:03am
1
how to get Solana historical balance? in V1, V2? EAP?
in v1, I tried this:
query MyQuery {
solana {
address(address: {is: "MfDuWeqSHEqTFVYZ7LoexgAK9dxk7cy4DFJWjWMGVWa"}) {
address
balance
}
blocks(date: {is: "2025-01-01T00:00:00Z"}) {
date {
dayOfMonth
}
time {
iso8601
unixtime
}
}
}
}
Then I got:
ActiveRecord::ActiveRecordError: Response code: 500: Code: 396,
e.displayText() = DB::Exception: Limit for result exceeded,
max rows: 25.00 thousand, current rows: 65.50 thousand
(version 20.8.11.17 (official build))
Why cannot the balance take an argument for timestamp???
kafuka
April 3, 2025, 2:58pm
2
request body = query:
{\n solana {\n sent: transfers(\n time: {till: “${isoTime}”}\n currency: {is: “${tokenMint}”}\n senderAddress: {is: “${targetAddr}”}\n ) {\n amount\n currency {\n name\n decimals\n symbol\n address\n }\n }\n received: transfers(\n time: {till: “${isoTime}”}\n currency: {is: “${tokenMint}”}\n receiverAddress: {is: “${targetAddr}”}\n ) {\n amount\n currency {\n name\n decimals\n symbol\n address\n }\n }\n }\n}\n, variables: "{}",
kafuka
April 7, 2025, 6:46am
3
Token, use URL = V1
{
solana {
sent: transfers(
time: {till: "2025-01-01T00:00:00"}
currency: {is: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"}
senderAddress: {is: "8J88dokAnQBPJ5UopmTGNUHrciRXC5bqHqvK5ktKvFAA"}
) {
amount
currency {
name
decimals
symbol
address
}
}
received: transfers(
time: {till: "2025-01-01T00:00:00"}
currency: {is: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"}
receiverAddress: {is: "8J88dokAnQBPJ5UopmTGNUHrciRXC5bqHqvK5ktKvFAA"}
) {
amount
currency {
name
decimals
symbol
address
}
}
}
}
1 Like
Sorry for the late reply. Yes this is the correct way to get historical balance in Solana. You need to get sent and received transfer amounts and calculate on your end the final balance by doing total received amount - total sent amount.