Synthetix Docs
  • User Docs
  • Synthetix Exchange
  • Leveraged Tokens
  • For Developers
  • Orientation
  • Synthetix Overview
  • Development Progress
  • V3 FAQ
  • For Developers
    • Technical Architecture
    • Quick Start
      • Base Quickstart
    • Smart Contracts
    • Data Platform
    • Data Dictionary
    • Addresses + ABIs
    • Deployment Info
      • Mainnet
      • Sepolia
      • Sepolia Carina
      • Optimism Mainnet
      • Base Mainnet Andromeda
      • Base Sepolia Andromeda
      • Arbitrum Mainnet
      • Arbitrum Sepolia
    • Smart Contract Audits
    • Perps Market
    • Spot Market
    • Developer FAQ
  • For Perp Integrators
    • 101
    • Perps V3
    • L1 Perp (BFP)
    • Base Andromeda
    • Perps Python SDK
    • Perps V3 Keepers
  • For Liquidity Integrators
    • Creating Accounts
    • Delegating Collateral
      • Liquidity Pools
    • Liquidity Positions
      • Minting and Burning snxUSD
      • Position Liquidations
    • Base LP Guide
  • For Liquidity Pool Managers
    • Creating and Configuring Pools and Vaults
    • Collateral Vaults
      • Vault Liquidations
    • Rewards Distributors
    • Credit and Debt Distribution
  • For Derivatives Market Builders
    • Build on v3
    • Market Development Guide
    • Build on v3 FAQ
    • Operating a Market
    • Registering a Market
  • For Governance Participants
    • Synthetix Governance
    • Elections
  • For Designers
    • Design Resources
Powered by GitBook
On this page
  1. For Derivatives Market Builders

Registering a Market

PreviousOperating a MarketNextSynthetix Governance

Last updated 5 months ago

Only Synthetix governance can register markets until an SCCP alters the feature flag.

Markets can be integrated with the Synthetix protocol to access credit capacity from liquidity providers. Markets report a balance of debt, may deposit snxUSD, and withdraw snxUSD depending on the amount of liquidity delegated to them by pools (which determines their credit capacity).

Before a market can interact with the protocol, it must be registered using the registerMarket function. This function accepts the address of a market, which will be able to integrate with Synthetix (to perform actions like depositing and withdrawing snxUSD) using the ID returned by the function.

Markets cannot be registered unless they conform to the IMarket interface. See for more information on the functions that must be implemented.

Derivatives market implementations can be with the Synthetix protocol if they conform to the IMarket interface. This consists of just three functions:

  • function name(uint128 marketId) external view returns (string memory); - A function which should return a human-readable name for the given market.

  • function reportedDebt(uint129 marketId) external view returns (uint); - A function which should return the total value of debt issued by the market (to be collateralized by the assets in the pools backing it), denominated with 18 decimals places.

  • function minimumCredit(uint128 marketId) external view returns (uint); - A function which returns the amount of credit under which pools cannot rescind credit delegated to the market. This value is dollar-denominated, with 18 decimals places. If the market implementation does not intend to lock collateral, this function can just return 0;. Note that the amount of credit available to a market may still fall below this amount due to price action of the collateral backing it.

Integrating Synthetix
registered