VMP-15 Create Market - SOL/USD(USDT) Perpetual

VMP-15 Create Market - SOL/USD(USDT) Perpetual

This is a perpetual futures market for Solana (SOL) denominated in USD using the SOL/USD Chainlink price feed. This market will be settled in USDT.

Market Summary:
Name:
SOL/USD(USDT) PERPETUAL

Settlement asset:
USDT

Rationale:
Solana (SOL) is a very popular Layer 1 with a large market cap and high daily perpetual trading volume.

Market/Update Details:
Instrument:
SOL/USD(USDT)-PERP

Data source definition for the settlement data oracle:
Chainlink Oracle
0x4ffC43a60e009B551865A93d232E33Fce9f01507

Risk model:
Log-Normal

Liquidity monitoring parameters:

"liquidityMonitoringParameters": {
          "targetStakeParameters": {
            "timeWindow": "3600",
            "scalingFactor": 1
          },
          "triggeringRatio": "0.1",
          "auctionExtension": "1"
        },

Price monitoring parameters:

        "priceMonitoringParameters": {
          "triggers": [
            {
              "horizon": "43200",
              "probability": "0.9999999",
              "auctionExtension": "300"
            }
          ]
        },

SLA monitoring parameters:

        "liquiditySlaParameters": {
          "priceRange": "0.03",
          "commitmentMinTimeFraction": "0.85",
          "performanceHysteresisEpochs": "1",
          "slaCompetitionFactor": "0.5"
        }
      }

Full Proposal JSON:

