Search code examples
javascriptblockchainsmartcontractssolanaphantom-wallet

Solana - How to get the balance from my Phantom wallet?


I'm working on a web app that can connect to Phantom Wallet. I've established the connection and have successfully retrieved the wallet's public key. The problem is, I can't seem to find any solution to get the account balance.

For reference, I wanted to display the account balance just like how solanart.io displays it.

Note that I've gone through all related docs (Solana/web3.js, Solana JSON RPC API etc). Please guide me as I'm still new to JSON RPC API.

For a heads up, I'm using vanilla js.

try {
      const resp = window.solana.request({
        method: "getAccountTokenBalance",
        params: [
          id, //wallet's public key
          {
            encoding: "base58",
          },
        ],
      });
      console.log(resp);
    } catch(err) {
      // error message
    }


Solution

  • The RPC method that you're using does not exist. You'll want to use getBalance to get the SOL on the wallet: https://docs.solana.com/developing/clients/jsonrpc-api#getbalance

    To get all of the non-SOL token balances owned by that wallet, you'll have to use getTokenAccountsByOwner using that wallet id: https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner