VMP-34 Create SOL/USDT Perpetual

Hey guys,

I’d like to create the SOL/USDT perp market that was originally shut down. The market should function fine now with Vega’s new updates.

The proposal JSON follows closely to that of INJ. However, I did notice that the INJ proposal had no values for “triggeringRatio” and “auction extension” under LiquidityMonitoringParameters. Not sure if this is intentional as it looks like BTC and ETH markets some values

Full Proposal JSON:

{
  "rationale": {
    "title": "VMP-34 - Create SOL/USDT Perpetual",
    "description": "This proposal requests to recreate a SOL/USDT Perpetual market using Vega's updated features. Full forum discussion can be found [here](***add link***)"
  },
  "terms": {
    "newMarket": {
      "changes": {
        "linearSlippageFactor": "0.001",
        "decimalPlaces": "2",
        "positionDecimalPlaces": "0",
        "instrument": {
          "name": "Solana / Tethere USD (Perpetual)",
          "code": "SOL/USDT",
          "perpetual": {
            "settlementAsset": "bf1e88d19db4b3ca0d1d5bdb73718a01686b18cf731ca26adedf3c8b83802bba",
            "quoteName": "USDT",
            "marginFundingFactor": "0.9",
            "interestRate": "0.1095",
            "clampLowerBound": "-0.0005",
            "clampUpperBound": "0.0005",
            "fundingRateLowerBound": "-0.001",
            "fundingRateUpperBound": "0.001",
            "fundingRateScalingFactor": "1",
            "dataSourceSpecForSettlementData": {
              "external": {
                "ethOracle": {
                  "sourceChainId": "100",
                  "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                  "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                  "method": "getPrice",
                  "args": [
                    "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d"
                  ],
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "requiredConfirmations": "3",
                  "trigger": {
                    "timeTrigger": {
                      "every": "60"
                    }
                  },
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": "18"
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN",
                          "value": "0"
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "dataSourceSpecForSettlementSchedule": {
              "internal": {
                "timeTrigger": {
                  "conditions": [
                    {
                      "operator": "OPERATOR_GREATER_THAN",
                      "value": "0"
                    }
                  ],
                  "triggers": [
                    {
                      "every": "28800"
                    }
                  ]
                }
              }
            },
            "dataSourceSpecBinding": {
              "settlementDataProperty": "sol.price",
              "settlementScheduleProperty": "vegaprotocol.builtin.timetrigger"
            }
          }
        },
        "metadata": [
          "base:SOL",
          "quote:USDT",
          "oracle:pyth",
          "oracleChain:gnosis",
          "class:fx/crypto",
          "perpetual",
          "sector:defi",
          "enactment:****TODO****"
        ],
        "priceMonitoringParameters": {
          "triggers": [
            {
              "horizon": "21600",
              "probability": "0.9999999",
              "auctionExtension": "86400"
            },
            {
              "horizon": "4320",
              "probability": "0.9999999",
              "auctionExtension": "3600"
            },
            {
              "horizon": "1440",
              "probability": "0.9999999",
              "auctionExtension": "1800"
            },
            {
              "horizon": "360",
              "probability": "0.9999999",
              "auctionExtension": "300"
            }
          ]
        },
        "logNormal": {
          "tau": 0.000001,
          "riskAversionParameter": 0.0000071,
          "params": {
            "mu": 0,
            "r": 0,
            "sigma": 1.5
          }
        },
        "liquiditySlaParameters": {
          "priceRange": "0.03",
          "commitmentMinTimeFraction": "0.75",
          "performanceHysteresisEpochs": "1",
          "slaCompetitionFactor": "0.8"
        },
        "liquidationStrategy": {
          "disposalTimeStep": "1",
          "disposalFraction": "1",
          "fullDisposalSize": "1000000",
          "maxFractionConsumed": "0.1"
        },
        "liquidityFeeSettings": {
          "method": "METHOD_MARGINAL_COST"
        },
        "liquidityMonitoringParameters": {
          "targetStakeParameters": {
            "timeWindow": "3600",
            "scalingFactor": "0.05"
          },
          "triggeringRatio": "",
          "auctionExtension": "0"
        },
        "markPriceConfiguration": {
          "decayWeight": "1",
          "decayPower": "1",
          "cashAmount": "0",
          "sourceWeights": [
            "0",
            "0",
            "1",
            "0"
          ],
          "sourceStalenessTolerance": [
            "1m0s",
            "1m0s",
            "1m0s",
            "1m0s"
          ],
          "compositePriceType": "COMPOSITE_PRICE_TYPE_WEIGHTED",
          "dataSourcesSpec": [
            {
              "external": {
                "ethOracle": {
                  "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                  "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                  "method": "getPrice",
                  "args": [
                    "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d"
                  ],
                  "trigger": {
                    "timeTrigger": {
                      "every": "60"
                    }
                  },
                  "requiredConfirmations": "3",
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": "18"
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN",
                          "value": "0"
                        }
                      ]
                    }
                  ],
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "sourceChainId": "100"
                }
              }
            }            
          ],
          "dataSourcesSpecBinding": [
            {
              "priceSourceProperty": "sol.price"
            }
          ]
        }
      }
    },
    "closingTimestamp": ****TODO****,
    "enactmentTimestamp": ****TODO***
  }
}
4 Likes

