Skip to main content


Listing a trading pair means that users can open or close positions on this trading pair in JOJO. The listing process requires the synchronization of the contract and back-end to complete.

At the contract level, the isRegistered needs to be modified to make the market activated. At the back end level, the matching engine need to start. If users found that isRegistered is true at the contract level, it does not mean that the pair can be traded, the backend engine machine may not be ready. The condition of pairs being tradable is that the back-end and contract level need to be ready at the same time. Users can find all tradable currency pairs by this API:

/// @notice risk params of a perpetual market

struct RiskParams {
Liquidation will happens when
netValue < exposure * liquidationThreshold
The lower liquidationThreshold, the higher leverage.
1E18 based decimal.
uint256 liquidationThreshold;
The discount rate for the liquidation.
markPrice * (1 - liquidationPriceOff) when liquidate long position
markPrice * (1 + liquidationPriceOff) when liquidate short position
1e18 based decimal.
uint256 liquidationPriceOff;
// The insurance fee rate charged from liquidation.
// 1E18 based decimal.
uint256 insuranceFeeRate;
// price source of mark price
address markPriceSource;
// perpetual market name
string name;
// if the market is activited
bool isRegistered;


In a centralized exchange, users are required to liquidate their positions when the trading pair is delisted. While for JOJO, delist is not a liquidation process. It neither closes trading nor prohibit opening and closing of positions.

When delist, JOJO will replaces the oracle to make the mark price a fixed value. From this moment onward, the perpetual price will no longer be anchored to the spot price. The result is there is no profit for any buy orders higher than mark price and sell orders lower than mark price. The market is no longer changing and any one can close his positon at anytime, with the liquidity provided by JOJO.


There will be two stages for delist.

In the announcement stage: there is no change in the contract and the backend, and users can trade freely without restrictions. The platform will just inform users that the contract will be delisted after a while. And the calculation method of the final fixed price will be posted. Normally, it will be the arithmetic average of the index price of the previous 1 hour.

Execution stage: The JOJO team will set mark price to a fixed price and stop funding rate updates.