Skip to main content
Spot markets represent depositable and borrowable assets in Drift Protocol. Each spot market has its own account containing market configuration, interest rate parameters, and deposit/borrow data.

Get Spot Market Account

Retrieve a spot market account by its market index:

Force Fetch from RPC

Force a fetch from RPC before returning the account (useful for testing):

Get All Spot Markets

Retrieve all spot market accounts:

Get Quote Spot Market

The quote spot market (USDC, index 0) is commonly used:

SpotMarketAccount Structure

The SpotMarketAccount type contains all data for a spot market.
number
required
The unique identifier for this spot market
PublicKey
required
The on-chain address of this market account
MarketStatus
required
Current status of the market (e.g., active, paused, delisted)
AssetTier
required
Asset tier classification: collateral, protected, cross, isolated, or unlisted
number[]
required
Market name as byte array (use decodeName() to convert to string)
PublicKey
required
SPL token mint address for this market
PublicKey
required
Vault account holding the market’s token balance
PublicKey
required
Oracle account providing price data
OracleSource
required
Oracle source type (Pyth, Switchboard, etc.)
number
required
Token decimals for this market
number
required
Asset weight for initial margin calculations (in margin precision 10000)
number
required
Asset weight for maintenance margin calculations (in margin precision 10000)
number
required
Liability weight for initial margin calculations (in margin precision 10000)
number
required
Liability weight for maintenance margin calculations (in margin precision 10000)
number
required
Initial margin fraction factor for size-based margin increases
number
required
Fee paid to liquidators (in percentage precision)
number
required
Fee paid to insurance fund during liquidations
BN
required
Total scaled deposit balance across all users
BN
required
Total scaled borrow balance across all users
BN
required
Cumulative deposit interest multiplier
BN
required
Cumulative borrow interest multiplier
number
required
Target utilization rate for optimal interest rates
number
required
Interest rate at optimal utilization
number
required
Maximum borrow interest rate
number
required
Minimum borrow interest rate
BN
required
Maximum token deposits allowed (0 = unlimited)
number
required
Maximum borrow fraction relative to deposits
BN
required
Deposit size where asset weight scaling begins
object
required
Insurance fund information for this market
HistoricalOracleData
required
Historical oracle price data and TWAP values
HistoricalIndexData
required
Historical index price bid/ask data
BN
required
Minimum order size increment
BN
required
Minimum price increment
BN
required
Minimum order size
BN
required
Maximum position size allowed

Calculate Token Amount

Convert scaled balance to token amount:

Calculate Spot Market Margin

Calculate margin requirements for a spot position:

Calculate Maximum Deposit

Calculate remaining deposit capacity: