Skip to main content

GlamProvider

Main provider component that sets up the GLAM client and manages vault state.
import { GlamProvider } from '@glam/sdk/react';

function App() {
  return (
    <GlamProvider>
      {/* Your app */}
    </GlamProvider>
  );
}

Dependencies

Must be wrapped by:
  • @solana/wallet-adapter-react providers (WalletProvider, ConnectionProvider)
  • @tanstack/react-query provider (QueryClientProvider)
  • ClusterProvider (from @glam/sdk/react)

Context value

Access via useGlam() hook:
glamClient
GlamClient
Configured GLAM client instance
vault
Vault
Current vault balances and token accounts
vaultHoldings
VaultHoldings | undefined
Priced vault holdings (positions across protocols)
activeGlamState
GlamStateCache | undefined
Currently selected vault state
glamStatesList
GlamStateCache[]
List of vaults accessible to connected wallet (as owner or delegate)
delegateAcls
DelegateAcl[]
Delegate access control lists for active vault
integrationAcls
IntegrationAcl[]
Integration access control lists for active vault
allGlamStates
StateModel[]
All vault states on the network
jupTokenList
JupTokenList | undefined
Jupiter token list with metadata and prices (mainnet only)
driftMarketConfigs
DriftMarketConfigs | undefined
Drift market configurations (mainnet only)
wsConnected
boolean
WebSocket connection status for vault balance subscriptions
setActiveGlamState
(state: GlamStateCache) => void
Sets the active vault
refresh
() => Promise<void>
Refreshes active vault data from onchain
refetchGlamStates
() => Promise<void>
Refetches all vault states

ClusterProvider

Manages Solana cluster/network configuration.
import { ClusterProvider } from '@glam/sdk/react';

function App() {
  return (
    <ClusterProvider>
      <GlamProvider>
        {/* Your app */}
      </GlamProvider>
    </ClusterProvider>
  );
}

Context value

Access via useCluster() hook:
cluster
Cluster
Current active cluster
clusters
Cluster[]
Available clusters
addCluster
(cluster: Cluster) => void
Adds a custom cluster
deleteCluster
(cluster: Cluster) => void
Deletes a custom cluster
setCluster
(cluster: Cluster) => void
Sets the active cluster
getExplorerUrl
(path: string) => string
Generates Solscan explorer URL for the current cluster

Cluster type

name
string
Cluster name (e.g., “mainnet-beta”, “devnet”)
endpoint
string
RPC endpoint URL
network
ClusterNetwork | undefined
Network enum value
active
boolean | undefined
Whether this cluster is currently active

Types

Vault

pubkey
PublicKey
Vault PDA
balanceLamports
number
SOL balance in lamports
uiAmount
number
SOL balance in SOL (with decimals)
tokenAccounts
TokenAccount[]
Token accounts owned by vault
driftUsers
DriftUser[] | undefined
Drift user accounts (mainnet only)

GlamStateCache

address
string
State account address as base58 string
pubkey
PublicKey
State account public key
owner
PublicKey
Vault owner
sparkleKey
string
Unique identifier for vault
name
string
Vault name
product
'Mint' | 'Vault' | 'TokenizedVault' | 'SingleAssetVault'
Vault product type

Build docs developers (and LLMs) love