Futures Contract
On DMEX, users trade futures contracts. Futures contracts are defined by the following parameters:
Parameter
Type
Description
asset
bytes32
the hash of the underlying asset object
expirationBlock
uint256
futures contract expiration block
closingPrice
uint256
the closing price for the futures contract
closed
bool
is the futures contract closed? (0 - false, 1 - true)
broken
bool
if someone has forced release of funds after no settlement for two hours, the contract is marked as broken and can no longer close positions, all collaterals are released
multiplier
uint256
the multiplier price (usually 1/ETHUSD x 1e8)
fundingRate
uint256
funding rate expressed per block * 1e18
closingBlock
uint256
the block in which the contract was closed (0 while contract open)
perpetual
bool
true if the contract is perpetual
maintenanceMargin
uint256
the maintenance margin coefficient
The Futures Contract has a unique hash derived from its parameters. There can be no two futures contracts with the same hash and different parameters as all parameters are included in the hash. A change in any parameter will result in a new futures contract hash.
1
bytes32 futuresContractHash = keccak256(
2
this,
3
asset,
4
expirationBlock,
5
multiplier,
6
fundingRate,
7
perpetual,
8
maintenanceMargin
9
);
Copied!
When a user places an order, the order is placed to trade a specific futures contract and the futures contract hash is embedded in the user’s signature. This way the user can be sure that he/she is trading the correct asset/futures contract.
Last modified 1yr ago
Copy link