Oracle contract code

I think you might have swapped tau and riskAversionParameter in the risk model? The current values yield a max leverage of 145x. If you swap them round it will be max leverage of 50x.

I think you’re also missing internalCompositePriceConfiguration. It might be worth using one of the proposals from the templates on github as it seems the docs might not have been fully updated yet:

Thanks @Ed-Commodum

I’ve corrected the lev specs and added in the missing specs. Please see the updated JSON

{
  "rationale": {
    "title": "VMP-34 - Create SOL/USDT Perpetual",
    "description": "This proposal requests to recreate a SOL/USDT Perpetual market using Vega's updated features. Full forum discussion can be found [here](***add link***)"
  },
  "terms": {
    "newMarket": {
      "changes": {
        "decimalPlaces": "2",
        "positionDecimalPlaces": "0",
        "instrument": {
          "code": "SOL/USDT",
          "name": "Solana / Tether USD (Perpetual)",
          "perpetual": {
            "quoteName": "USDT",
            "marginFundingFactor": "0.9",
            "interestRate": "0.1095",
            "clampLowerBound": "-0.0005",
            "clampUpperBound": "0.0005",
            "fundingRateLowerBound": "-0.001",
            "fundingRateUpperBound": "0.001",
            "dataSourceSpecForSettlementSchedule": {
              "internal": {
                "timeTrigger": {
                  "conditions": [
                    {
                      "operator": "OPERATOR_GREATER_THAN",
                      "value": "0"
                    }
                  ],
                  "triggers": [
                    {
                      "every": "28800"
                    }
                  ]
                }
              }
            },
            "dataSourceSpecForSettlementData": {
              "external": {
                "ethOracle": {
                  "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                  "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                  "method": "getPrice",
                  "args": [
                    "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d"
                  ],
                  "trigger": {
                    "timeTrigger": {
                      "every": "60"
                    }
                  },
                  "requiredConfirmations": "3",
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": "18"
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN",
                          "value": "0"
                        }
                      ]
                    }
                  ],
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "sourceChainId": "100"
                }
              }
            },
            "dataSourceSpecBinding": {
              "settlementDataProperty": "sol.price",
              "settlementScheduleProperty": "vegaprotocol.builtin.timetrigger"
            },
            "fundingRateScalingFactor": "1",
            "internalCompositePriceConfiguration": {
              "decayWeight": "1.0",
              "decayPower": "1",
              "cashAmount": "50000000",
              "sourceWeights": [
                "0.0",
                "0.999",
                "0.001",
                "0.0"
              ],
              "sourceStalenessTolerance": [
                "1m",
                "1m",
                "10m",
                "10m"
              ],
              "compositePriceType": "COMPOSITE_PRICE_TYPE_WEIGHTED",
              "dataSourcesSpec": [
                {
                  "external": {
                    "ethOracle": {
                      "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                      "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                      "method": "getPrice",
                      "args": [
                        "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d"
                      ],
                      "trigger": {
                        "timeTrigger": {
                          "every": "60"
                        }
                      },
                      "requiredConfirmations": "3",
                      "filters": [
                        {
                          "key": {
                            "name": "sol.price",
                            "type": "TYPE_INTEGER",
                            "numberDecimalPlaces": "18"
                          },
                          "conditions": [
                            {
                              "operator": "OPERATOR_GREATER_THAN",
                              "value": "0"
                            }
                          ]
                        }
                      ],
                      "normalisers": [
                        {
                          "name": "sol.price",
                          "expression": "$[0]"
                        }
                      ],
                      "sourceChainId": "100"
                    }
                  }
                }
              ],
              "dataSourcesSpecBinding": [
                {
                  "priceSourceProperty": "sol.price"
                }
              ]
            }
          }
        },
        "metadata": [
          "base:SOL",
          "quote:USDT",
          "oracle:pyth",
          "oracleChain:gnosis",
          "class:fx/crypto",
          "perpetual",
          "sector:defi",
          "enactment:2024-02-04T15:00:00Z ****TODO*****"
        ],
        "priceMonitoringParameters": {
          "triggers": [
            {
              "horizon": "21600",
              "probability": "0.9999999",
              "auctionExtension": "86400"
            },
            {
              "horizon": "4320",
              "probability": "0.9999999",
              "auctionExtension": "3600"
            },
            {
              "horizon": "1440",
              "probability": "0.9999999",
              "auctionExtension": "1800"
            },
            {
              "horizon": "360",
              "probability": "0.9999999",
              "auctionExtension": "300"
            }
          ]
        },
        "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
          }
        },
        "linearSlippageFactor": "0.001",
        "quadraticSlippageFactor": "0",
        "liquiditySlaParameters": {
          "priceRange": "0.03",
          "commitmentMinTimeFraction": "0.75",
          "performanceHysteresisEpochs": "1",
          "slaCompetitionFactor": "0.8"
        },
        "liquidityFeeSettings": {
          "method": "METHOD_MARGINAL_COST"
        },
        "liquidationStrategy": {
          "disposalTimeStep": "1",
          "disposalFraction": "1",
          "fullDisposalSize": "1000000",
          "maxFractionConsumed": "0.1"
        },
        "markPriceConfiguration": {
          "decayWeight": "1.0",
          "decayPower": "1",
          "cashAmount": "0",
          "sourceWeights": [
            "0.0",
            "0.0",
            "1.0",
            "0.0"
          ],
          "sourceStalenessTolerance": [
            "1m",
            "1m",
            "1m",
            "1m"
          ],
          "compositePriceType": "COMPOSITE_PRICE_TYPE_WEIGHTED",
          "dataSourcesSpec": [
            {
              "external": {
                "ethOracle": {
                  "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                  "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                  "method": "getPrice",
                  "args": [
                    "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d"
                  ],
                  "trigger": {
                    "timeTrigger": {
                      "every": "60"
                    }
                  },
                  "requiredConfirmations": "3",
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": "18"
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN",
                          "value": "0"
                        }
                      ]
                    }
                  ],
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "sourceChainId": "100"
                }
              }
            }
          ],
          "dataSourcesSpecBinding": [
            {
              "priceSourceProperty": "sol.price"
            }
          ]
        }
      }
    },
    "closingTimestamp": ****TODO****,
    "enactmentTimestamp": ****TODO***
  }
}
1 Like

