VMP-25 - Create DYDX/USDT Perp

VMP-25 - Create DYDX/USDT Perp

This proposal creates a DYDX/USDT perpetual market, settled in USDT, with the following characteristics:

  • Max leverage of 50x
  • Settlement oracle taken from Uniswap V3 pool using 5 minute TWAP
  • 8 hour funding interval
  • Lot size = 0.1
  • Tick size = 0.001

Full Proposal JSON:

{
    "terms": {
        "closingTimestamp": "1704495600",
        "enactmentTimestamp": "1704499200",
        "newMarket": {
            "changes": {
                "instrument": {
                    "name": "DYDX/USDT-Perp",
                    "code": "DYDX/USDT-PERP",
                    "perpetual": {
                        "settlementAsset": "bf1e88d19db4b3ca0d1d5bdb73718a01686b18cf731ca26adedf3c8b83802bba",
                        "quoteName": "USDT",
                        "marginFundingFactor": "0.9",
                        "interestRate": "0.1095",
                        "clampLowerBound": "-0.0005",
                        "clampUpperBound": "0.0005",
                        "dataSourceSpecForSettlementSchedule": {
                            "internal": {
                                "timeTrigger": {
                                    "conditions": [
                                        {
                                            "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                                            "value": "0"
                                        }
                                    ],
                                    "triggers": [
                                        {
                                            "initial": "1704499200",
                                            "every": "28800"
                                        }
                                    ]
                                }
                            }
                        },
                        "dataSourceSpecForSettlementData": {
                            "external": {
                                "ethOracle": {
                                    "address": "0x9eb2EBD260D82410592758B3091F74977E4A404c",
                                    "abi": "[{\"inputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"twapInterval\",\"type\":\"uint32\"}],\"name\":\"priceFromEthPoolInUsdt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
                                    "method": "priceFromEthPoolInUsdt",
                                    "args": [
                                        {
                                            "stringValue": "0xd8de6af55f618a7bc69835d55ddc6582220c36c0"
                                        },
                                        {
                                            "numberValue": 300
                                        }
                                    ],
                                    "trigger": {
                                        "timeTrigger": {
                                            "initial": "1704499200",
                                            "every": "300"
                                        }
                                    },
                                    "requiredConfirmations": "3",
                                    "filters": [
                                        {
                                            "key": {
                                                "name": "dydx.price",
                                                "type": "TYPE_INTEGER",
                                                "numberDecimalPlaces": "18"
                                            },
                                            "conditions": [
                                                {
                                                    "operator": "OPERATOR_GREATER_THAN",
                                                    "value": "0"
                                                }
                                            ]
                                        }
                                    ],
                                    "normalisers": [
                                        {
                                            "name": "dydx.price",
                                            "expression": "$[0]"
                                        }
                                    ]
                                }
                            }
                        },
                        "dataSourceSpecBinding": {
                            "settlementDataProperty": "dydx.price",
                            "settlementScheduleProperty": "vegaprotocol.builtin.timetrigger"
                        }
                    }
                },
                "decimalPlaces": "3",
                "metadata": [
                    "base:DYDX",
                    "quote:USDT",
                    "class:fx/crypto",
                    "perpetual",
                    "sector:defi",
                    "enactment:2024-01-06T00:00:00Z"
                ],
                "priceMonitoringParameters": {
                    "triggers": [
                        {
                            "horizon": "4320",
                            "probability": "0.9999999",
                            "auctionExtension": "300"
                        },
                        {
                            "horizon": "1440",
                            "probability": "0.9999999",
                            "auctionExtension": "180"
                        },
                        {
                            "horizon": "360",
                            "probability": "0.9999999",
                            "auctionExtension": "120"
                        }
                    ]
                },
                "liquidityMonitoringParameters": {
                    "targetStakeParameters": {
                        "timeWindow": "3600",
                        "scalingFactor": 0.05
                    },
                    "triggeringRatio": "0.9",
                    "auctionExtension": "1"
                },
                "logNormal": {
                    "riskAversionParameter": 0.000001,
                    "tau": 0.0000071,
                    "params": {
                        "mu": 0,
                        "r": 0,
                        "sigma": 1.5
                    }
                },
                "positionDecimalPlaces": "1",
                "linearSlippageFactor": "0.001",
                "quadraticSlippageFactor": "0",
                "liquiditySlaParameters": {
                    "priceRange": "0.03",
                    "commitmentMinTimeFraction": "0.85",
                    "performanceHysteresisEpochs": "1",
                    "slaCompetitionFactor": "0.5"
                }
            }
        }
    },
    "rationale": {
        "description": "## Summary\n\nThis proposal requests to list DYDX/USDT Perpetual as a market with USDT as a settlement asset",
        "title": "VMP-25 Create market DYDX/USDT Perpetual"
    },
    "requiredParticipation": "0.01",
    "requiredMajority": "0.66"
}
2 Likes

Just FYI we are tracking an opening auction crasher bug (in case a trailing stop order is placed during an auction). So ideally these won’t go on-chain before a fix probably from this PR has been deployed by validators to mainnet.

We don’t have an ETA for that yet AFAIK since as of now we don’t even have a tag with the hotfix - the latest mainnet one is v0.73.10 which is deployed.

Other than that I’ve not had time to look at the substance of the proposal.

As the DYDX token is currently migrating to it’s own chain, I could see there being future issues with the liquidity in the uniswap contract (it’s a 1-way bridge migration). Might this be better waiting until there is an alternate oracle for that price?