Skip to main content

Token accounts

getTokenAccountsByOwner

Fetches all token accounts (both Token Program and Token-2022) owned by a pubkey.
async function getTokenAccountsByOwner(
  connection: Connection,
  owner: PublicKey,
): Promise<TokenAccount[]>
connection
Connection
required
Solana connection instance
owner
PublicKey
required
Owner public key
return
TokenAccount[]
Array of token accounts with mint, amount, decimals, and program info

getSolAndTokenBalances

Fetches SOL balance and all token accounts for a pubkey.
async function getSolAndTokenBalances(
  connection: Connection,
  owner: PublicKey,
): Promise<{
  balanceLamports: number;
  uiAmount: number;
  tokenAccounts: TokenAccount[];
}>
connection
Connection
required
Solana connection instance
owner
PublicKey
required
Owner public key
balanceLamports
number
SOL balance in lamports
uiAmount
number
SOL balance in SOL (with decimals)
tokenAccounts
TokenAccount[]
Array of token accounts

Stake accounts

findStakeAccounts

Finds all stake accounts with a specific withdraw authority.
async function findStakeAccounts(
  connection: Connection,
  withdrawAuthority: PublicKey,
): Promise<PublicKey[]>
connection
Connection
required
Solana connection instance
withdrawAuthority
PublicKey
required
Withdraw authority to search for
return
PublicKey[]
Array of stake account pubkeys, sorted by lamports descending

getStakeAccountsWithStates

Fetches stake accounts with their current state information.
async function getStakeAccountsWithStates(
  connection: Connection,
  withdrawAuthority: PublicKey,
): Promise<StakeAccountInfo[]>
connection
Connection
required
Solana connection instance
withdrawAuthority
PublicKey
required
Withdraw authority to search for
return
StakeAccountInfo[]
Array of stake accounts with state info

StakeAccountInfo

address
PublicKey
Stake account address
lamports
number
Stake account balance
state
string
Stake state: “undelegated”, “activating”, “active”, “deactivating”, or “inactive”
voter
PublicKey | undefined
Validator vote account (undefined if not delegated)

Mint accounts

parseMintAccountInfo

Parses a mint account buffer to extract mint data and token program.
function parseMintAccountInfo(
  accountInfo: AccountInfo<Buffer>,
  pubkey: PublicKey,
): { mint: Mint; tokenProgram: PublicKey }
accountInfo
AccountInfo<Buffer>
required
Account info buffer from getAccountInfo
pubkey
PublicKey
required
Mint public key
mint
Mint
Parsed mint account
tokenProgram
PublicKey
Token program ID (TOKEN_PROGRAM_ID or TOKEN_2022_PROGRAM_ID)

fetchMintAndTokenProgram

Fetches a single mint account and determines its token program.
async function fetchMintAndTokenProgram(
  connection: Connection,
  mintPubkey: PublicKey,
): Promise<{ mint: Mint; tokenProgram: PublicKey }>
connection
Connection
required
Solana connection instance
mintPubkey
PublicKey
required
Mint public key

fetchMintsAndTokenPrograms

Fetches multiple mint accounts in a single RPC call.
async function fetchMintsAndTokenPrograms(
  connection: Connection,
  mintPubkeys: PublicKey[],
): Promise<{ mint: Mint; tokenProgram: PublicKey }[]>
connection
Connection
required
Solana connection instance
mintPubkeys
PublicKey[]
required
Array of mint public keys

Lookup tables

findGlamLookupTables

Finds all Address Lookup Tables (ALTs) associated with a vault.
async function findGlamLookupTables(
  statePda: PublicKey,
  vaultPda: PublicKey,
  connection: Connection,
): Promise<AddressLookupTableAccount[]>
statePda
PublicKey
required
Vault state PDA
vaultPda
PublicKey
required
Vault PDA
connection
Connection
required
Solana connection instance
return
AddressLookupTableAccount[]
Array of lookup table accounts for the vault

Build docs developers (and LLMs) love