Thanks @Jubi . Since this matches (apart from the data sourcing stuff) the Inj market it looks good.

We’ll try to recreate this in one of our staging environments tomorrow morning. Looking good so far. Once this validation step is done we’ll report here.

2 Likes

This here is the proposal on Fairground which took your suggestion and perhaps modified data sourcing (copied below just in case):

{
  "id": "35351350473594e4ed5fb5a6e60ff1d7e09bcd4a6b97f12ebb43c40b36a6a88b",
  "reference": "",
  "partyId": "69464e35bcb8e8a2900ca0f87acaf252d50cf2ab2fc73694845a16b7c8a0dc6f",
  "state": "STATE_ENACTED",
  "timestamp": "1709202984668307000",
  "terms": {
    "closingTimestamp": "1709203264",
    "enactmentTimestamp": "1709203364",
    "validationTimestamp": "0",
    "newMarket": {
      "changes": {
        "instrument": {
          "name": "Solana / Tether USD (Perpetual)",
          "code": "SOL/USDT",
          "perpetual": {
            "settlementAsset": "8ba0b10971f0c4747746cd01ff05a53ae75ca91eba1d4d050b527910c983e27e",
            "quoteName": "USDT",
            "marginFundingFactor": "0.9",
            "interestRate": "0.1095",
            "clampLowerBound": "-0.0005",
            "clampUpperBound": "0.0005",
            "dataSourceSpecForSettlementSchedule": {
              "internal": {
                "timeTrigger": {
                  "conditions": [
                    {
                      "operator": "OPERATOR_GREATER_THAN",
                      "value": "0"
                    }
                  ],
                  "triggers": [
                    {
                      "initial": "1709203364",
                      "every": "28800"
                    }
                  ]
                }
              }
            },
            "dataSourceSpecForSettlementData": {
              "external": {
                "ethOracle": {
                  "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                  "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                  "method": "getPrice",
                  "args": [
                    "7w2Lb9os66QdoV1AldHaOSoNL47Qxse8D0z6yMKAtW0="
                  ],
                  "trigger": {
                    "timeTrigger": {
                      "initial": "1709203364",
                      "every": "60"
                    }
                  },
                  "requiredConfirmations": "3",
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": "18"
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN",
                          "value": "0"
                        }
                      ]
                    }
                  ],
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "sourceChainId": "100"
                }
              }
            },
            "dataSourceSpecBinding": {
              "settlementDataProperty": "sol.price",
              "settlementScheduleProperty": "vegaprotocol.builtin.timetrigger"
            },
            "fundingRateScalingFactor": "1",
            "fundingRateLowerBound": "-0.001",
            "fundingRateUpperBound": "0.001",
            "internalCompositePriceConfiguration": {
              "decayWeight": "1",
              "decayPower": "1",
              "cashAmount": "50000000",
              "sourceWeights": [
                "0",
                "0.999",
                "0.001",
                "0"
              ],
              "sourceStalenessTolerance": [
                "1m0s",
                "1m0s",
                "10m0s",
                "10m0s"
              ],
              "compositePriceType": "COMPOSITE_PRICE_TYPE_WEIGHTED",
              "dataSourcesSpec": [
                {
                  "external": {
                    "ethOracle": {
                      "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                      "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                      "method": "getPrice",
                      "args": [
                        "7w2Lb9os66QdoV1AldHaOSoNL47Qxse8D0z6yMKAtW0="
                      ],
                      "trigger": {
                        "timeTrigger": {
                          "every": "60"
                        }
                      },
                      "requiredConfirmations": "3",
                      "filters": [
                        {
                          "key": {
                            "name": "sol.price",
                            "type": "TYPE_INTEGER",
                            "numberDecimalPlaces": "18"
                          },
                          "conditions": [
                            {
                              "operator": "OPERATOR_GREATER_THAN",
                              "value": "0"
                            }
                          ]
                        }
                      ],
                      "normalisers": [
                        {
                          "name": "sol.price",
                          "expression": "$[0]"
                        }
                      ],
                      "sourceChainId": "100"
                    }
                  }
                }
              ],
              "dataSourcesSpecBinding": [
                {
                  "priceSourceProperty": "sol.price"
                }
              ]
            }
          }
        },
        "decimalPlaces": "2",
        "metadata": [
          "base:SOL",
          "quote:USDT",
          "oracle:pyth",
          "oracleChain:gnosis",
          "class:fx/crypto",
          "perpetual",
          "sector:defi",
          "enactment:2024-02-04T15:00:00Z ****TODO*****"
        ],
        "priceMonitoringParameters": {
          "triggers": [
            {
              "horizon": "21600",
              "probability": "0.9999999",
              "auctionExtension": "86400"
            },
            {
              "horizon": "4320",
              "probability": "0.9999999",
              "auctionExtension": "3600"
            },
            {
              "horizon": "1440",
              "probability": "0.9999999",
              "auctionExtension": "1800"
            },
            {
              "horizon": "360",
              "probability": "0.9999999",
              "auctionExtension": "300"
            }
          ]
        },
        "liquidityMonitoringParameters": {
          "targetStakeParameters": {
            "timeWindow": "3600",
            "scalingFactor": 0.05
          },
          "triggeringRatio": "",
          "auctionExtension": "0"
        },
        "logNormal": {
          "riskAversionParameter": 0.000001,
          "tau": 0.0000071,
          "params": {
            "mu": 0,
            "r": 0,
            "sigma": 1.5
          }
        },
        "positionDecimalPlaces": "0",
        "linearSlippageFactor": "0.001",
        "quadraticSlippageFactor": "",
        "liquiditySlaParameters": {
          "priceRange": "0.03",
          "commitmentMinTimeFraction": "0.75",
          "performanceHysteresisEpochs": "1",
          "slaCompetitionFactor": "0.8"
        },
        "liquidityFeeSettings": {
          "method": "METHOD_MARGINAL_COST"
        },
        "liquidationStrategy": {
          "disposalTimeStep": "1",
          "disposalFraction": "1",
          "fullDisposalSize": "1000000",
          "maxFractionConsumed": "0.1"
        },
        "markPriceConfiguration": {
          "decayWeight": "1",
          "decayPower": "1",
          "cashAmount": "0",
          "sourceWeights": [
            "0",
            "0",
            "1",
            "0"
          ],
          "sourceStalenessTolerance": [
            "1m0s",
            "1m0s",
            "1m0s",
            "1m0s"
          ],
          "compositePriceType": "COMPOSITE_PRICE_TYPE_WEIGHTED",
          "dataSourcesSpec": [
            {
              "external": {
                "ethOracle": {
                  "address": "0x719abd606155442c21b7d561426d42bd0e40a776",
                  "abi": "[{\"inputs\": [{\"internalType\": \"bytes32\", \"name\": \"id\", \"type\": \"bytes32\"}], \"name\": \"getPrice\", \"outputs\": [{\"internalType\": \"int256\", \"name\": \"\", \"type\": \"int256\" }], \"stateMutability\": \"view\", \"type\": \"function\"}]",
                  "method": "getPrice",
                  "args": [
                    "7w2Lb9os66QdoV1AldHaOSoNL47Qxse8D0z6yMKAtW0="
                  ],
                  "trigger": {
                    "timeTrigger": {
                      "every": "60"
                    }
                  },
                  "requiredConfirmations": "3",
                  "filters": [
                    {
                      "key": {
                        "name": "sol.price",
                        "type": "TYPE_INTEGER",
                        "numberDecimalPlaces": "18"
                      },
                      "conditions": [
                        {
                          "operator": "OPERATOR_GREATER_THAN",
                          "value": "0"
                        }
                      ]
                    }
                  ],
                  "normalisers": [
                    {
                      "name": "sol.price",
                      "expression": "$[0]"
                    }
                  ],
                  "sourceChainId": "100"
                }
              }
            }
          ],
          "dataSourcesSpecBinding": [
            {
              "priceSourceProperty": "sol.price"
            }
          ]
        }
      }
    }
  },
  "rationale": {
    "description": "This proposal requests to recreate a SOL/USDT Perpetual market using Vega's updated features. Full forum discussion can be found [here](***add link***)",
    "title": "VMP-34 - Create SOL/USDT Perpetual"
  },
  "requiredParticipation": "0.07",
  "requiredMajority": "0.66"
}

And here it is running on Fairground with the default bot set.

Maybe we can set this to 1 instead of 0 to allow positions in value of 10^{-1} x price = 14 USDT or so at current prices.

1 Like

Sounds good to me, will edit the proposal.

Fairground looks to be running smoothly, I’ll give it one more day and I’ll post it onchain

2 Likes

Fairground looks to be running smoothly,

I agree. Looking good on Fairground, both funding and mark price.

I’ll give it one more day and I’ll post it onchain

Sounds good. There probably isn’t much point having the market enact before Monday 4th since there’s no guarantee anyone will want to start providing prices / liquidity on the weekend. So another day of observation and then the vote sounds perfect. :rocket: .

1 Like