Skip to main content

Market Initialization

Overview

Each market is uniquely identified by a Market Id, which corresponds to the market's Loan Token address. A market's Loan Token is the ERC4626 compliant variable rate yield-bearing token representing the market's deposits on the reference Morpho money market.

Markets on Tenor can support multi-collateral markets. For multi-collateral markets the market creator specifies the Loan Token's reference market on Morpho.

Market Initialization

function initialize(
bytes32 loanMarketId,
bytes32[] memory collateralMarketIds,
uint8 maxTick,
uint8 bpsPerTick,
IPoolManager poolManager
) external nonReentrant returns (ILoanToken loanToken)

Parameters

ParameterDescription
loanMarketIdMorpho market identifier for loan asset
collateralMarketIdsArray of accepted collateral market IDs
bpsPerTickBasis points per tick for rate granularity
poolManagerPool Manager contract address

Initialization Process

  • Validates caller permissions. Only the initializer can create new markets
  • Checks tick configuration (must be above 0)
  • Validates market parameters. In the context of multi collateral markets all loan assets must be identical. No two Morpho reference market can have the same collateral asset.
  • For each collateral and loan asset pair, the pair's LLTV and oracle is inherited from the Morpho market.

Loan Token

During the market creation process, the market's Loan Token is created. The initializer pays a small amount to mint a small amount of Loan Tokens, these Loan Tokens are then burned.

Maturity Initialization

Once a market is created, the initializer can initialize maturities. During this process the Loan Token creates a Fixed Token with the maturity date specified by the initializer. The initialize maturity call also creates a pool on the Pool Manager with the Loan Token, Fixed Token. The pool's parameters such as Bps per tick and max tick are taken from the Market.