Skip to main content
All shared type definitions live in Types.sol and are imported by every contract. This page is the canonical reference — individual contract pages link here rather than duplicating definitions.

Enums

Side

Tenors (no enum)

There is no Tenor enum. Tenors are stored as raw uint32 tenorSeconds values in a dynamic registry on Config. New maturities are added permissionlessly via Config.registerTenor(tenorSeconds) and removed via Config.disableTenor(tenorSeconds). Currently registered on Sepolia: Read the live set with Config.getEnabledTenors(). The TypeScript and Rust SDKs ship a bundled cache (TENORS) sourced from the canonical defaults file, but consumers should prefer the on-chain getter for authoritative state.

PositionStatus

CloseReason

Mode

MarginMode

FeeType

Used as the indexed feeType of SettlementEngine.FeesCollected. The subgraph indexes these into the FeeEvent entity.

Structs

Position

Every position is stored onchain as a Position struct:
The imLocked field is the only mutable economic field on an open position. It changes when the trader adds or removes margin. All snapshot* fields are immutable after position creation.

OpenPositionParams

MarginConfig

FeeDestination

PricingConfig

FixingConfig

OracleConfig

DegradedConfig

ForwardRound

Constants

Contract Overview

Architecture diagram and contract summary.

Parameter Reference

Default parameter values and configuration.

Errors Reference

Custom errors by contract.