Skip to main content

AdminClient

The AdminClient class extends DriftClient to provide administrative functions for managing Drift Protocol. It includes methods for initializing markets, updating protocol parameters, and managing market configurations.
The AdminClient requires the connected wallet to be the protocol admin. Most users should use DriftClient instead.

Extends

AdminClient extends DriftClient, inheriting all methods and properties.

Protocol Initialization

initialize

Initializes the Drift Protocol state account.
PublicKey
required
USDC mint public key
boolean
required
Whether admin controls oracle prices
Promise<[TransactionSignature]>
Transaction signature in array format

Perpetual Market Management

initializePerpMarket

Initializes a new perpetual market.
number
required
Market index for the new perpetual market
PublicKey
required
Oracle account public key
BN
required
Initial base asset reserve for the AMM
BN
required
Initial quote asset reserve for the AMM
BN
required
Funding rate update periodicity
BN
default:"PEG_PRECISION"
Peg multiplier for the market
OracleSource
default:"OracleSource.PYTH"
Oracle source type
ContractTier
default:"ContractTier.SPECULATIVE"
Contract tier classification
number
default:2000
Initial margin ratio (in basis points)
number
default:500
Maintenance margin ratio (in basis points)
string
default:"DEFAULT_MARKET_NAME"
Market name
Promise<TransactionSignature>
Transaction signature

deletePerpMarket

Deletes an initialized but unused perpetual market.
number
required
Market index to delete
Promise<TransactionSignature>
Transaction signature

updatePerpMarketMarginRatio

Updates margin ratios for a perpetual market.
number
required
Perpetual market index
number
required
New initial margin ratio
number
required
New maintenance margin ratio
Promise<TransactionSignature>
Transaction signature

updatePerpMarketBaseSpread

Updates the base spread for a perpetual market.
number
required
Perpetual market index
number
required
New base spread value
Promise<TransactionSignature>
Transaction signature

updatePerpMarketOracle

Updates the oracle for a perpetual market.
number
required
Perpetual market index
PublicKey
required
New oracle account public key
OracleSource
required
Oracle source type
boolean
default:false
Skip invariant validation checks
Promise<TransactionSignature>
Transaction signature

Spot Market Management

initializeSpotMarket

Initializes a new spot market.
PublicKey
required
Token mint public key
number
required
Optimal utilization rate for interest
number
required
Interest rate at optimal utilization
number
required
Maximum interest rate
PublicKey
required
Oracle account public key
OracleSource
required
Oracle source type
number
required
Initial asset weight for collateral
number
required
Maintenance asset weight for collateral
number
required
Initial liability weight for borrows
number
required
Maintenance liability weight for borrows
AssetTier
default:"AssetTier.COLLATERAL"
Asset tier classification
string
default:"DEFAULT_MARKET_NAME"
Market name
Promise<TransactionSignature>
Transaction signature

deleteSpotMarket

Deletes an initialized but unused spot market.
number
required
Spot market index to delete
Promise<TransactionSignature>
Transaction signature

updateSpotMarketOracle

Updates the oracle for a spot market.
number
required
Spot market index
PublicKey
required
New oracle account public key
OracleSource
required
Oracle source type
Promise<TransactionSignature>
Transaction signature

AMM Management

moveAmmPrice

Moves the AMM price to new reserve values.
number
required
Perpetual market index
BN
required
New base asset reserve
BN
required
New quote asset reserve
BN
Square root of k (auto-calculated if not provided)
Promise<TransactionSignature>
Transaction signature

repegAmmCurve

Repegs the AMM curve to a new peg multiplier.
BN
required
New peg multiplier
number
required
Perpetual market index
Promise<TransactionSignature>
Transaction signature

updateK

Updates the k parameter for an AMM.
number
required
Perpetual market index
BN
required
New square root of k value
Promise<TransactionSignature>
Transaction signature

Fee Structure Management

updatePerpFeeStructure

Updates the perpetual market fee structure.
FeeStructure
required
New fee structure configuration
Promise<TransactionSignature>
Transaction signature

updateSpotFeeStructure

Updates the spot market fee structure.
FeeStructure
required
New fee structure configuration
Promise<TransactionSignature>
Transaction signature

State Parameter Updates

updateAdmin

Transfers admin authority to a new address.
PublicKey
required
New admin public key
Promise<TransactionSignature>
Transaction signature

updateOracleGuardRails

Updates oracle guard rails for price validation.
OracleGuardRails
required
New oracle guard rail configuration
Promise<TransactionSignature>
Transaction signature

updateLiquidationDuration

Updates the liquidation duration parameter.
number
required
New liquidation duration in seconds
Promise<TransactionSignature>
Transaction signature

Usage Example