Solana Historical Balances

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???

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: "{}",

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.