Propose an update to an asset
Some of the properties of an asset can be changed through governance. Those fields are: withdrawal and deposit limits, and the asset's quantum.
The underlying contract, asset name and symbol cannot be changed.
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: π1 token or π1 token
- Familiarity with governance on Vega, particularly assets at a protocol level
- After an asset update vote passes, the change has to be submitted to the asset bridge on Ethereum.
Overviewβ
Templates and submittingβ
In the tabs below you'll see an annotated example, which describes what each field is for, a JSON example that can be used to submit on the governance dApp β, and command line examples for different operating systems. You'll need to replace the example data with the relevant details before submitting.
- Annotated example
- Governance dApp (JSON)
- Command line (Linux / OSX)
- Command line (Windows)
{
rationale: {
title: "Update asset",
description: "Proposal to change withdrawal threshold for asset"
},
terms: {
updateAsset: {
// The ID of the asset to be updated (string)
assetId: "ebcd94151ae1f0d39a4bde3b21a9c7ae81a80ea4352fb075a92e07608d9c953d",
changes: {
// The minimum economically meaningful amount in the asset (string)
quantum: "1",
erc20: {
// The maximum you can withdraw instantly. All withdrawals over the threshold will be delayed by the withdrawal delay.
// Thereβs no limit on the size of a withdrawal (string)
withdrawThreshold: "10",
// The lifetime limits deposit per address.
// This will be interpreted against the asset decimals. (string)
lifetimeLimit: "10",
}
}
},
// Timestamp (Unix time in seconds) when voting closes for this proposal,
// constrained by `minClose` and `maxClose` network parameters (int64 as string)
closingTimestamp: 1680534013000,
// Timestamp (Unix time in seconds) when proposal gets enacted (if passed),
// constrained by `minEnact` and `maxEnact` network parameters (int64 as string)
enactmentTimestamp: 1680620413000,
}
}
- Copy the JSON example below into a text editor.
- Replace the placeholder values with those you want for the market.
- Submit your proposal from the New Proposal area of the governance dApp.
- Check you can see your proposal on Open Proposals area of the governance dApp.
{
"rationale": {
"title": "Update asset",
"description": "Proposal to change withdrawal threshold for asset"
},
"terms": {
"updateAsset": {
"assetId": "ebcd94151ae1f0d39a4bde3b21a9c7ae81a80ea4352fb075a92e07608d9c953d",
"changes": {
"quantum": "1",
"erc20": {
"withdrawThreshold": "10",
"lifetimeLimit": "10"
}
}
},
"closingTimestamp": 1680534013000,
"enactmentTimestamp": 1680620413000
}
}
- Copy the command line example below into a text editor.
- Replace the placeholder values with those you want in the proposal.
- Use the command line to submit your proposal.
- Check you can see your proposal on Open Proposals area of the governance dApp.
./vegawallet transaction send --wallet your_walletname --pubkey your_public_key --network fairground '{
"proposalSubmission": {
"rationale": {
"title": "Update asset",
"description": "Proposal to change withdrawal threshold for asset"
},
"terms": {
"updateAsset": {
"assetId": "ebcd94151ae1f0d39a4bde3b21a9c7ae81a80ea4352fb075a92e07608d9c953d",
"changes": {
"quantum": "1",
"erc20": {
"withdrawThreshold": "10",
"lifetimeLimit": "10"
}
}
},
"closingTimestamp": 1680534013000,
"enactmentTimestamp": 1680620413000
}
}
}'
- Copy the command line example below into a text editor.
- Replace the placeholder values with those you want in the proposal.
- Use the command line to submit your proposal.
- Check you can see your proposal on Open Proposals area of the governance dApp.
vegawallet.exe transaction send --wallet your_walletname --pubkey your_public_key --network fairground ^
"{^
\"proposalSubmission\": {^
\"rationale\": {^
\"title\": \"Update asset\",^
\"description\": \"Proposal to change withdrawal threshold for asset\"^
},^
\"terms\": {^
\"updateAsset\": {^
\"assetId\": \"ebcd94151ae1f0d39a4bde3b21a9c7ae81a80ea4352fb075a92e07608d9c953d\",^
\"changes\": {^
\"quantum\": \"1\",^
\"erc20\": {^
\"withdrawThreshold\": \"10\",^
\"lifetimeLimit\": \"10\"^
}^
}^
},^
\"closingTimestamp\": 1680534013000,^
\"enactmentTimestamp\": 1680620413000^
}^
}^
}"
Voting and enactmentβ
All proposals are voted on by the community. To vote, community members need, at a minimum, the larger of πmore than 0 tokens or π1 token associated with their Vega key.
Your proposal will need participation of π30% and a majority of π66%, so having community support is essential. If successful, the proposal will be enacted at the time you specify in the enactmentTimestamp
field.
Building support is down to you. Share your proposal in the Fairground governance forum β on Vega community. You may also wish to share on Discord β.
Proposers who invite feedback, engage with comments, and make revisions to meet the needs of the community are more likely to be successful.