Skip to main content
Version: release (v0.77)

Propose changes to spot market

Propose changes to an existing spot market.

Requirements

You will need:

  • A connected Vega wallet, with your wallet name and public key to hand
  • A minimum of whichever is larger, associated with that public key: based on the network parameter values for governance.proposal.updateMarket.minProposerBalance (governance.proposal.updateMarket.minProposerBalance) or spam.protection.proposal.min.tokens (spam.protection.proposal.min.tokens)
  • A minimum equity-like share in the market of governance.proposal.updateMarket.minProposerEquityLikeShare
  • Familiarity with market governance on Vega

Anatomy of an update spot market proposal

The update spot market proposal requires the same fields as a new spot market proposal, except the locked fields below. See the descriptions in the new spot market proposal tutorial for more on each field.

In addition to the parameters you want to change, you must include all existing editable parameters from the original new market proposal, even if they are not being changed.

Locked fields

The following fields cannot be changed. They are not included in the proposal templates.

  • sizeDecimalPlaces
  • priceDecimalPlaces
  • baseAsset
  • quoteAsset

Thresholds

Note that some network parameters may differ, such as the limits on how long the voting period can last, as follows.

FieldDescription
closingTimestampTimestamp (Unix time in seconds) when voting closes for this proposal. The chosen time must be between governance.proposal.updateMarket.minClose and governance.proposal.updateMarket.maxClose after the proposal submission time. (int64 as string)
enactmentTimestamp Timestamp (Unix time in seconds) when proposal gets enacted (if passed). The chosen time must be between governance.proposal.updateMarket.minEnact and governance.proposal.updateMarket.maxEnact after closingTimestamp. (int64 as string)

Submitting proposals in a batch

If you want to submit this proposal as part of a larger batch of proposals, follow this sample structure:

{
"batchProposalSubmission": {
"rationale": {
"title": "High level title",
"description": "Description of all parts of this batch of proposals"
},
"terms": {
"closingTimestamp": "123",
"changes": [
{
"enactmentTimestamp": 123,
"cancelTransfer": {
"changes": {
"transferId": "345"
}
}
},
{
"enactmentTimestamp": 123,
"cancelTransfer": {
"changes": {
"transferId": "789"
}
}
}
]
}
}
}

Templates and submitting

In the tabs below you'll see:

  • Annotated example describing what each field is for
  • JSON example
  • Command line examples for different operating systems

Replace the example data with the relevant details before submitting.

  1. Copy the JSON example below into a text editor.
  2. Replace the placeholder values with those you want for the market.
  3. Tip: Use markdown formatting in your proposal's rationale to make for easier community review.
{
"proposalSubmission": {
"rationale": {
"description": "Propose a change to the spot market for Bitcoin and USDT",
"title": "Change Bitcoin/USDT spot market"
},
"terms": {
"closingTimestamp": "1683626590",
"enactmentTimestamp": "1683626600",
"updateSpotMarket": {
"marketId": "123",
"changes": {
"instrument": {
"code": "BTC/USDT",
"name": "BTC/USDT"
},
"tickSize": "10",
"metadata": [
"base:BTC",
"quote:USDT",
"class:fx/crypto",
"spot",
"sector:defi"
],
"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"
}
]
},
"targetStakeParameters": {
"timeWindow": "3600",
"scalingFactor": 0.05
},
"slaParams": {
"priceRange": "0.03",
"commitmentMinTimeFraction": "0.75",
"performanceHysteresisEpochs": "1",
"slaCompetitionFactor": "0.8"
},
"liquidityFeeSettings": {
"method": "METHOD_MARGINAL_COST"
},
"logNormal": {
"riskAversionParameter": 1e-06,
"tau": 3.995e-06,
"params": {
"sigma": 1.0
}
}
}
}
}
}
}

Voting

All proposals are voted on by the community.

To vote, community members need, at a minimum, the larger of the values of the following network parameters governance.proposal.updateMarket.minVoterBalance or spam.protection.voting.min.tokens associated to their Vega key.

Your proposal will need participation of the value of the network parameter governance.proposal.updateMarket.requiredParticipation and a majority of governance.proposal.updateMarket.requiredMajority.

Enactment

If successful, the proposal will be enacted at the time you specify in the enactmentTimestamp field.