{
  "rationale": {
    "title": "SOL/USD(USDT) Perpetual",
    "description": "This is a perpetual futures market for Solana (SOL) denominated in USD using the SOL/USD Chainlink price feed. This market will be settled in USDT."
  },
  "terms": {
    "newMarket": {
      "changes": {
        "linearSlippageFactor": "0.001",
        "quadraticSlippageFactor": "0",
        "decimalPlaces": "3",
        "positionDecimalPlaces": "2",
        "instrument": {
          "name": "SOL/USD(USDT)-PERP",
          "code": "SOL/USD-PERP",
          "perpetual": {
            "settlementAsset": "bf1e88d19db4b3ca0d1d5bdb73718a01686b18cf731ca26adedf3c8b83802bba",
            "quoteName": "USD",
            "marginFundingFactor": "0.95",
            "interestRate": "0",
            "clampLowerBound": "0",
            "clampUpperBound": "0",
            "dataSourceSpecForSettlementData": {
              "external": {
                "ethOracle": {
                  "address": "0x4ffC43a60e009B551865A93d232E33Fce9f01507",
                  "abi": "[{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
                  "method": "latestAnswer",
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "requiredConfirmations": 3,
                  "trigger": {
                    "timeTrigger": {
                      "every": 30
                    }
                  },
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": 8
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                          "value": "0"
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "dataSourceSpecForSettlementSchedule": {
              "internal": {
                "timeTrigger": {
                  "conditions": [
                    {
                      "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                      "value": "0"
                    }
                  ],
                  "triggers": [
                    {
                      "every": 1800
                    }
                  ]
                }
              }
            },
            "dataSourceSpecBinding": {
              "settlementDataProperty": "sol.price",
              "settlementScheduleProperty": "vegaprotocol.builtin.timetrigger"
            }
          }
        },
        "metadata": [
          "enactment:TBD",
          "base:SOL",
          "quote:USD",
          "class:fx/crypto",
          "perpetual",
          "sector:defi"
        ],
        "priceMonitoringParameters": {
          "triggers": [
            {
              "horizon": "43200",
              "probability": "0.9999999",
              "auctionExtension": "300"
            }
          ]
        },
        "liquidityMonitoringParameters": {
          "targetStakeParameters": {
            "timeWindow": "3600",
            "scalingFactor": 1
          },
          "triggeringRatio": "0.1",
          "auctionExtension": "1"
        },
        "logNormal": {
          "tau": 0.000009506426342,
          "riskAversionParameter": 0.000001,
          "params": {
            "mu": 0,
            "r": 0.016,
            "sigma": 1.5
          }
        },
        "liquiditySlaParameters": {
          "priceRange": "0.03",
          "commitmentMinTimeFraction": "0.85",
          "performanceHysteresisEpochs": "1",
          "slaCompetitionFactor": "0.5"
        }
      }
    },
    "closingTimestamp": 0,
    "enactmentTimestamp": 0
  }
}

Hey guys, please see the new JSON which is updated to follow spec similar to the BTC market (8hr settlement, 5 min oracle price sourcing)

{
  "rationale": {
    "title": "SOL/USD(USDT) Perpetual",
    "description": "This is a perpetual futures market for Solana (SOL) denominated in USD using the SOL/USD Chainlink price feed. This market will be settled in USDT and forum discussion can be found [here](https://community.vega.xyz/t/vmp-15-create-market-sol-usd-usdt-perpetual/4373)."
  },
  "terms": {
    "newMarket": {
      "changes": {
        "linearSlippageFactor": "0.001",
        "quadraticSlippageFactor": "0",
        "decimalPlaces": "3",
        "positionDecimalPlaces": "2",
        "instrument": {
          "name": "SOL/USD(USDT)-PERP",
          "code": "SOL/USD-PERP",
          "perpetual": {
            "settlementAsset": "bf1e88d19db4b3ca0d1d5bdb73718a01686b18cf731ca26adedf3c8b83802bba",
            "quoteName": "USD",
            "marginFundingFactor": "0.9",
            "interestRate": "0.1095",
            "clampLowerBound": "-0.0005",
            "clampUpperBound": "0.0005",
            "dataSourceSpecForSettlementData": {
              "external": {
                "ethOracle": {
                  "address": "0x4ffC43a60e009B551865A93d232E33Fce9f01507",
                  "abi": "[{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
                  "method": "latestAnswer",
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "requiredConfirmations": 3,
                  "trigger": {
                    "timeTrigger": {
                      "every": 300
                    }
                  },
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": 8
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                          "value": "0"
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "dataSourceSpecForSettlementSchedule": {
              "internal": {
                "timeTrigger": {
                  "conditions": [
                    {
                      "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                      "value": "0"
                    }
                  ],
                  "triggers": [
                    {
                      "every": 28800
                    }
                  ]
                }
              }
            },
            "dataSourceSpecBinding": {
              "settlementDataProperty": "sol.price",
              "settlementScheduleProperty": "vegaprotocol.builtin.timetrigger"
            }
          }
        },
        "metadata": [
          "enactment:TBD",
          "base:SOL",
          "quote:USD",
          "class:fx/crypto",
          "perpetual",
          "sector:defi"
        ],
        "priceMonitoringParameters": {
          "triggers": [
            {
              "horizon": "43200",
              "probability": "0.9999999",
              "auctionExtension": "300"
            }
          ]
        },
        "liquidityMonitoringParameters": {
          "targetStakeParameters": {
            "timeWindow": "3600",
            "scalingFactor": 0.05
          },
          "triggeringRatio": "0.1",
          "auctionExtension": "1"
        },
        "logNormal": {
          "tau": 0.000009506426342,
          "riskAversionParameter": 0.000001,
          "params": {
            "mu": 0,
            "r": 0.016,
            "sigma": 1.5
          }
        },
        "liquiditySlaParameters": {
          "priceRange": "0.03",
          "commitmentMinTimeFraction": "0.85",
          "performanceHysteresisEpochs": "1",
          "slaCompetitionFactor": "0.5"
        }
      }
    },
    "closingTimestamp": 0,
    "enactmentTimestamp": 0
  }
}

Hi Jubi,

We have a similar story with PDPs here as on the LINK proposal. With 2 PDPs we have smallest order margin 60 x 0.01 x 0.02264 = 0.013584 which is probably too cheap.

I’d suggest going with 1 to make it 60 x 0.1 x 0.02264 = 0.13584 or even with 0 to make it 1.3584.

Cheers!

Hey @david @Witold @Edo,

Please see the new updated JSON that I plan to resubmit

Edits:

  • Changes to risk params (pls can I have some feedback for this)
  • Fixed decimals places according to David’s feedback
  • Added 2 new price monitoring triggers (modelled off the BTC futures market) please let me know if these are fine.
  • reset interest rate back to 0% with +/-0.5% clamps
  • Fixed title

Before submitting I’ll:

  • fix enactment time in metadata
{
  "rationale": {
    "title": "VMP-15 - Create Market - SOL/USD(USDT) Perpetual",
    "description": "This is a perpetual futures market for Solana (SOL) denominated in USD using the SOL/USD Chainlink price feed. This market will be settled in USDT and forum discussion can be found [here](https://community.vega.xyz/t/vmp-15-create-market-sol-usd-usdt-perpetual/4373)."
  },
  "terms": {
    "newMarket": {
      "changes": {
        "linearSlippageFactor": "0.001",
        "quadraticSlippageFactor": "0",
        "decimalPlaces": "2",
        "positionDecimalPlaces": "0",
        "instrument": {
          "name": "SOL/USD(USDT)-PERP",
          "code": "SOL/USD-PERP",
          "perpetual": {
            "settlementAsset": "bf1e88d19db4b3ca0d1d5bdb73718a01686b18cf731ca26adedf3c8b83802bba",
            "quoteName": "USD",
            "marginFundingFactor": "0.9",
            "interestRate": "0.1095 ",
            "clampLowerBound": "-0.0005",
            "clampUpperBound": "0.0005",
            "dataSourceSpecForSettlementData": {
              "external": {
                "ethOracle": {
                  "address": "0x4ffC43a60e009B551865A93d232E33Fce9f01507",
                  "abi": "[{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
                  "method": "latestAnswer",
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "requiredConfirmations": 3,
                  "trigger": {
                    "timeTrigger": {
                      "every": 300
                    }
                  },
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": 8
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                          "value": "0"
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "dataSourceSpecForSettlementSchedule": {
              "internal": {
                "timeTrigger": {
                  "conditions": [
                    {
                      "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                      "value": "0"
                    }
                  ],
                  "triggers": [
                    {
                      "every": 28800
                    }
                  ]
                }
              }
            },
            "dataSourceSpecBinding": {
              "settlementDataProperty": "sol.price",
              "settlementScheduleProperty": "vegaprotocol.builtin.timetrigger"
            }
          }
        },
        "metadata": [
          "enactment:TBD",
          "base:SOL",
          "quote:USD",
          "class:fx/crypto",
          "perpetual",
          "sector:defi"
        ],
        "priceMonitoringParameters": {
          "triggers": [
            {
              "horizon": "3600",
              "probability": "0.9999999",
              "auctionExtension": "120"
            },
            {
              "horizon": "14400",
              "probability": "0.9999999",
              "auctionExtension": "180" 
            },
            {
            "horizon": "43200",
            "probability": "0.9999999",
            "auctionExtension": "300" 
            }
          ]
        },
        "liquidityMonitoringParameters": {
          "targetStakeParameters": {
            "timeWindow": "3600",
            "scalingFactor": 0.05
          },
          "triggeringRatio": "0.1",
          "auctionExtension": "1"
        },
        "logNormal": {
          "tau": 0.0001140771161,
          "riskAversionParameter": 0.000001,
          "params": {
            "mu": 0,
            "r": 0.0,
            "sigma": 1.0
          }
        },
        "liquiditySlaParameters": {
          "priceRange": "0.03",
          "commitmentMinTimeFraction": "0.85",
          "performanceHysteresisEpochs": "1",
          "slaCompetitionFactor": "0.5"
        }
      }
    },
    "closingTimestamp": 0,
    "enactmentTimestamp": 0
  }
}

Hi Jubi,

The risk parameters look reasonable, the implied leverage you’re getting out of this is about 18x. If you made tau 10 times smaller then the leverage would be about 75x.

The decimal places look good (and that’s the main thing as that’s not changeable on an existing market).

Let’s see if Witold adds anything.

Cheers!!!

Hi David,

when you say implied leverage does that mean the “max leverage”, ie; the leverage you would reach shortly before liquidation?

Yes, it’s the max leverage, so in fact with the current proposed numbers, max leverage is 18x but because initial margin is 1.5 times maintenance users will only see 12x.

Same interest rate (within instrument) comment as for LINK/USD, other than that it looks good to me.