commands.proto
path vega/commands/v1/commands.proto
package vega.commands.v1
Messages
ApplyReferralCode
Command that allows the submitter to join a referral set and earn a collective reduction in fees based on the activity of all members of that set.
A party that joins a referral set is called a referee. A referee can only be a member of one referral set and cannot themselves be or become a referrer.
To switch to another referral set, a subsequent command can be sent and the switch will take effect at the end of the epoch.
Name | Type | Description |
---|
id | string | Referral code, normally the referral set ID, for the party to join. |
BatchMarketInstructions
A command that allows the submission of a batch market instruction which wraps up multiple market instructions into a single transaction.
These instructions are then processed sequentially in the following order:
- OrderCancellation
- OrderAmendment
- OrderSubmission
- StopOrderSubmission
where the maximum allow of instructions in a batch is controlled by the network parameter "spam.protection.max.batchSize".
CancelTransfer
Command that can be used by the party that initiated a transfer to instruct the network to stop an active recurring transaction.
Name | Type | Description |
---|
transfer_id | string | Transfer ID of the transfer to cancel. |
CreateReferralSet
Command that a party can use to instruct the network to create a new referral set on the network.
The submitter of this command will become the referrer of the new set and cannot be the referrer or a referee of another set.
A referrer can use the referral set ID as a referral code to attract others to the Vega network and have fees reduced for the referral set.
Name | Type | Description |
---|
is_team | bool | Whether or not the referral set should be considered a team that can participate in team games on the network. |
team | optional CreateReferralSet.Team | Team details, if the referral set is to be considered a team. |
CreateReferralSet.Team
Name | Type | Description |
---|
name | string | Name of the team. |
team_url | optional string | External link to the team's homepage. |
avatar_url | optional string | External link to an avatar for the team. |
closed | bool | Whether or not the team is closed to new party members. |
DelegateSubmission
Command to allow a token holder to delegate their tokens to a validator to help secure the network.
A token holder delegating to a validator will earn rewards based on the amount they have delegated, and the performance of the chosen validator.
Name | Type | Description |
---|
node_id | string | Node ID to delegate stake to. |
amount | string | Amount of stake to delegate, as an unsigned integer scaled to the governance asset's decimal places. |
IcebergOpts
Iceberg order options
Name | Type | Description |
---|
peak_size | uint64 | Size of the order that is made visible and can be traded with during the execution of a single order. |
minimum_visible_size | uint64 | Minimum allowed remaining size of the order before it is replenished back to its peak size. |
IssueSignatures
Command that can be used by a validator to instruct the network to generate signatures to add or remove validators from the multisig-control contract.
Signatures can only be generated for validator nodes that have been promoted or demoted from the consensus validator set, and any attempt to generate signatures for another node will be rejected.
The generated signatures can only be submitted to the contract by the Ethereum addresses included in the command.
Name | Type | Description |
---|
submitter | string | Ethereum address which will submit the signatures to the smart contract. |
kind | NodeSignatureKind | What kind of signatures to generate, namely for whether a signer is being added or removed. |
validator_node_id | string | Node ID of the validator node that will be signed in or out of the smart contract. |
LiquidityProvisionAmendment
Command that allows a liquidity provider to update the details of their existing liquidity commitment.
Any field that is left unset or as a default value indicates that this field on the original submission will be left unchanged.
Name | Type | Description |
---|
market_id | string | Market that the submitter wants to amend the liquidity commitment for. |
commitment_amount | string | New commitment amount. |
fee | string | New nominated liquidity fee factor. |
reference | string | New arbitrary reference to be added to every order created out of this liquidity provision submission. |
LiquidityProvisionCancellation
Command that allows a liquidity provider to inform the network that they will stop providing liquidity for a market.
Name | Type | Description |
---|
market_id | string | Market that the submitter will stop providing liquidity for. |
LiquidityProvisionSubmission
A command that indicates to the network the party's intention to supply liquidity to the given market and become a liquidity provider.
An active liquidity provider for a market will earn fees based on the trades that occur in the market.
Name | Type | Description |
---|
market_id | string | Market that the submitter wishes to provide liquidity for. |
commitment_amount | string | Amount that the submitter will commit as liquidity to the market, specified as a unitless number in the settlement asset of the market.
This field is an unsigned integer scaled using the asset's decimal places. |
fee | string | Nominated liquidity fee factor, which is an input to the calculation of taker fees on the market, as per setting fees and rewarding liquidity providers. |
reference | string | Arbitrary reference to be added to every order created out of this liquidity provision submission. |
OneOffTransfer
Details for a one-off transfer.
Name | Type | Description |
---|
deliver_on | int64 | Timestamp, in Unix nanoseconds, for when the transfer should be executed, i.e., assets transferred into the receiver's account. |
OrderAmendment
A command that allows a party to update the details of an existing order.
Any field that is left unset or as a default value indicates that this field on the original order will be left unchanged.
It is not possible to change an order's type through this command.
Name | Type | Description |
---|
order_id | string | ID of the order to amend. |
market_id | string | Market ID that the order was originally submitted to. |
price | optional string | New price for the order. This field is an unsigned integer scaled to the market's decimal places. |
size_delta | int64 | Amend the size for the order by the delta specified:
- To reduce the size from the current value set a negative integer value
- To increase the size from the current value, set a positive integer value
- To leave the size unchanged set a value of zero
This field needs to be scaled using the market's position decimal places. |
expires_at | optional int64 | Timestamp, in Unix nanoseconds, for the new expiry time for the order. |
time_in_force | vega.Order.TimeInForce | New time in force for the order. |
pegged_offset | string | New pegged offset for the order.
This field is an unsigned integer scaled to the market's decimal places. |
pegged_reference | vega.PeggedReference | New pegged reference for the order. |
OrderCancellation
A command that instructs the network to cancel orders, active or partially filled, that were previously submitted by the sender of this transaction.
It is not possible to cancel another party's order with this command.
Name | Type | Description |
---|
order_id | string | Restrict cancellations to an order with the given ID. If set, then a market ID must also be provided. |
market_id | string | Restrict cancellations to those submitted to the given market. If not set, all stop orders across all markets will be cancelled. |
OrderSubmission
A command that submits an order to the Vega network for a given market.
Name | Type | Description |
---|
market_id | string | Market ID to submit the order to. |
price | string | Price for the order, the price is an integer, for example `123456` is a correctly
formatted price of `1.23456` assuming market configured to 5 decimal places,
required field for limit orders, however it is not required for market orders.
This field is an unsigned integer scaled to the market's decimal places. |
size | uint64 | Size for the order, for example, in a futures market the size equals the number of units. |
side | vega.Side | Which side of the order book the order is for, e.g. buy or sell. |
time_in_force | vega.Order.TimeInForce | Time in force indicates how long an order will remain active before it is executed or expires.. |
expires_at | int64 | Timestamp, in Unix nanoseconds, for when the order will expire. Can only be set when the order's time-in-force is GTT. |
type | vega.Order.Type | Type of the order. |
reference | string | Arbitrary optional reference for the order, to be used as a human-readable non-unique identifier for the order. |
pegged_order | vega.PeggedOrder | Pegged order details. If set, the order's price will be offset from a particular reference price of the order book at all times. |
post_only | bool | If set, the order will only be executed if it would not trade on entry to the order book. Only valid for limit orders. |
reduce_only | bool | If set, the order will only be executed if the outcome of the trade moves the trader's position closer to 0.
Only valid for non-persistent orders. |
iceberg_opts | optional IcebergOpts | Iceberg order details. If set, the order will exist on the order book in chunks. |
ProposalSubmission
Command that allows a token holder to submit a governance proposal that can be voted on by any other token holders, and eventually enacted on the Vega network.
For example this command can be used to propose a new market.
Name | Type | Description |
---|
reference | string | Arbitrary human-readable reference identifying the proposal. |
terms | vega.ProposalTerms | Proposal terms containing the type and details of the proposal, as well as time spans for voting and enactment. |
rationale | vega.ProposalRationale | Rationale behind a proposal. |
RecurringTransfer
Details for a recurring transfer
Name | Type | Description |
---|
start_epoch | uint64 | First epoch from which this transfer shall be executed. |
end_epoch | optional uint64 | Last epoch at which this transfer shall be executed. |
factor | string | Factor that the initial transfer amount is multiplied by for each epoch that it is executed.
For example if the initial transfer amount is 1000 and the factor is 0.5, then the amounts transferred per epoch will be 1000, 500, 250, 125, etc. |
dispatch_strategy | vega.DispatchStrategy | Optional parameter defining how a transfer is dispatched. |
StopOrderSetup
Price and expiry configuration for a stop order.
Name | Type | Description |
---|
order_submission | OrderSubmission | Order to be submitted once the trigger is breached. |
expires_at | optional int64 | Timestamp, in Unix nanoseconds, for when the stop order should expire. If not set the stop order will not expire. |
expiry_strategy | optional vega.StopOrder.ExpiryStrategy | Strategy to adopt if the expiry time is reached. |
price | string | Order will be submitted if the last traded price on the market breaches the given price. |
trailing_percent_offset | string | Order will be submitted if the last traded price has moved the given percent from the highest/lowest mark price since the stop order was submitted. |
StopOrdersCancellation
A command that instructs the network to cancel untriggered stop orders that were submitted by the sender of this transaction.
If any cancelled stop order is part of an OCO, both stop orders will be cancelled.
It is not possible to cancel another party's stop orders with this command.
Name | Type | Description |
---|
market_id | optional string | Restrict cancellations to those submitted to the given market. If not set, all stop orders across all markets will be cancelled. |
stop_order_id | optional string | Restrict cancellations to a stop order with the given ID. If set, then a market ID must also be provided. |
A command that allows a party to submit a stop order for a given market.
A stop order is a normal order that remains off the order book and is only submitted if a given trigger is breached from a particular direction.
If both rises-above and falls-below are configured, then if one is triggered the other will be cancelled (OCO).
Name | Type | Description |
---|
rises_above | optional StopOrderSetup | Stop order that will be triggered if the price rises above a given trigger price. |
falls_below | optional StopOrderSetup | Stop order that will be triggered if the price falls below a given trigger price. |
Transfer
Command that allows a party to move assets from one account to another.
A transfer can be set up as a single one-off transfer, or a recurring transfer that occurs once at the start of each epoch.
Each transfer incurs a fee as specified by the network parameter `transfer.fee.factor`
Name | Type | Description |
---|
from_account_type | vega.AccountType | Account type from which the funds of the party should be taken. |
to | string | Public key of the destination account. |
to_account_type | vega.AccountType | Type of the destination account. |
asset | string | Asset ID of the asset to be transferred. |
amount | string | Amount to be taken from the source account, as an unsigned integer scaled to the asset's decimal places. |
reference | string | Reference to be attached to the transfer. |
one_off | OneOffTransfer | Details of a one-off transfer that is executed once at a specified time. |
recurring | RecurringTransfer | Details of a transfer that is executed once every epoch until stopped. |
UndelegateSubmission
Command to allow a token holder to instruct the network to remove their delegated stake from a given validator node.
Name | Type | Description |
---|
node_id | string | Node ID to undelegate stake from. |
amount | string | Amount to undelegate, as an unsigned integer scaled to the governance asset's decimal places.
If not set, then all delegations to the given validator node will be removed. |
method | UndelegateSubmission.Method | Method of delegation. |
UpdateReferralSet
A command that allows the referrer of a referral set to update team details for a referral set.
Any field that is left unset or has a default value indicates that this field on the original referral set will be left unchanged.
Name | Type | Description |
---|
id | string | ID of the referral set to update. |
is_team | bool | Whether or not the referral set should be considered a team that can participate in team games on the network. |
team | optional UpdateReferralSet.Team | Team details, if the referral set is to be considered a team. |
UpdateReferralSet.Team
Name | Type | Description |
---|
name | optional string | New name of the team. |
team_url | optional string | New link to the team's homepage. |
avatar_url | optional string | New link to an avatar for the team. |
closed | optional bool | Whether or not the team is closed to new party members. |
VoteSubmission
Command that allows a token holder to vote for or against an active governance proposal.
Name | Type | Description |
---|
proposal_id | string | Submit vote for the specified proposal ID. |
value | vega.Vote.Value | Actual value of the vote. |
WithdrawSubmission
Command to instruct the network to process an asset withdrawal from the Vega network.
The process is specific to the destination foreign chain, for example, a withdrawal to Ethereum will generate signatures
that allow funds to be taken across the bridge.
Name | Type | Description |
---|
amount | string | Amount to be withdrawn, as an unsigned integer scaled to the asset's decimal places. |
asset | string | Asset to be withdrawn. |
ext | vega.WithdrawExt | Details specific to the foreign chain, such as the receiver address. |
Enums
UndelegateSubmission.Method
Name | Number | Description |
---|
METHOD_UNSPECIFIED | 0 | |
METHOD_NOW | 1 | Undelegate straight away, losing all rewards for the current epoch. |
METHOD_AT_END_OF_EPOCH | 2 | Undelegate at the end of an epoch, retaining all rewards for the current epoch. |