Skip to main content
Config stores all tunable protocol parameters. The owner can adjust margin factors, fee rates, tenor durations, and other settings without redeploying contracts. Certain parameter changes (tenor durations, fixing times, margin mode) require all positions to be closed first.

Contract Relationships

Read Functions

Margin Parameters

FunctionReturnsDefault
marginConfig()Full MarginConfig struct
imFactorBps()Initial margin factor (bps)200 (2%)
mmFactorBps()Maintenance margin factor (bps)100 (1%)
tradingFeeBps()Trading fee rate (bps)5 (0.05%)
liquidationPenaltyBps()Liquidation penalty (bps)30 (0.3%)

Pricing Parameters

FunctionReturnsDefault
pricingConfig()Full PricingConfig struct
baseSpreadBps()Base spread (bps)5 (0.05%)
premiumDiscountAdjBps()Premium/discount adjustment (bps)5 (0.05%)

Tenor Configuration

FunctionReturns
timeConfig()Full TimeConfig struct
getTenorSeconds(tenor)Duration in seconds for a tenor
isTenorEnabled(tenor)Whether a tenor is enabled
getEnabledTenors()Array of all enabled tenors

Other Parameters

FunctionReturnsDefault
minPositionNotional()Minimum position size100,000,000 (100 USDC)
oracleFee()Fee per oracle read100,000 ($0.10 USDC)
oracleFeeReceiver()Oracle fee recipient address
marginMode()Current margin modeISOLATED
getFeeDestinations()Fee distribution destinations
getPairFixingTime(pairId)Per-pair fixing time config

Admin Functions

All admin functions are restricted to the contract owner.

setMarginConfig

function setMarginConfig(MarginConfig calldata newConfig) external
Updates margin factors and fee rates. Applied to all future positions (existing positions use snapshotted values). Validation:
#CheckRevert Error
1imFactorBps > mmFactorBpsImMustExceedMm
2imFactorBps <= 10000InvalidParameter

setPricingConfig

function setPricingConfig(PricingConfig calldata newConfig) external
Updates pricing spread parameters. Validation: baseSpreadBps <= 1000 (max 10%)

setTimeConfig

function setTimeConfig(TimeConfig calldata newConfig) external
Updates tenor duration settings. Requires all positions to be closed. Validation: openPositionCount == 0 or reverts OpenPositionsExist

setPairFixingTime

function setPairFixingTime(bytes32 pairId, FixingConfig calldata config) external
Sets the daily fixing time for a currency pair. Validation:
#CheckRevert Error
1fixingHourUtc < 24InvalidParameter
2fixingMinuteUtc < 60InvalidParameter
3fixingSecondUtc < 60InvalidParameter
4No open positions for this pairOpenPositionsExist

setMarginMode

function setMarginMode(MarginMode newMode) external
Switches between ISOLATED and CROSS margin modes. Requires all positions to be closed.

setTenorEnabled

function setTenorEnabled(Tenor tenor, bool enabled) external
Enables or disables a specific tenor for trading.

setMinPositionNotional

function setMinPositionNotional(uint256 minNotional) external
Sets the minimum position notional in collateral decimals (6 for USDC).

setOracleFee

function setOracleFee(uint256 fee) external
Sets the oracle fee per price read in collateral decimals.

setOracleFeeReceiver

function setOracleFeeReceiver(address receiver) external
Sets the oracle fee recipient address.

setFeeDestinations

function setFeeDestinations(FeeDestination[] calldata destinations) external
Sets fee distribution destinations. Shares must sum to exactly 10,000 bps (100%). Validation:
#CheckRevert Error
1Each destination != address(0)ZeroAddress
2Each shareBps > 0InvalidParameter
3Total shares == 10,000InvalidParameter

Events

EventWhen Emitted
MarginConfigUpdatedMargin factors or fee rates changed
PricingConfigUpdatedSpread parameters changed
TimeConfigUpdatedTenor durations changed
PairFixingConfigUpdatedPer-pair fixing time changed
MarginModeUpdatedMargin mode switched
MinPositionNotionalUpdatedMinimum position size changed
OracleFeeUpdatedOracle fee amount changed
OracleFeeReceiverUpdatedOracle fee receiver changed
FeeDestinationsUpdatedFee distribution destinations changed

Parameter Reference

Complete parameter listing with defaults.

Types Reference

MarginConfig, PricingConfig, TimeConfig struct definitions.

Fees

Fee calculation formulas and distribution.