Latest software releases

Below is a list of changelogs with the most recent releases first. Breaking changes are listed with (breaking change), or in a ‘Breaking changes’ section.

Keep track of when testnet chain resets and node releases are happening on the Vega Discord server.

Core software releases

Note: Before March 2020, Vega didn’t track release notes, and only began to collate them for the first version of testnet.

0.53.0 (14 July 2022)

Checkpoint commands: From version 0.53.0, checkpoints are always loaded via the genesis. To facilitate this the --genesis-file option has been added to the load_checkpoint command.

With the introduction of this, the restore checkpoint command has now been deprecated and removed.

Vega wallet in core repo: The core and Vega Wallet codebases have been unified. This reduces the risk that core and Vega Wallet software changes get out of sync. Users of the CLI wallet app can easily confirm if the version of their wallet is compatible with the core Vega software version as they will be built and released together, and thus have the same version number.

In the short term, the CLI wallet app will still be available to download from the Vega Wallet repo, but it will not be supported for future releases.

Decentralised validator selection bug: During the testing of the decentralised validator selection feature, a bug was found whereby if the network parameter that controls the number of ersatz validators is reduced in the same epoch that an ersatz validator is promoted, the network could be left with a node set where the actual number of ersatz validators was greater than the total allowed number. A fix has been implemented to handle Tendermint demotion and ersatz slot reduction at the same time and keep true to the configured network parameter values.

PostgreSQL database: As of version 0.53, data node uses PostgreSQL as its storage back end instead of the previous mix of in-memory and BadgerDB file stores. We also make use of a Postgres extension called TimescaleDB, which adds a number of time series specific features.

Postgres is not an embedded database, but a separate server application that needs to be running before a data node starts. A side effect of this transition is a little bit of setup is required by the data node operator. By default, data node will attempt to connect to a database called vega listening on localhost:5432, using the username and password vega. This is all configurable in data node’s config.toml file.

We are developing using PostgreSQL 14.2 and Timescale 2.6 and strongly recommend that you also use the same versions. For more information see the Data-node readme

Critical bugs resolved: Collateral checkpoint locked global reward balance: With the deployment of version 0.50.3 a new format for the account owner of the global reward account was introduced. When the mainnet was upgraded, the above was interpreted as a general party account rather than the newly formatted global reward account. As such, a balance of 21500 VEGA became locked in an account that is no longer accessible. To resolve this issue and recover the trapped VEGA, when the checkpoint is read, and on discovery of an old account format, the balance is transferred to the relevant new reward account. Full details can be seen in issue 5546

Unable to query the VEGA asset due to large quantum: Part of testing the network version compatibility is to deploy the latest version of the software using a mainnet checkpoint file. During this test it was found that the VEGA asset could not be found in the data-node via the assets API. To resolve this issue support was introduced in the data-node for large integers for the asset quantum. Full details can be seen in issue 782

Incorrect prices returned from depth endpoint in data node API: The depth value in the data node API appeared to occasionally become desynchronised from the ‘true’ prices. This was observed on testnet when a market’s prices of the ‘bids’ values were much higher than those of ‘ask’ and did not tally with values from best bid/ask.

In V1 of the data node (which will be replaced with V2) there is a check which relies on the Vega time (block time) being correctly set. However, as the V1 broker is multi-threaded per event type, there is no guarantee that the time event that sets the Vega time will arrive at the market depth subscriber with the orders to which the time corresponds. This change sends the Vega time of the block along with the order event in the V1 broker to ensure that a correct sequence number is generated for each order event.

Note: this issue affects the V1 APIs which will be deprecated and replaced by V2 which is single threaded and thus could not have this bug.

Event subscriptions for orders was broken: When placing an order the orders subscription correctly emits an update for the newly created order. However, the bus event subscription did not emit the expected event. The fix for 719 (market depth in data-node V1 incorrect due to race condition) changed the type of the order event such that it no longer implemented these interfaces (no code broke as the check is dynamic), and this prevented the event bus from sending events using the party and market filters. Full details can be seen in issue 730

For full details on 0.53 see the release pages:

0.52.0 (15 June 2022)

Spam protection updates: Until version 0.52 any changes to the proof of work network parameters would take effect immediately, which resulted in changes being enforced on transactions that were generated on blocks preceding the current one. This is not desired because someone may have prepared multiple transactions for a block before the changes were applied, which would then be rejected.

To ensure that this does not affect existing transactions the protocol verifies proof of work with the parameters as they were configured at the time of the block of the transaction.


  • Fix notary snapshot determinism when no signatures are generated yet
  • Regenerate smart contracts code
  • Proof of work improvement to support history of changes to network parameters


  • Evaluate all trades resulting from an aggressive orders in one call to price monitoring engine
  • Merge both checkpoints and genesis asset on start up
  • Cover liquidity monitoring acceptance criteria relating to aggressive order removing best bid or ask from the book
  • Fix sorting of validators for demotion check
  • Fix theoretical open interest calculation
  • Pass a clone of the liquidity commitment offset to pegged orders
  • Bring indicative trades in line with actual auction uncrossing trades in presence of wash trades

0.51.2 (10 June 2022)

Version 0.51 of the Vega software implements some key changes to the features of governance and rewards as well as smart contracts. In addition, work continues on the data-node to transition to the time-series PostGres data storage and the migrated APIs which will help the data-node scale as usage increases on the network.

Breaking change - asset governance: In release 0.51.2, a breaking change has been introduced that may affect governance proposals that refer to assets. The function used to request the asset bundle before proposing an asset has been renamed to be clearer, as in the future there will be an option for removing assets.

The following method names have been updated:

  • GetERC20AssetBundleRequest is now GetERC20ListAssetBundleRequest
  • GetERC20AssetBundleResponse is now GetERC20ListAssetBundleResponse

Breaking change - governance: There has been a breaking change made to the governance process. A rationale is now required for all governance proposals. Every proposal transaction must contain a link to a text file in markdown format which summarises the proposed change and links back to the complete proposed change.

Smart contract allow-listing: The MultisigControl smart contracts have been updated to permit allow listing oneself to deposit above the specified deposit limits. This change both ensures that there are steps to protect users of the network during the early period of trading being enabled and also gives control to the user to allow list themselves if they understand the risks.

The contract changes have recently been through an audit of which the final version will be published alongside the deployment of the contracts into testnet. As confidence in the network is established, it is expected that governance proposals will be made to increase the deposit limits.

Rewards: To enable giving rewards in arbitrary tokens that may not necessarily be the settlement asset for a given market or the Vega governance token, changes have been implemented to enhance recurring transfers to reward accounts.

When transferring to a reward account, it is possible to define the reward metric, the reward metric asset, and a subset of markets. Should a market not be defined when initiating the transfer the protocol proceeds with all the markets that settle in the reward metric asset.

Snapshots: A snapshot is generated every N blocks, and that information is stored in a GoLevelDB file on the local file system. By default a node will always start up in normal mode in which it connects to Tendermint and replays any historic blocks before catching up and running at the same pace as the existing nodes on the network.

The snapshot system will keep by default 10 versions of the snapshots. When it has created 10 it will remove the oldest each time it creates a new snapshot. Extensive testing of snapshots has been conducted and is ready for use by the validators for stopping and starting nodes.

There has also been an array of fixes implemented for snapshots that ensure that a node restored from a snapshot always maintains consensus.


  • Add burn_nonce bridge tool
  • Allow spam free / proof of work free running of null blockchain
  • Validation free transactions (including signature verification) for null blockchain
  • Ensure threshold is not breached in ERC20 withdrawal
  • Update equity shares following updated spec
  • Require a rationale on proposals
  • Automatically dispatch reward pool into markets in recurring transfers
  • Run snapshot generation for all providers in parallel
  • Snapshot optimisation part 2 - get rid of getHash
  • Send event when oracle data doesn’t match
  • Move limits (enabled market / assets from) to network parameters


  • Liquidity and order book point to same underlying order after restore
  • Better serialisation for party orders in liquidity snapshot
  • Serialise state variable internal state
  • State variable snapshot now works as intended
  • Repopulate cached order book after snapshot restore
  • Market liquidity monitor parameters trump network parameters on market creation
  • Assure min/max price always accurate
  • Use uncrossing price for target stake calculation during auction
  • Improve interaction between liquidity and price monitoring auctions
  • Set extension trigger during opening auction with insufficient liquidity
  • Stop non-persistent orders from triggering auctions
  • Use UnixNano() to snapshot price monitor times
  • Trigger state variable calculation first time indicative uncrossing price is available
  • Checking a transaction will return proper success code
  • Update a market should default auction extension to 1
  • Price monitoring past prices are now included in the snapshot
  • Parse time stamps oracle in market proposal validation
  • Internal time oracle broadcasts time stamp without nanoseconds
  • Assure min/max price always accurate
  • Ensure liquidity fees are updated when updating the market
  • Change Vega public key hashing in topology to fix key rotation submission
  • Future update was using oracle spec for settlement price as trading termination spec
  • Fix bug causing trade events at auction end showing the wrong price
  • Fix issue with state variable transactions assumed gone missing
  • Fix panic when node is interrupted before snapshot engine gets cleared and initialised

0.50.2 (26 April 2022)

The primary focus of this and the next upcoming releases has been to complete the final remaining features, progress data-node improvements for scaling and to add test coverage and fix bugs.

Proposals to change market parameters: After a market has been proposed and enacted, changes to the market parameters can be proposed in a different governance action. Token holders will be able to submit proposals to change market parameters.

To change any market parameter, the proposer will submit the same data as if they were to create a market, except for the liquidity commitment, however this submission would contain the desired updates to the fields / structures that they wish to be changed. Some of the market parameters will not be able to be changed: market decimal places, position decimal places, settlement asset and the market name.

Read more:

Spam Protection: This release introduces a rate-limiting scheme to prevent clients from attacking the network by spamming the network with requests. Unlike many other systems Vega does not charge a transaction fee; fees are only charged on trades. To prevent spamming, there is a client-side Proof of Work mechanism required along with all transaction submissions. The difficulty of the Proof of Work puzzle can be adjusted by governance, and is low for most use-case scenarios. It is automatically increased if a single client submits an abnormal number of transactions.

This rate-limiting is based upon a client-side Proof of Work which is quite different from the Proof of Work term predominantly used for proof-of-work blockchains and associated with high energy consumption.

Read more: Spam protection Proof of Work

Checkpoint Improvements: Checkpoints have been simplified. Before, validators would have to have a synchronisation period between nodes in order to reconcile the state from Ethereum when restarting the network from a checkpoint. This was due to the fact that the validators and staking balances were not stored in the checkpoint files.

This data is now stored in the checkpoints, which means that it is now possible to restart from checkpoints asynchronously, which removes the synchronisation period (when feasible). This will become especially important as validator numbers increase and the network sees validators joining and leaving based on stake.

Add Ethereum key rotation support: Vega now supports validators rotating their Ethereum keys. Ethereum keys are required so that validators can allow deposits and withdrawals via the Ethereum bridge. The controller of the bridge is a multisig bundle, and periodically validators will want to change their keys but still be part of the controlling group. This feature allows them to do this with a new transaction type.

Read more: Key management

Liquidity Provision Improvements: Over the last month, the project team has been running a number of community incentives, including around liquidity provision. A number of bugs and enhancements have been introduced as a result of the incentive. These include:

  • In some cases, amending liquidity orders triggered a liquidity auction. This was due to the fact that an order amend was effectively equivalent to a cancel and submit. During investigations it was found that if there was only 1 order on either side of the book, amending it would trigger an auction because, temporarily, there were no orders left
  • A fix has been implemented to ensure that the margin is correctly released when an LP order is cancelled
  • With the introduction of the market decimal places feature (see below), an issue was found related to decimal places and price bounds. This fix ensures that LP orders are adjusted to the min/max price according to the market precision

Tendermint: The current version of Tendermint being used by Vega has a bug where a transaction would pass checkTx but was never added to the memory pool. Tendermint has fixed the bug and the protocol is now able to use sendTx sync successfully. Therefore, if any transactions are rejected by the memory pool an error is raised to indicate why this has happened.

Breaking changes

  • Proposals have a new field for the rationale, which is optional for now but will be mandatory in a future release
  • Scale settlement price based on oracle definition


  • Set and increment LP version field correctly
  • Add integration test for LP versioning
  • Add integration test making sure margin is released when an LP is cancelled
  • Use BroadcastTxSync instead of asynchronously for submitting transactions to Tendermint
  • Add support for settlement price decimal place in governance
  • Ensure at most 5 triggers are used in price monitoring settings
  • Add Ethereum key rotation support
  • Add retries to floating point consensus engine to work around Tendermint missing transactions
  • Remove genesis sign command


  • Set market pending timestamp to the time at which the market is created
  • Do not induce a system panic when admin server stops
  • Fix invalid http status set in faucet
  • Always call StartAggregate() when signing validators joining and leaving even if not a validator
  • Fix pegged orders to be reset to the order pointer after snapshot loading
  • Fix the check for overflow in scaling settlement price
  • Fix panic in loading validator checkpoint
  • Unwrap properly position decimal place from payload
  • Set last mark price to settlement price when market is settled
  • Send proof-of-work when announcing node
  • Ensure to / from in transfers payloads are Vega public keys
  • Stop updating the market’s initial configuration when an opening auction is extended
  • Return an error if market decimal place > asset decimal place
  • Stabilise state sync restore and restore block height in the topology engine
  • Mark a snapshot state change when liquidity provision state changes
  • Add missing commands to the TxError event
  • Fix banking snapshot for transfers, risk factor restoration, and statevar handling of settled markets
  • Fixed mark to market bug where settlement balance would not be zero when loss amount was 1.
  • Fixed proof of engine end of block callback never called to clear up state
  • Fix positions engines vwBuys and vwSell when amending, send events on Update and UpdateNetwork
  • Target stake in asset decimal place in Market Data
  • Fixed promotion of ersatz to Tendermint validator
  • Fixed wrong tick size used for calculating probability of trading
  • Fixed the default voting power in case there is stake in the network
  • Add proto serialisation for update market proposal
  • Ensure update market proposal computes a proper auction duration
  • Add replay protection for validator commands
  • Ensure Oracle specs handle numbers using num.Decimal and num.Int
  • Fix settlement at expiry to scale the settlement price from market decimals to asset decimals
  • Fix mark to market settlement where transfers get truncated resulting in settlement balance not being zero after settlement
  • Send order event on settlement
  • Use settlement price if exists when received trading terminated even
  • Fix bug where amending orders in opening auctions did not work as expected
  • Process recurring transfer before rewards
  • Allow recurring transfers to start during the current epoch

0.49.5 (10 March 2022)

This release implements a number of features, improvements and fixes to the core protocol software and takes the protocol one step closer to enabling trading. The primary focus of the project team has been to finalise the features around snapshots and validator improvements.

Internalising the Ethereum Event Forwarder

The Ethereum Event Forwarder is functionality inside Vega that allows the network to be aware of activity on the Ethereum network. When the forwarder service is aware of events, such as the staking or unlocking of tokens, it translates and passes the events to the Tendermint blockchain in Vega. Originally this was deployed as a single service alongside the Vega node, with the node needing to be configured to accept events from the forwarder service. This has now been rewritten and internalised into the Vega node, which simplifies the configuration of running a Vega node and makes it easier to deploy. Other benefits of doing this include it being easier to maintain and add future enhancements, which will be described in future release notes.

Data node

In order to have a solution for accessing data that can be scaled, work has begun on migrating the data store into a postgres with time-series database. Migrations of assets, accounts, markets, market data, orders and trades have been done. The changes have been made to the code base and live in parallel with the existing solution. As the remaining APIs are migrated and testing is completed, the old data store and APIs will be removed.

Read data node release notes.

Market decimal places

In this release, the protocol now makes it possible to configure a market for which orders can only be priced in increments of a specific size. This is done by specifying a different (smaller) number of decimal places than its settlement asset supports. To explain this, consider a market that settles in GBP. This market can now be configured to have 0 decimal places so that the price levels on the order book will be separated by at least £1, rather than the default £0.01.

Read more about this functionality in the spec market decimal places.

Offsets for pegged and liquidity commitment orders

The numbers used to offset how far from the reference price a pegged and liquidity provision order (respectively) can now only be input as positive. Whether they need to be added or subtracted from the price will be dependent on the order side.

Read more about this functionality in the spec pegged orders

Liquidity provision improvements

The LiquidityProvisionSubmission API was used for submitting, amending and cancelling liquidity provision. To both simplify the code and have a more explicit user experience a breaking change has been implemented to split these into three API commands.

Floating point consensus

Computations within a blockchain-based system need to be deterministic as the application state between nodes replicating it can start to differ potentially resulting in consensus failure. The protocol has been improved so that if the system has a differing floating point value there is a resolution strategy to reach consensus on the value that should be used. This is key due to the fact that validators will be running different hardware that could increase the chances of this happening.

Read more about this functionality in the spec floating-point consensus.


In order to simplify and streamline the process for both restarting or adding a node on the Vega network, the snapshot feature has been implemented. To allow a Vega node to be restarted or join without the need to replay the whole blockchain, a Vega node can load an existing snapshot. Snapshots contain all the network state required to start a node; nodes can use a snapshot stored locally or one created by a different node in the network. Starting a node using a snapshot populates all the state inside the core as if the core had processed the historic blockchain. The node can then start or resume listening to blocks after the snapshot until it gets to the live block height where it will be classed as a normal contributing node. This is a key feature to both ensure the constant availability of the network and for decentralisation.

On-chain treasury

This release also sees the introduction of the on-chain treasury. This is a series of, per asset type, accounts that allows the transfer of the reward types that will be seen when trading is enabled. Part of this change has seen the enabling of transfers between wallets, this allows the reward accounts in the treasury to pay out rewards. With these recurring transfers the reward pools will be distributed in full each epoch. This means that the network parameters for fractional payout and payout delays will be removed. Rewards will be distributed to those staking and providing liquidity, first on testnet, and soon it will be available as a feature validators can release on mainnet.

An on-chain treasury, per asset type, has been implemented where the balance of the insurance pool is transferred when the market closes. To enable this transfers between Vega Wallets has been enabled, this not only is a feature of the on-chain treasury/rewards system but also allows people using the protocol to be able to transfer assets between wallets. With this feature there have been other changes around the rewards system meaning the full amount of the global reward pool will be distributed in all assets at the end of each epoch.

Read more about this functionality in the specs on-chain treasury and transfers.

Validators joining and leaving, and standby validators

In addition to the consensus validators, there is now functionality on testnet to allow a set of ersatz, or standby validators. These are validators that will not contribute to the chain, but are on standby to jump in if a current validator drops off or their performance drops below a certain threshold. In order to be considered as an ersatz validator, the node operators need to meet certain criteria, including a minimum self-stake as well as stake nominated by other token holders.

Read more about this functionality in the spec validators chosen by stake.

Breaking changes

  • Separate endpoints for liquidity provision submissions, amendment and cancellation
  • Disallow negative offset for pegged and liquidity provision orders
  • Add ranking scores and reward score to node
  • Add support for fractional order sizes
  • Add more data to submit transaction endpoints
  • Restructure Ethereum Config to separate staking and vesting contract addresses, plus add block height at which they have been added respectively
  • Rework free form proposal protos so that they align with other proposals
  • Add support for decimal places specific to markets. This means market price values and position events can have different values. Positions will be expressed in asset decimal places, market specific data events will list prices in market precision
  • Remove tick size from market
  • Remove maturity field from future
  • Remove trading mode one-off from market proposal


  • Add ability to stream events to a file
  • Add block hash to statistics and to block height request
  • Extend auction feature tests
  • Add validation of update market proposals
  • Emit validators signature when a validator is added or remove from the set
  • Update the decimal library
  • Get rid of unnecessary ToDecimal conversions (no functional change)
  • Implement governance vote based on equity-like share for market update
  • Add specific insurance pool balance test
  • Add possibility to list snapshots from the Vega command line
  • Update feature tests related to liquidity provision following integration of probability of trading with floating point consensus
  • State variable engine for floating point consensus
  • Add an example client application that uses the null-blockchain
  • Add network limits service and events
  • Add a command to clean up all Vega node state
  • Remove Float from network parameters, use num.Decimal instead
  • Send staking asset total supply through consensus
  • Require Go minimum version 1.17
  • Integrate risk factors with floating point consensus engine
  • Change snapshot interval default to 1000 blocks
  • Fast forward epochs when loading from checkpoint to trigger payouts for the skipped time
  • Integrate price ranges with floating point consensus engine
  • Ensure validators are started with the right set of keys
  • Move to docker container registry
  • Remove execution configuration duplication from configuration root
  • Probability of trading integrated into floating point consensus engine
  • Measure validator performance and use to penalise rewards
  • Allow raw private keys for bridge functions
  • Add --update and --replace flags on vega genesis new validator
  • Add --network-url option to vega tm
  • Add transfer command support (one off transfers)
  • Add transfer command support (recurring transfers)
  • Add cancel transfer command
  • Fix null blockchain by forcing it to always be a non-validator node
  • Remove old ID generator fields from execution engine’s snapshot
  • Reward refactoring for network treasury
  • Added endpoint SubmitRawTransaction to provide support for different transaction request message versions
  • Replace asset insurance pool with network treasury
  • Internalise Ethereum Event Forwarder
  • Make BlockNr part of event interface
  • Rename min_lp_stake to quantum + use it in liquidity provisions
  • Check smart contract hash on startup to ensure the correct version is being used
  • Add integration test ensuring positions plug-in calculates P&L accurately
  • Validators joining and leaving the network
  • Add totalTokenSupplyStake to the snapshots
  • Add transfers snapshots
  • Serialise timestamp in time update message as number of nanoseconds instead of seconds
  • Add internal oracle supplying Vega time data for time-triggered events
  • Use a deterministic generator for order IDs, set new order IDs to the transaction hash of the Submit transaction
  • Hash again list of hash from engines
  • Make trade IDs unique using the deterministic ID generator
  • Simplified performance score
  • Add command line tool to sign for the asset pool method set_bridge_address
  • Send governance events when restoring proposals on checkpoint reload
  • Fix margins calculations for positions with a size of 0 but with a non zero potential sell or buy
  • Improve and optimise replay protection
  • Add Ethereum events reconciliation for multisig control


  • Fix time formatting problem that was breaking consensus on nodes in different time zones
  • Fix concurrent write to price monitoring ref price cache
  • Fix vega announce_node to work with --home and --passphrase-file
  • Fix price monitoring snapshot
  • Fix topology and erc20 topology snapshots
  • Epoch service now notifies other engines when it has restored from a snapshot
  • Fixes for invalid data types in the MarketData proto message.
  • Set Tendermint validators' voting power when loading from snapshot
  • Fixed tracking of liquidity fee received and added feature tests for the fee based rewards
  • Add ranking score information to checkpoint and snapshot and emit an event when loaded
  • Fix the string used for resource ID of stake total supply to be stable to fix the replay of non validator node locally
  • Fix margin balance not being released after close-out
  • Fix panic in loading topology from snapshot
  • Better error when trying to use the null-blockchain with an ERC20 asset
  • Set statistics block height after a snapshot reload
  • User tree importer and exporter to transfer snapshots via statesync
  • Updated vega verify genesis to understand new app_state layout
  • Set log level in snapshot engine
  • Save checkpoint with UnixNano when taking a snapshot
  • Fix restoring markets from snapshot by handling generated providers properly
  • corestate endpoints are now populated after a snapshot restore
  • save state of the feesplitter in the execution snapshot
  • Fix restoring markets from snapshot in an auction with orders
  • Set transfer responses event when paying rewards
  • Withdrawal fails should return a status rejected rather than cancelled
  • Deposits stayed in memory indefinitely, and withdrawal keys were not being sorted to ensure determinism
  • Fail when missing Tendermint home and public key in nodewallet import command
  • Bug fix for --snapshot.db-path parameter not being used if it is set
  • Bug fix for --snapshot.max-retries parameter not working correctly
  • Restore all market fields when restoring from a snapshot
  • Fix restoring rejected markets by signalling to the generated providers that their parent is dead
  • An array of fixes in the snapshot code path
  • Allow replaying a chain from zero when old snapshots exist
  • Fix liquidity provision commands decode
  • Remove all references to TxV2
  • Fix commit hash problem when checkpoint and snapshot overlap. Ensure the snapshot contains the correct checkpoint state.
  • Handle removing stake with no balances gracefully
  • Fix protobuf conversion in orders
  • Set a protocol version and properly send it to Tendermint in all cases
  • TimeUpdate is now first event sent
  • Ensure Ethereum event forwarder doesn’t process the current block multiple times
  • Ensure verification of type between oracle spec binding and oracle spec
  • Add vesting contract as part of the Ethereum event forwarder
  • Dispatch network parameter updates at the same block when loaded from checkpoint
  • Fix for markets loaded from snapshot not terminated by their oracle
  • Add testing for auction state changes and remove unnecessary market state change
  • Added verification of uint market data in integration test
  • Fixed issue where LP orders did not get redeployed
  • Snapshot fixes for market and update market tracker on trades
  • Snapshot fixes for the statevar engine
  • Fixed panic in maybeInvalidateDuringAuction
  • Fixed liquidity auction trigger for certain cancel & replace amends

0.47.3 (25 December 2021)


  • Add support for validator key rotation
  • Add chain ID to event bus messages
  • Limit delegation epochs in core API
  • Fix premature ending of epoch when loading from checkpoint
  • Set minimum for validator power to avoid accidentally removing them
  • Add free form governance network parameters to allKeys map
  • Wire network parameters to time service to flush out pending
  • Add ability for the null (test) blockchain to deliver transactions
  • Introduce API to allow time-forwarding in the null (test) blockchain
  • Remove the need for an Ethereum connection when using the null (test) blockchain
  • Allow reloading of null blockchain configuration while core is running
  • Change validator weights to be based on validator score
  • Add network parameters to overwrite checkpoints


  • Fix non determinism in deposits snapshot
  • Add some logging and height/version handling fixes
  • Fix problem where chain ID was not present on event bus during checkpoint loading
  • Fix rewards checkpoint not assigned to its correct place
  • Temporarily disable snapshots for version 0.47

0.46.2 (27 November 2021)


  • Unwrap the timestamps in reward payout event
  • Add oracle snapshot
  • Add liquidity snapshot
  • Add more error messages
  • Extend integration tests with global check for net deposits
  • Add tests to show margins not being released
  • Add trading fees feature test
  • Update return codes
  • Implement liquidity supplied snapshot
  • Add target liquidity engine
  • Remove staking of cache at the beginning of the epoch for spam protection
  • Change spam error messages to debug and enabled reloading of configuration
  • Remove usage of vegatime.Now over the codebase
  • Add Prometheus metrics on snapshots
  • Add markets snapshot
  • Refactor delegation
  • Add CLI options to start node with a null-blockchain
  • Add transaction hash to SubmitTransactionResponse
  • Add step to clear all events in integration tests
  • Fully remove expiry from withdrawals
  • Add free form governance proposals
  • Reduce the number of iterations in reward calculation
  • Include chain ID in bus messages
  • Update validator power in Tendermint based on their staking


  • Limit the number of iterations for reward calculation for delegation and fix for division by zero
  • Remove state from the witness snapshot and infer it from votes
  • Fix notary implementation
  • Fix non deterministic test by using same idGenerator
  • Remove usage of time.Now() in the auction state
  • Implement Uint for network parameters and use it for money values
  • Fix orders still being accepted after market in trading terminated state
  • Fix drone pipeline
  • Fix to set proper status on withdrawal errors
  • Fix missing pending rewards in limited network life checkpoint
  • Fix snapshot cleanup, improve logging when specified block height could not be reloaded
  • Fix division by zero when all validator scores are 0
  • Fix reward account balance not being saved/loaded to/from checkpoint
  • Wire rewards checkpoint to checkpoint engine and store infrastructure fee accounts in collateral checkpoint

0.45.2, 0.44, 0.43, 0.42 (29 October 2021)

This large, combined release including a number of breaking changes, including that the API services are now in a separate service called data-node. This means links to API documentation have changed, and that those APIs are no longer served by validator nodes.

Also, governance now uses a Party’s staking balance, not a General account in a specified asset. This is part of the introduction of new APIs related to staking and delegation.

Finally, more fields that were previously numeric are strings, due to the shift from uint64 to uint256.

Breaking changes

  • API: Change all price, amounts, balances from uint64 to string
  • API: Use staking accounts in governance
  • API: Remove redundant API from validator node


  • API: Add parties' stake API
  • API: Add delegation core APIs
  • Implement retries for notary transactions
  • Implement retries for witness transactions
  • Add replay protection snapshot
  • Add ABCI snapshot
  • Reconcile delegation more frequently
  • Add staking snapshot
  • Add timestamps to rewards
  • Add witness snapshot
  • Add stake verifier snapshot
  • Update the Vega Wallet version
  • Add rewards snapshot
  • Add limit snapshot
  • Ask for passphrase confirmation on initialisation and generate commands when applicable
  • Implement spam snapshot
  • Add ERC20 logic signing
  • Implement snapshot for notary
  • Ensure the Vega and Ethereum wallets are not nil before accessing
  • Add replay protection snapshot
  • Set timeout for system-tests steps
  • Improve handling of expected trades
  • Make event forward mode deterministic
  • Update code still using uint64
  • Add command to list and describe Vega paths
  • Clean-up and separate checkpoints and snapshots
  • Add assetActions to banking snapshot
  • Add tools and linting
  • Assets snapshot implemented
  • Add clef wallet
  • Snapshot positions engine
  • Update to latest proto and go mod tidy
  • Adding IDGenerator types
  • Matching engine snapshots
  • Add fields to validators genesis
  • Port code to use last version of proto (layout change)
  • Collateral snapshots
  • Snapshot epoch engine
  • Add delegation snapshot
  • Document default file location
  • Update proto dependencies to latest
  • Additional test scenarios for delegation & rewards
  • Simplify node wallet integration
  • Add auto delegation to checkpoint
  • Add edge case scenarios for delegation to tests
  • Add new type to handle signed versions of the uint256 values we already support
  • Update the proto repository dependencies
  • Implement the spam protection engine
  • Migrate core & wallet to XDG structure
  • Prefix checkpoint files with time and interval for automated tests
  • Extend delegation feature test scenarios
  • Implement multisig control signatures
  • Remove expiry support for withdrawals
  • Allow proposal votes to happen during the validation period
  • Implement the simple JSON oracle source
  • Add more hashes to the app state hash
  • Remove the trading proxy service
  • Remove dependency to the Ethereum client from the Ethereum wallet
  • Collateral snapshot: Add checkpoints where needed, update processor (ABCI app) to write checkpoint data to file.
  • Add epoch to delegation balance events and changes to the delegation / reward engines
  • Load Tendermint logger configuration
  • Update istake ABI and run abigen
  • Reinstate wallet subcommand tests
  • Implement feature test for delegation
  • Add undelegate, delegate and register snapshot errors
  • Add network parameter for competition level
  • Update protobuf dependencies
  • Add command to sign a subset of network parameters
  • Remove the wallet-pubkey flag on genesis sign command
  • Add genesis verify command to verify signature against local genesis file
  • Add action field to epoch events
  • Update the go-ethereum dependency
  • Check big integer conversion from string in ERC20 code
  • Use the Vega public key as node ID
  • Add a simple subcommand to the Vega binary to ease submitting transactions
  • Do not require Ethereum client when starting the node wallet
  • Implement delegation and epoch for Limited Network Life
  • Implement staking event verification
  • Remove validator signature from configuration and add network parameters
  • Add asset details to reward events
  • Add new validator sub-command to Vega genesis
  • Add command to create a new genesis block with app state
  • Create reward engine
  • Modify staking account to be backed by governance token account balance
  • Verify transaction version 2 signature
  • Implement epoch time


  • Make event forwarder hashing result more random
  • Prevent overflow with pending delegation
  • Ensure sufficient balances when nominating multiple nodes
  • Checkpoints fixes
  • Add minimum validators network parameter and bug fix for overflow reward
  • Fix rewards payout with delay
  • Fix undelegateNow to use the passed amount instead of 0
  • Remove 0 balance events from checkpoint of delegations
  • Fix event sent on reward pool creation + fix owner
  • Fix filename for checkpoints
  • Remove delay in reward/delegation calculation
  • De-duplicate stake linkings
  • Add missing key to all network parameters key map
  • Send delegation events
  • Simplify check pointing for network parameters and start fixing collateral checkpoint
  • Fixed non-deterministic checkpoint and added auto delegation to checkpoint
  • Fixed epoch issue
  • Capture errors with Ethereum iterator and continue
  • Fix bug where the withdrawal signature uses uint64
  • Extended delegation rewards feature test scenario edits
  • Update integration tests now transaction error events are not sent in the execution package
  • Fix a panic when reloading checkpoints
  • Use block height in checkpoint file names
  • LoadGenesis returns nil if checkpoint entry is empty
  • Set ABCI client so it is possible to submit a transaction
  • Emit Party event when stake link is accepted
  • Add more delegation / reward scenarios and steps and a bug fix in emitted events
  • Change delegation balance event to use string
  • Sort proposals by timestamp
  • Fix panic with Vega watch
  • Include TX_ERROR events for type ALL subscribers
  • Always use asynchronous transactions
  • Use a custom http client for the Tendermint client

0.41.0 & 0.41.1 (16 August 2021)

This release brings in several fixes for voting and withdrawing funds alongside refactoring and clean up. Also included is the first release with initial Testnet markets provided solely via governance and not using genesis config. Another improvement included in this release is to upgrade the version of Tendermint core.


  • Refactor: Rename traders to parties
  • Refactor: Clean up naming in the types package
  • Update Tendermint to a newer version
  • Implemented market terminated, settled and suspended states via the oracle trigger
  • Send Commander commands in a go routine
  • Checkpoint engine hash and checkpoint creation
  • Implement delegation commands
  • Move protocol buffers into an external repository
  • Replace Vega wallet with call to the go-wallet
  • Refactor: Clean up markets in domains types
  • Testing: Vega integration add subfolders for features
  • Implement rewards transfer
  • Implement a delegation engine
  • Imports need reformatting for core code base
  • Add limits engine + genesis loading
  • Add a first version of the accounting engine
  • Enable CGO in CI


  • Check if application context has been cancelled before writing to channel
  • Fix panic on division by 0 with party voting and withdrawing funds
  • Remove parameters from linting fixes
  • Ensure expired/settled markets are correctly recorded in app state
  • Change liquidity fees distribution to general account and not margin account of liquidity provider
  • Testing: Fixed setup of oracle specification step in integration
  • Fix binary version
  • Always use broadcast asynchronous transaction

0.39.0 & 0.40.0 (19 July 2021)

This release resolves issues discovered on Fairground during the first community Fairground incentive, by rewriting the liquidity provision order control flow. Another major improvement included in this release is the switch from uint64 to uint256 for all balances, amounts, and prices, which provides more numerical precision.


  • Return theoretical target stake when in auction
  • Remove inefficient metrics calls
  • Migrate from uint64 to uint256 for all balances, amount, prices in the core
  • Replace the calculation using decimals by uint256 in the liquidity target package
  • Remove some uint to decimal conversion
  • Remove reliance on proto conversion for GetAsset
  • Add the tm subcommand to allow users to run a Tendermint node via the Vega subcommand
  • Improve probability of trading calculations
  • Update oracle engine to send events at the end of the block
  • Add loss socialisation for final settlement
  • Refactor integration tests
  • Rewrite pegged / liquidity order control flow
  • Unified error system and strict parsing in feature tests
  • Add documentation on market instantiation in feature tests
  • Return better errors when replay protection happens


  • Added sign to settlement return values to allow user to correctly determine win/loss
  • Tidy up max open interest calculations
  • Fix settlement with network orders
  • Fixes in the positions engine following migration to uint256
  • Fix the position engine hash state following migration to uint256
  • Ensure LP orders are not submitted during auction
  • Correct event types and add panics to catch mistakes
  • Update the quant library to version 0.2.5
  • Fix send on closed channel using timer (event bus)
  • Fix decimal instantiation in bond slashing
  • Remove pegged order from pegged list if order is aggressive and trades
  • Clean code in the wallet package

0.39.0 (11 June 2021)


  • Add Auction Extension trigger field to market data
  • Testing: Add block time handling & block time variance
  • Enable replay protection
  • Implement new transaction format
  • Implement new commands validation


  • Stop liquidity auctions from extending infinitely
  • Fix handling of liquidity commitments at price bounds
  • Fix potential nil pointer when fetching proposals
  • Fix package import for domain types
  • Remove oracle prefix from files in the oracle package
  • Ensure all votes have weight initialised to 0
  • Address flaky tests
  • Rename auction state methods
  • Refactor auction end logic to its own file
  • Fix average entry valuation during opening auctions
  • Improve nil pointer checks on proposal submissions
  • Avoid slicing out of access bond in trades stores

0.37.2 (30 May 2021)


  • Add test coverage for auction interactions
  • Add error details field to rejected proposals
  • Market Data no longer returns an error when no market data exists, as this is a valid situation
  • Optimise transaction format & improve validation
  • Run buf breaking at build time
  • Refactor prepare* command validation
  • New tests for distressed LP and use margin for bond slashing as fallback


  • API: Fix crash with nil pointer (Prepare Proposal)
  • Fix auction extensions bugs
  • Fix the CI build for the some architectures
  • Fix reprice of pegged orders on every liquidity update
  • Fix probability of trading calculation for liquidity orders
  • Fixes for the resolve close out LP parties flow
  • Fix redeployment of LP orders
  • Fix price monitoring bounds

0.36.0 (17 May 2021)


  • API (breaking change): REST - Move deposits endpoint to /parties/[partyId]/deposits
  • API (breaking change): Party is no longer required when submitting an order amendment
  • API (breaking change): Party is no longer required when submitting an order cancellation
  • API (breaking change): Party is no longer required when submitting a withdrawal request
  • API: Add more information on token proportion/weight on proposal votes APIs
  • Improve caching of values when exiting auctions
  • Add extra validation for order, vote, withdrawal and liquidity provision transactions
  • Reject non-persistent orders that fall outside price monitoring bounds


  • API: Fix spelling errors in GraphQL docs
  • Remove float usage in liquidity engine
  • Clean up order submission code
  • Break up internal proposal definitions
  • Tidy up LP implementation internally
  • Improve test coverage around Liquidity Provisions on auction close
  • Fix settlement tests
  • Rename external resource checker to witness
  • Fix blank IDs on oracle in genesis markets
  • Refactor internal Vote Submission type to be separate from Vote type
  • Improve test coverage around order uncrossing
  • Remove debug steps from feature tests
  • Remove LiquidityPoolBalance from configuration
  • Increase rate limit that was causing memory pools to fill up unnecessarily
  • Split protobuf definitions
  • Do not emit amendments from liquidity engine

0.35.3 (27 April 2021)

This release cements the work on liquidity provisions, which were enabled in 0.34.0. Since then we’ve been closely watching the impact they’ve had on the system, and tweaked things accordingly. In particular, leaving an auction is now considerably faster.

This release also switches to Oasis Protocol’s ed25519 package after seeing considerable improvements in our benchmarks. We’ve changed some network parameters around liquidity provision that will keep markets out of liquidity-seeking auctions better. This is temporary while work on our liquidity bots continues.


  • Add logging for transactions rejected for having no accounts
  • Re-implement amending LPs not to be cancel and replace
  • Optimise calculation of cumulative price levels
  • Reuse LP orders IDs when they are re-created
  • Track the time spent in auction via Prometheus metrics
  • Implement a simple benchmarking framework for the core trading
  • Optimise indicative price and volume calculation
  • Fix the CI pipeline


  • API: Improve event bus stability
  • API: Fix event bus by deep cloning all messages
  • Auctions are extended if exiting auction would leave either side of the book empty
  • Correctly set time when liquidity engine is created
  • Fix bond account use on LP submission
  • Re-implement amending LPs not to cancel and replace
  • Fix behaviour when leaving auctions
  • Do not slash bond accounts on LP submission
  • Fix equity like share in the market data
  • Ensure leaving an auction cannot trigger another auction / auction leave
  • Fix LP order deployments
  • Set the fee paid in uncrossing auction trades
  • Improve / fix positions tracking
  • Fix indicative price and volume calculation
  • Fix matched order removal from the order book
  • Fix some order book issues
  • Check trades in integration tests

0.34.0 (12 April 2021)

Liquidity commitments are now enabled in a near-final form. This allows any user on Vega to commit to providing liquidity for a specific market, and to earn a fee. Most of the fixes and improvements in this release relate to enabling this functionality.

In the next release, a liquidity commitment will be required when proposing a new market. Amending an LP commitment sends the market into liquidity seeking auction. This is a known bug which will be fixed in the next release.


  • API: Add an event bus event when a market closes
  • API: All orders from LP - including rejected orders - are now sent through the event bus
  • Add reference to LP in orders created by LP
  • Store and propagate bond penalty
  • Add network parameters to control auction duration & extension
  • Add liquidity provision ID to orders created by LP commitments
  • Add transfer for bond slashing
  • Update scripts to Go 1.16.2
  • Update to Go 1.16.2
  • Extend unit test coverage for products
  • Remove liquidityFee network parameter
  • Add arbitrary data signing wallet endpoint
  • Add tests for traders closing their own position
  • Refactor governance engine tests
  • Add order book caching
  • Use UpdateNetworkParams to validate network parameter updates
  • Add probability of trading
  • Feature test refactor: Add liquidity provision feature tests
  • Feature test refactor: Remove unused steps
  • Feature test refactor: Refactor order cancellation steps
  • Feature test refactor: Refactor trader amends step
  • Feature test refactor: Refactor features with invalid order specifications
  • Feature test refactor: Add step to end opening auction
  • Feature test refactor: Add step to amend order by reference
  • Feature test refactor: Add step to place pegged orders
  • Feature test refactor: Add step to create liquidity provision
  • Feature test refactor: Remove unused settlement price step
  • Feature test refactor: Rework submit order step
  • Feature test refactor: Split market declaration
  • Feature test refactor: Apply naming convention to assertions


  • API GraphQL: LiquidityProvision is no longer missing from the EventBus union
  • Verify all properties on oracle specifications
  • Check for wash trades when FOK orders uncross
  • Order status is now only Active when it is submitted to the book
  • LP provisions are now properly stopped when a market is rejected
  • Update market value proxy at the end of each block
  • Ensure liquidity auctions are not left if they would result in an empty book
  • Reduce some log levels
  • Fix incorrect context object in liquidity provisions
  • Remove debug code
  • Add spell checking to build pipeline
  • Reduce market depth updates when nothing changes
  • Fees are no longer paid to inactive LPs
  • Improve performance of margin calculation during auctions
  • Fix validation of governance proposal terms
  • targetStake is now an unsigned integer
  • Fix invalid account wrapping
  • Fix multi architecture build
  • Fix version injection from the CI

0.33.1 (22 March 2021)

As per the previous release notes, this release brings a lot of fixes, most of which aren’t exciting new features but improve either the code quality or the developer experience. This release is pretty hefty, as the last few updates have been patch releases. It represents a lot of heavy testing and bug fixing on Liquidity Commitment orders. Alongside that, the feature test suite (using go-dog) has seen some serious attention so that we can specify more complex scenarios easily.

Two breaking changes to the GraphQL APIs are included: One to use ID scalar for IDs and ensure capitalisation is correct, the other is to add LP Commitment field to market proposals (Note: LP feature is disabled on Testnet in this release).


  • API (breaking change): GraphQL - Use ID scalar for IDs, ensure capitalisation is correct (marketID -> marketId)
  • API (breaking change): GraphQL - Add LP Commitment field to market proposal
  • API: GraphQL - Add market proposal to markets created via governance
  • API: GraphQL Add GraphQL endpoints for oracle specification
  • Add maximum LP shape size limit network parameter
  • Add OracleSpec to market
  • Add metrics logging for LPs
  • Add validation for Oracle Specifications on market proposals
  • Update transfers to use uint256
  • Refactor: Standardise how InAuction is detected in the core
  • Remove log.error when transaction rate limit is hit
  • Remove log.error when cancel all orders fails
  • Re-enable disabled static analysis
  • Add dlv to docker container
  • Add more LP unit tests
  • Remove network specific wallet initialisation
  • Remove obsolete InitialMarkPrice network parameter
  • Documentation fixed for infrastructure fee field
  • Add buf to get tools script
  • Move documentation generation to vegaprotocol/api repository
  • Add more debug logging in execution engine
  • Feature test refactor: Standardise market definitions
  • Feature test refactor: Remove unused trading modes
  • Feature test refactor: Move submit order step to separate package
  • Feature test refactor: Move oracle data step to separate package
  • Feature test refactor: Move market steps to separate package
  • Feature test refactor: Move confirmed trades step to separate package
  • Feature test refactor: Move cancelled trades step to separate package
  • Feature test refactor: Move traders step to separate package
  • Feature test refactor: Create new step to verify margin accounts for a market
  • Feature test refactor: Create step to verify one account of each type per asset
  • Feature test refactor: Create step to deposit collateral
  • Feature test refactor: Create step to withdraw collateral
  • Feature test refactor: Merge deposit & verification steps
  • Feature test refactor: Create step to verify settlement balance for market
  • Feature test refactor: Rewrite margin levels step
  • Feature test refactor: Unify error handling steps
  • Feature test refactor: Various small fixes
  • Feature test refactor: Remove outdated feature tests
  • Feature test refactor: Add steps to test handling of LPs during auction
  • Feature test refactor: Fix typo


  • API: LP orders were missing their reference data
  • API: GRPC API now shuts down gracefully
  • API: GraphQL schema grammar & spelling fixes
  • API: Pegged orders that fail to reprice correctly are now properly removed from the Market Depth API
  • API: Ensure all filled and partially filled orders are remove from the Market Depth API
  • API GraphQL: Fix missing data in proposal subscription
  • Fix crash caused by distressed traders with LPs
  • Parties with cancelled LPs no longer receive fees
  • Improve handling of genesis block errors
  • Equity share is now correct when submitting initial order
  • LP submission now checks margin engine is started
  • Rewrite amending LPs
  • Rewrite cancel all order implementation
  • API: GraphQL: Order in LiquidityOrder is now nullable
  • Move vegastream to a separate repository
  • Ignore error if Tendermint stats is temporarily unavailable
  • Fix governance to use total supply rather than total deposited into network
  • Opening Auction no longer set to null on a market when auction completes
  • Rewrite LP refresh mechanism
  • Auctions now leave auction when maximumDuration is exceeded
  • Bond account is now correctly cleared when LPs are cancelled
  • Switch error reporting mechanism to stream error
  • Switch more error reporting mechanisms to stream error
  • Fix fee check for LP orders
  • LP orders are now accessed deterministically
  • LP bond is now returned if a market is rejected
  • Parties with closed out LPs can now submit new LPs
  • New market proposals with invalid Oracle definitions no longer crash core
  • Fix intoProto for OracleSpecBinding
  • Target Stake is now used as the Market Value Proxy during opening auction

0.32.0 (1 March 2021)

More fixes, primarily related to liquidity provisioning (still disabled in this release) and asset withdrawals, which will soon be enabled in Vega Console.

Two breaking changes in the GraphQL API are included - one fixing a typo, the other changing the content of date fields on the withdrawal object - they’re now date formatted.


  • API (breaking change): GraphQL - Withdrawal fields expiry, createdAt & updatedAt are now RFC3339Nano date formatted
  • API (breaking change): GraphQL - Fix typo in prepareVote mutation - propopsalId is now proposalId
  • API: Incorporate buf.yaml tidy up submitted by bufdev on api-clients repo
  • API GraphQL: Fix incorrect market in bond account resolver
  • API: Fix a lock caused by GraphQL subscribers unsubscribing from certain endpoints
  • Liquidity fees are distributed in to margin accounts, not general accounts
  • Liquidity provisions are now rejected if there is not enough collateral
  • Liquidity provisions are now parked when repricing fails
  • Store reference prices when parking pegs for auction
  • Fix withdrawal data availability before it is verified
  • Fix sending multisig bundle for withdrawals before threshold is reached
  • Extend auctions if uncrossing price is unreasonable
  • Create third party folder to avoid excluding vendor protos in build
  • Remove LP commitments when a trader is closed out
  • Remove LP commitments when a trader reduces their commitment to 0~

0.31.1 (15 February 2021)

Many of the fixes below relate to liquidity commitments, which are still disabled in testnet, and data sourcing, which is also not enabled. Data sourcing (oracles) is one of the last remaining pieces we need to complete settlement at instrument expiry, and liquidity commitment will be enabled when the functionality has been stabilised.

This release does improve protocol documentation, with all missing fields filled in and the explanations for pegged orders expanded. Two crashers have been fixed, although the first is already live as hotfix on testnet, and the other is in functionality that is not yet enabled.

This release also makes some major API changes:

  • All the protobuf files have been updated to follow Buf recommendations, which changes many field names in REST, GraphQL and gRPC
  • api.TradingClient -> api.v1.TradingServiceClient
  • api.TradingDataClient -> api.v1.TradingDataServiceClient
  • Fields have changed from camel-case to snake-cased (e.g. someFieldName is now some_field_name)
  • All API calls now have request and response messages whose names match the API call name (e.g. GetSomething now has a request called GetSomethingRequest and a response called GetSomethingResponse)


  • API: Generate missing REST endpoints (prepareProposal, prepareVote, prepareLiquiditySubmission)
  • API: Add Liquidity Commitments to API responses
  • Add submitOracleData command
  • Update vega verify command to verify genesis block files
  • Enable distribution of liquidity fees to liquidity providers
  • Add Open Oracle data processing & data normalisation


  • API: Fix invalid docs reference in proto (TIF_* -> TIME_IN_FORCE_*)
  • API: Fix market life cycle events not being published through event bus API
  • API: Fix GraphQL bug: deposits creditedAt incorrectly showed createdAt time, not credit time
  • API: Refactor GraphQL resolver for withdrawals
  • API: Improve proto documentation, in particular for pegged orders
  • Add new process for calculating margins for orders during auction
  • Liquidity commitment fixes
  • Apply Buf lint recommendations
  • Improve field names in fee distribution package
  • Fix crasher caused by parking pegged orders for auction
  • Remove unused binaries from CI builds
  • Fix bug that caused fees to be charged for pegged orders
  • Remove unused dependency in repricing
  • Fix crasher caused by incorrectly loading Fee account for transfers

0.30.0 (25 January 2021)

This release enables (or more accurately re-enables) pegged orders, meaning they’re finally here!

The Ethereum bridge also received some work - in particular the number of confirmations Vega waits for on Ethereum is now controlled by a governance parameter. Being a governance parameter, that means that the value can be changed by a governance vote. Slightly related: You can now fetch active governance proposals via REST.

  1. We also switch to Buf for our protobuf workflow. This was one of the pre-requisites for opening up the API clients' build process, and making the protos open source. More on that soon!

  2. We also fixed an issue on testnet where votes were not registered when voting on open governance proposals. The required number of Ropsten VOTE tokens was being calculated incorrectly, leading to all votes quietly being ignored. In 0.30.0, voting works as expected again.

  3. Bug note: Estimated fees for a pegged order will assume that like other limit orders, it could trade aggressively on entry to the order book and therefore incur fees. However, persistent pegged orders (the only type Vega currently supports) always hit the order book as passive orders (they cannot be crossed with other orders on the book due to the rules around allowable peg reference + offset combinations), and therefore will never incur any fees.


  • API (breaking change): Rename marketState to marketTradingMode, add new marketState enum (ACTIVE, SUSPENDED or PENDING)
  • API: Add REST endpoint to fetch all proposals (/governance/proposals)
  • API: Add transfer bus events for withdrawals and deposits
  • API: Add New Market bus event
  • API: Add Supplied State to market data
  • Add FeeSplitter to correctly split fee portion of an aggressive order
  • Switch to Buf
  • Add configurable required confirmations for bridge transactions
  • Add fees estimate for pegged orders
  • Add bond and fee transfers


  • API: Fix typos in GraphQL schema documentation
  • API: Fix GraphQL, Allow marketId to be null when it is invalid
  • API: Fix New Market bus event being sent more than once
  • Fix voting for proposals
  • Refactor pegged order repricing
  • Refactor expiring orders lists
  • Handle liquidity commitments on market proposals
  • Add changing liquidity commitment when not enough stake
  • Fix read nodes lagging if they receive votes but not a bridge event
  • Fix various minor bridge confirmation bugs
  • Fix removing pegged orders that are rejected when unparked
  • Fix crasher when proposing an update to network parameters
  • Update target stake to include mark price
  • Fix price monitoring integration tests
  • Add more unit tests for pegged order price amends
  • Fix cancelling all orders
  • Fix parked pegged orders to have a price of 0 explicitly
  • Disallow GFN to GTC/GTT amends
  • Add rounding to pegged order mid prices that land on non integer values
  • Fix error handling when amending some pegged order types
  • Remove order from pegged list when it becomes inactive
  • Add more panics to the core
  • Remove expiring orders when amending to non GTT
  • Add extra integration tests for uncrossing at auction end
  • Fix potential divide by 0 in position calculation
  • Add check for pegged orders impacted by order expiry
  • Remove the ability to amend a pegged order’s price
  • Add price monitoring tests for order amendment
  • Fix fee monitoring values during auction
  • Fix incorrect reference when amending pegged orders
  • Fix incorrect error codes for IOC and FOK orders during auction
  • Update price monitoring to use reference price when syncing with risk model
  • Refactor governance event subscription

0.28.0 & 0.29.0 (9 December 2020)

Note that you’ll see a lot of changes related to Pegged Orders and Liquidity Commitments. These are still in testing, so these two types cannot currently be used in Testnet.


  • API: Add REST governance endpoints
  • API: Add price monitoring bounds to the market data API
  • Implement amends for pegged orders
  • Calculate market target stake
  • Replace inappropriate wording in the codebase
  • Implement proposal to update network parameters
  • Integrate the liquidity engine into the market
  • Use the Ethereum block log index to de-duplicate Ethereum transactions
  • Update ERC20 token and bridges ABIs
  • Add instruction to debug integration tests with DLV


  • API: Fix a GraphQL enum conversion
  • API: Handle missing error conversion in GraphQL API
  • API: Fix a typo in market price monitoring parameters API
  • Fix cancellation of pegged orders
  • Fix panic in execution engine when GFN order are submitted at auction start
  • Fix pegged order creating duplicated order events
  • Prevent the node to DDOS the Ethereum node when lots of deposits happen
  • Fix indicative price and volume calculation
  • Change governance minimum proposer balance to be a minimum amount of token instead of a factor of the total supply
  • Fix spelling in a network parameter
  • Fix panic when uncrossing auction
  • Fix price monitoring by feeding it the uncrossing price at end of opening auction
  • Fix a bug related to order being sorted by creating time in the matching engine price levels

0.27.0 (9 November 2020)

This release contains a fix (read: large reduction in memory use) around auction modes with particularly large order books that caused slow block times when handling orders placed during an opening auction. It also contains a lot of internal work related to the liquidity provision mechanics.


  • API (breaking change): MarketData now uses RFC339 formatted times, not seconds
  • API: Create liquidity measurement API (This API is still WIP)
  • API GraphQL: Add withdrawal and deposit events to event bus
  • Automatically create a bond account for liquidity providers
  • Add network parameters related to target stake calculation
  • Network parameters can now contain JSON configuration


  • API: Refactor event bus event transmission
  • API: Add LiquidityProvisionSubmission transaction
  • Optimise memory usage when building cumulative price levels
  • Fix indicative price calculation
  • Improve command line for rate limiting in faucet and wallet
  • Remove reference to external risk model
  • Fix panic when loading an invalid genesis configuration
  • Fix pointer when using amend in place
  • Remove context from struct that didn’t need it
  • Remove unused code
  • Improve validation of external resources
  • Upgrade to Tendermint 0.33.8

0.26.1 (26 October 2020)

The events API added in 0.25.0 had some reliability issues when a large volume of events were being emitted. This release addresses that in two ways: The gRPC event stream now takes a parameter that sets a batch size. A client will receive the events when the batch limit is hit. GraphQL is now limited to one event type per subscription, and we also removed the ALL event type as an option. This was due to the GraphQL gateway layer taking too long to process the full event stream, leading to sporadic disconnections.

These two fixes combined make both the gRPC and GraphQL streams much more reliable under reasonably heavy load. The release also adds some performance improvements to the way the core processes Tendermint events, some documentation improvements, and some additional debug tools.

This release also includes a number of issues discovered during the testing of 0.26.0, and the two releases were packaged together.


  • API (breaking change): Change estimateFee to estimateOrder in GraphQL
  • API (breaking change): GraphQL: Event bus API - remove ALL type & limit subscription to one event type
  • API (breaking change): Add batching support to stream subscribers
  • API: Add fee estimate API endpoints to remaining APIs


  • API: Further reliability fixes for the event bus
  • API REST: Fix a crasher when a market is proposed without specifying auction times
  • API GraphQL: Improve response when market does not exist
  • API GraphQL: Improve response when party does not exist
  • API: Optimise event bus to reduce CPU usage
  • API: Event stream - Send batches instead of single events
  • API: Event stream - Reduce CPU load, depending on batch size
  • API GraphQL: Make event stream batch size mandatory
  • API: Event stream: Fix CPU spinning after stream close
  • API GraphQL: Add price monitoring
  • API GraphQL: Fix a resolver error when markets are in auction mode
  • API GraphQL: Remove unnecessary validations
  • API GraphQL: Update library; improve error responses
  • API REST: Fix HTTP verb for network parameters query
  • API GraphQL: Remove verbose logging
  • Documentation: Improve documentation for fee estimate endpoint
  • Documentation: Improve documentation for governance data endpoints
  • Documentation: Add documentation and comments for events.proto
  • Fix incorrect error returned when a trader places an order in an asset that they have no collateral account for (was InvalidPartyID, now InsufficientAssetBalance)
  • Add Price Monitoring module
  • Add new market depth subscription methods
  • Improve error messages for Good For Auction/Good For Normal rejections
  • Add validation for GFA/GFN orders
  • Implement app state hash
  • Add validation for market proposal risk parameters
  • Add transaction replay protection
  • Cache transactions already seen by checkTX
  • Add test covering context cancellation mid data-sending
  • Internal refactor of network parameter storage
  • Rewrite vegastream to use the event bus
  • Fix context for events, add block hash and event ID
  • Add ABCI event recorder
  • Ensure event slices cannot be empty
  • Handle filled orders in the market depth service before new orders are added
  • CI: Add missing environment variables
  • Use cached transactions in checkTX
  • Optimise accounts map accesses
  • Fix sequence ID related to market OnChainTimeUpdate
  • Update coding style doc with info on log levels
  • Fix out of bounds index crash
  • Add mutex to protect map access
  • Auctions: Reject IOC/FOK orders
  • Tidy up genesis market instantiation
  • Update Tendermint stats less frequently for Vega stats API endpoint
  • Auctions: Add fix for crash during auction exit
  • Make the price level wash trade check configurable
  • Use EmitDefaults on jsonpb.Marshaler
  • Validate amend orders with GFN and GFA
  • Return a permission denied error for a non-allowlisted public key
  • Undo accidental code removal
  • Auctions: Add check for opening auction duration during market creation

0.25.1 (15 October 2020)

This release backports two fixes from the forthcoming 0.26.0 release.


  • API: Add missing /governance/prepare/vote REST endpoint
  • Update OrderEvent to copy by value

0.25.0 (30 September 2020)

This release adds the event bus API, allowing for much greater introspection in to the operation of a node. We’ve also re-enabled the order amends API, as well as a long list of fixes.


  • API: Add GraphQL event stream API
  • API: Add deposits API
  • API: Re-enable order amend API
  • Enable opening auctions
  • Initial asset list is now loaded from genesis configuration, not external configuration
  • Re-enable transaction rate limit by party ID
  • Add time to position responses


  • API GraphQL (breaking change): Field case change proposalId -> proposalID
  • API GraphQL (breaking change): Withdrawals now return a Party, not a party ID
  • API GraphQL: fix proposal rejection enum
  • API GRPC: Ensure all GRPC endpoints use real time, not Vega time
  • API: Reduce log noise from statistics endpoint
  • API: Fix a concurrent map access in positions API
  • API: Fix incorrect order count in Market Depth API
  • API: Fix concurrent map access in Market Depth API
  • API GraphQL: Fix party filtering for event bus API
  • API: Add sequence ID to event bus events
  • API GraphQL: Fix auction events not appearing in GraphQL event bus
  • Fix time validation for proposals when all times are the same
  • Automatically reload node configuration
  • Refactor order service to not require blockchain client
  • Improve error clarity for invalid proposals
  • Refactor processor to no longer require collateral
  • Clean up logs that dumped raw bytes
  • Remove generate method from execution engine
  • Remove authEnabled setting
  • Simply order amendment logging
  • Clarify fees attribution in transfers
  • Ensure margin is released immediately, not on next mark to market
  • Load log level in processor app
  • Improve logging on a transaction with an invalid signature
  • Refactor transaction codec
  • Prevent opening auctions from closing early
  • Clear potential position properly when an order is cancelled for self trading
  • Fixing incorrect order iteration in auctions
  • Check auction times
  • Better handling of 0 expiresAt

0.24.0 (14 September 2020)

One new API endpoint allows cancelling multiple orders simultaneously, either all orders by market, a single order in a specific market, or just all open orders.

Other than that it’s mainly bugfixes, many of which fix subtly incorrect API output.


  • Support for cancelling multiple orders at once
  • Add per-party rate-limit of 50 requests over 3 blocks


  • API GraphQL: Add Governance proposal metadata
  • API: Fix crashed in event bus
  • API: Fix a rounding error in the output of Positions API
  • API gRPC: Fetch all accounts for a market did not return all accounts
  • API: Prevent wasteful event bus subscriptions
  • API: Ensure events in the event bus maintain their order
  • API: Fix API returning incorrectly formatted orders when a party has no collateral
  • Documentation: Improve API documentation
  • Send Infrastructure fees to the correct account
  • Prevent creation of withdrawal requests for more than the available balance

0.23.1 and 0.23.00 (31 August 2020)

This release contains a lot of groundwork for Fees and Auction mode, and release backports a fix from the 0.24.0 release that fixes a GraphQL issue with the new Asset type. When fetching the Assets from the top level, all the details came through. When fetching them as a nested property, only the ID was filled in. This is now fixed.

Fees are incurred on every trade on Vega. Those fees are divided between up to three recipient types, but traders will only see one collective fee charged. The fees reward liquidity providers, infrastructure providers and market makers.

  • The liquidity portion of the fee is paid to market makers for providing liquidity, and is transferred to the market-maker fee pool for the market.
  • The infrastructure portion of the fee, which is paid to validators as a reward for running the infrastructure of the network, is transferred to the infrastructure fee pool for that asset. It is then periodically distributed to the validators.
  • The maker portion of the fee is transferred to the non-aggressive, or passive party in the trade (the maker, as opposed to the taker).

Auction mode is not enabled in this release, but the work is nearly complete for Opening Auctions on new markets.

This release disables order amends. The team uncovered an issue in the Market Depth API output that is caused by order amends, so rather than give incorrect output, we’ve temporarily disabled the amendment of orders. They will return when the Market Depth API is fixed. For now, amends will return an error.


  • API (breaking change): Disable order amends
  • API: Add built in asset faucet endpoint
  • API: Add time & size limits to faucet requests
  • API REST: Add REST endpoint to fetch governance proposals by Party
  • API REST: Add REST endpoints for fees
  • API: Add prepareWithdraw endpoint


  • API GraphQL: Fix for fetching assets as nested properties
  • API GraphQL: Send KeepAlive messages on GraphQL subscriptions
  • API GraphQL: Remove deprecated field from GraphQL input types (as it’s invalid)
  • API: Track Event Queue events to avoid processing events from other chains twice
  • API: Add proto fields required for auctions
  • Documentation: Add documentation for Order Errors to proto source files
  • Fix Network orders being left as active
  • Add auction mode (currently never triggered)
  • Add Opening Auctions support to market framework
  • Add fees support
  • Fix rejectionReason for trades stopped for self trading
  • Remove specified tickSize from market
  • Fix validation of proposal timestamps to ensure that date stamps specify events in the correct order

0.22.0 (4 August 2020)

This release primarily focuses on setting up Vega nodes to deal correctly with events sourced from other chains, working towards bridging assets from Ethereum. This includes responding to asset events from Ethereum, and support for validator nodes notarising asset movements and proposals.

It also contains a lot of bug fixes and improvements, primarily around an internal refactor to using an event bus to communicate between packages. Also included are some corrections for order statuses that were incorrectly being reported or left outdated on the APIs.


  • API: Implement handling of external chain events from the Event Queue
  • API: Add new Notary package for tracking multisig decisions for governance
  • Add support for two-step governance processes such as asset proposals
  • Support ERC20 deposits
  • Add OpenInterest field to markets
  • Add RejectionReason field to rejected governance proposals


  • API REST (breaking change): Update orders endpoints to use POST, not PUT or DELETE
  • API GraphQL (breaking change): Some endpoints returned a nullable array of Strings. Now they return an array of nullable strings
  • API GraphQL & GRPC (breaking change): Remove broken open parameter from Orders endpoints. It returned ambiguous results
  • API (breaking change): Fix outdated order details for orders amended by cancel-and-replace
  • API (breaking change): Fix incorrect status on partially filled trades that would have matched with another order by the same user. Was stopped, now rejected
  • API REST & GraphQL (breaking change): Market name is now based on the instrument name rather than being set separately
  • API: Migrate Margin package to event bus
  • API: Migrate Governance package to event bus
  • API: Migrate Position package to event bus
  • API GraphQL: Orders now include their version and updatedAt, which are useful when dealing with amended orders
  • API: Remove single mutex in event bus
  • API: Add mutexes for event bus access
  • API: Fix context for event subscribers
  • API: Address event bus performance issues
  • API: Fix regressions in Candles API introduced by event bus
  • API GraphQL: Add new asset proposals to GraphQL API
  • Documentation: Improve Order documentation for Status and TimeInForce
  • Fix concurrent map access in event forward
  • Fix expiresAt on orders was validated at submission time, this has been moved to post-chain validation
  • Improve event broker performance
  • Improve handling for new chain connection proposal
  • Validate list of allowed assets

0.21.1 & 0.20.1 (22 June 2020)

This release includes a fix for the GraphQL API returning inconsistent values for the side field on orders, leading to Vega Console failing to submit orders. As a bonus there is another GraphQL improvement, and two fixes that return more correct values for filled network orders and expired orders. This release also fixes one small bug that was causing many closed streams, which was a problem for API clients. This release also contains a lot of fixes to APIs, and a minor new addition to the statistics endpoint. Potentially breaking changes are now labelled with (breaking change.) If you have implemented a client that fetches candles, places orders or amends orders, please check below.


  • API (breaking change): Start adding TraceId to core events
  • API: ChainId added to statistics endpoint


  • API GraphQL (breaking change): Non existent parties no longer return a GraphQL error
  • API GraphQL (breaking change): Update schema and fix enum mappings from Proto
  • API (breaking change): Governance - Improve processing of Proposals
  • API (breaking change): Improve API responses for GetProposalById
  • API (breaking change): New Order - Type no longer defaults to LIMIT orders
  • API (breaking change): PrepareAmend no longer accepts expiry time
  • API (breaking change): Add proto enum zero value “unspecified” to Side
  • API (breaking change): Candles - Interval no longer defaults to 1 minute
  • API (breaking change): Add proto enum zero value “unspecified” to Order.Status
  • API (breaking change): Add prefixes to enums, add proto zero value “unspecified” to Trade.Type
  • API (breaking change): Add prefix and UNSPECIFIED to ChainStatus, AccountType, TransferType
  • API: Reject NETWORK orders
  • API GraphQL: Fix incorrect timestamps for proposals retrieved by GraphQL
  • API: Add proto enum zero value “unspecified” to Interval
  • Remove duplicate updates to createdAt
  • Trades - Replace buffer with events
  • Governance - Improve logging
  • Execution - Set order status for fully filled network orders to be FILLED
  • Matching - Set updatedAt when orders expire
  • Update Golang to 1.14 and Tendermint to 0.33.5
  • Set PartyEvent type to party event
  • Extend governance error handling
  • Mark Price was not always correctly updated on a partial fill
  • Feature/1577 hash context propagation
  • Orders amended to be GTT now return GTT in the response
  • Votes blob is now base64 encoded
  • Markets created from proposals now have the same ID as the proposal that created them
  • Added datetime to governance votes
  • Fix a bug in governance vote counting
  • Fix incorrect validation on new orders
  • Fix incorrect party ID validation on new orders
  • Fix issue where markets created via governance were not tradable
  • Create
  • Feature/1692 order event
  • Feature/1697 account event
  • Check for unspecified Vote value
  • Feature/1696 party event

0.19.0 (8 June 2020)

This release fixes a handful of bugs, primarily around order amends and new market governance proposals.


  • API: Add timestamps to proposal API responses
  • Add margin checks to amends
  • Add topology package to map Validator nodes to Vega keypairs


  • Fix a case where a party can cancel another party’s orders
  • Start moving to event-based architecture internally
  • Fix order expiry handling when expiresAt is amended
  • Fix participation stake to have a maximum of 100%
  • Update gqlgen dependency to 0.11.3
  • Remove ID from market proposal input
  • prepareProposal no longer returns an ID on market proposals
  • Allow overriding default governance parameters via ldflags.
  • Compile testing binary with short-lived governance periods

0.18.1 & 0.18.0 (25 May 2020)


  • API GraphQL: Add a default GraphQL query complexity limit of 5. Currently configured to 17 on testnet to support Console.
  • API GraphQL: Add GraphQL queries for governance proposals
  • Add builds for multiple architectures to GitHub releases


  • Fix GitHub artefact upload CI configuration
  • Fix amends triggering multiple updates to the same order
  • Hex encode keys

0.17.0 (11 May 2020)

This release contains the initial partial implementation of Governance. This will be finished and documented in 0.18.0.


  • API GraphQL: Add root GraphQL Orders query.
  • API GraphQL: Add GraphQL query to list all known parties.
  • API: Remove party list from stats endpoint.
  • Add updatedAt field to orders.


  • API GraphQL: Return full Market details in nested GraphQL queries.
  • Flush orders before trades. This fixes a rare scenario where a trade can be available through the API, but not the order that triggered it.
  • Fix OrdersByMarket and OrdersByParty ‘Open’ parameter.
  • Fix Orders by the same party matching.

0.16.2 & 0.16.1 (16 April 2020)


  • Improve error handling in Prepare*Order requests.
  • Prevent bad ED25519 key length causing node panic.

0.16.0 (16 March 2020)

The new authentication service is in place. The existing authentication service is now deprecated and will be removed in the next release.


  • API GraphQL: Change Buyer and Seller properties on Trades from string to Party.
  • API: Show trades resulting from Orders created by the network (for example close outs) in the API.
  • API: Add protobuf validators to API requests.
  • Documentation: Remove NotifyTraderAccount from API documentation.
  • Add lastMarketPrice settlement.
  • Fix casing of Order parameter timeInForce.
  • Add new order statuses, Rejected and PartiallyFilled.
  • Pin Market IDs to fixed values.
  • Fix a flaky integration test.
  • Improve matching engine coverage.
  • Improve collateral engine test coverage.

Data node releases

Note: Data node version numbers tend to mirror the version numbers of the core software.

0.51.2 (10 June 2022)


  • Add missing creation field in ERC20 withdrawal bundle
  • Rename method for listing asset bundle
  • Add fields related to network limit for ERC20 asset
  • Migrate node data to V2
  • Implement pagination for Data-Node V2 APIs for trades, parties and markets, orders and margin levels
  • Data retention across all historical data tables
  • Expose bundle for asset
  • Migrate market depth to retrieve data from Postgres
  • Remove deprecated PositionState event handling, general fixes to SettlePosition event handling
  • Transaction event broker
  • Refactor margin levels to use account ID
  • Add rationale to all proposals
  • Add market ID and reward type to reward and market for transfers
  • Data retention for margin levels
  • Update transfers API to expose dispatch strategy
  • Add metrics for SQL queries
  • Add a cache for assets
  • Remove foreign key constraints on hyper tables
  • Optimise liquidity provision and margin levels data retention and storage
  • Return correct error code when proposal not found
  • Expose an endpoint to list oracle data


  • Fix for incorrect balances
  • Fix event race where a ranking event can come in before the new node event
  • Fix market depth update subscriptions streaming events for all markets
  • Shut down cleanly on SIGINT or SIGTERM
  • Fix issue which was stopping asset cache from working properly
  • Don’t return multiple delegations per epoch/party/node
  • User from_epoch in update event to determine if node exists

0.50.1 (26 April 2022)

Breaking change

  • Extend node model with additional information about reward scores and ranking scores plus validator statuses


  • Migrate withdrawal API to retrieve data from Postgres
  • Migrate existing Oracles API to new Postgres database
  • Migrate market data time series to consistent format
  • Migrate existing Liquidity Provisions API to new Postgres database
  • Migrate existing Positions API to new Postgres database
  • Migrate transfers API to retrieve data from Postgres
  • Migrate existing stake linking API to new Postgres database
  • Migrate ERC20WithdrawlApproval and NodeSignaturesAggregate API to new Postgres database
  • Clean up error handling in subscribers and make action on error configurable
  • Trade data retention
  • Account for SettlePosition events reaching the positions plug-in before the PositionState event
  • Make sure SettlePosition does not result in a division by zero panic
  • Correct conversion of pending validator status
  • Fix OracleSpecs GraphQL query returns error and null when there is no data
  • Fix position open volume calculation
  • Fix estimate margin calculates incorrectly for limit orders
  • Fan out event broker should only call listen once on source broker

0.49.4 (10 March 2022)

Breaking changes

  • Extended node model with additional information about reward scores and ranking scores + validator statuses
  • Update pegged orders offset


  • Added support for fractional positions
  • Updated proto and core and added support for the new events (state var and network limits)
  • Constrain the number of epochs for which we keep delegations in memory
  • Updated proto and core and added support for the new events (state var and network limits)
  • Add support for pagination of delegations
  • Expose validator performance score attributes on Node object
  • Remove creation of vendor directory
  • Added endpoint to support multiple versions of transaction request
  • Add basic framework for connecting to postgres database
  • Add initial sql storage package
  • Embed the facility to run a file based event store into the data node
  • Add BlockNr() methods for event interface
  • Add support for running an embedded version of Postgresql
  • Remove trading mode and future maturity
  • Add grpcui web user interface
  • Add brokers for the new data stores to support sequential and concurrent event processing
  • Add balances sql store and upgrade gqlgen
  • Add orders sql store
  • Add network limits store and API
  • Fix compatibility with new protoc-gen-xxx tools used in protos repository
  • Add support for storing market data events in the SQL store
  • Persist trade data to SQL store


  • Now returns not-found error instead of internal error when proposal not found
  • Bug fix for proposal NO vote showing incorrect weight and tokens
  • Add back assetId GraphQL resolver for RewardPerAssetDetail, change RiskFactor fields to strings.
  • Fix GraphQL support for free-form governance proposals
  • Add the missing events conversion to data node
  • Market data record should be using the sequence number from the event

0.47 (20 December 2021)


  • Constrain the number of epochs for which Vega keeps delegations in memory
  • Add handling for checking/storing Chain ID
  • Don’t return API error when no rewards for party
  • Add key rotations history
  • Not every asset has a global reward pool account
  • Allow risk factor events to be streamed via GraphQL subscription

0.46 (22 November 2021)


  • Remove broken SubmitTransaction GraphQL endpoint
  • Add handling for checking/storing Chain ID
  • Add subscriptions for delegations & rewards
  • Move to XDG file structure
  • Populate target address for erc20WithdrawalApprovals


  • Fix rewards schema and update Vega dependencies to have reward event fixes
  • Update GraphQL schema to not require every asset has a global reward account

0.45, 0.44, 0.43 (23 October 2021)


  • API: Add gRPC endpoint for GlobalRewardPool
  • API: Update GraphQL schema (rewards)
  • Add timestamp to reward payload
  • Add system-tests
  • De-duplicate stake linkings
  • Update to latest proto, go mod tidy and set pendingStake to 0 in nodes
  • Add fields to validators genesis
  • Port code to use last version of proto (layout change)
  • Fix setting current epoch
  • Update to the last version of the proto repository
  • Remove required party filter for TxErr events
  • Update the Vega and proto repository dependencies to use the last version of the withdraw and deposits

Vega Console releases

0.59.0 (19 July 2021)


  • Persist chart state (studies, overlays) in IndexedDB
  • Update feedback text when copying chart image to clipboard
  • Rate limit the estimate order query so we don’t make too many requests while the order state is being updated
  • Add a missing mock for a test to clear test logging
  • Consolidate logic for order cancellation so that the code is more easily shared across different components
  • Improve order types for the deal ticket
  • Improve code coverage for ag-grid tables
  • Tidy up order submission test
  • Improve messaging when tables don’t have data to display
  • Add a client-only field for proposal names
  • Add a component to show epoch information, this won’t be used until the staking UI is implemented
  • Refactors date formatting into a single place for consistency and code re-usability


  • Fix a problem where we weren’t checking that data was returned for market queries in some components
  • Fix an issue where the liquidity provisions table when displayed in a modal had the wrong width
  • Fix a problem where a user was shown the wrong UI after approving deposits, preventing them from being able to deposit
  • Fix a problem where copying a chart image wasn’t working
  • Fix the UI to show the correct state if a user cancels a deposit or withdrawal transaction
  • Fix the font in ag-grid tables
  • Fix an issue where the table UI was flickering when data changed

0.58.0 (5 July 2021)


  • Add tests for market modal
  • Add tests for chart annotations
  • Do not show LP orders in orders list for better performance
  • Add market list grid view
  • View library more responsive for smaller screen sizes
  • Remove inactive markets from workspace creation drop down
  • Adds tests for grid cell renderers
  • Fix market order showing 2 notifications when rejected
  • Move proposals under network settings in view library

0.57.0 (29 June 2021)


  • Add the trade list to the default workspace
  • Change market list component name back to ‘futures’
  • Refactor to ensure party related subscriptions are always active and don’t depend on windows being present
  • Replace table implementations with Ag-Grid tables
  • Refactor how we manage orders in Vega Console by generating a deterministic ID on the client that is unique enough until we can provide real IDs directly to the core
  • Persist chart state in IndexedDB so that if you’ve selected studies or overlays they will be automatically set on load
  • Change ‘No alias’ to ‘Vega key’ for keys which don’t have an alias set
  • Refactors Web3 functionality so as not to use deprecated methods and to improve overall readability of the Web3 code
  • Update golden layout version to get some fixes that allow us to persist chart state
  • Add a guard against capturing unnecessary errors in Sentry when making withdraws or deposits
  • Clean up some dead code
  • Update window settings to allow each window to have specific settings, whilst still providing a way to change the window


  • Fix an issue where Vega Console was assuming it always received data from positions and order queries in the chart data source
  • Stop capturing a Sentry message for when users authentication tokens expire
  • Fix an issue where the estimate order query was getting invalid input data causing the query to error
  • Fix an error if a user selected the initial default ‘Please select’ option in the asset drop down.
  • Fix an issue where titles weren’t being shown in the headers of modal windows

0.56.1 (14 June 2021)


  • Change where Vega Console says ‘contracts’ to ‘futures’


  • Fix bugs in the flash cell component
  • Change flow to go back to wallet key view after alias changed
  • Performance increase, windows rendering too frequently
  • Fix wrong modal being added to workspace when navigating to second modal (e.g. liquidity provisions)
  • Remove order time tracking
  • Add coverage gating
  • Improve proposal container
  • Fix null reference error in some cases on proposals

0.55.0 (4 June 2021)


  • Remove old chart code that is no longer used
  • Add proposals and assets to search results
  • Remove prompt for fake assets
  • Add code splitting for each window
  • Add descriptions for windows
  • Show slippage percentage and volume weighted average price in the deal ticket
  • Align auction price info in the market detail view


  • Fix some styles in the wallet drawer
  • Fix GTT order fee estimates
  • Add test coverage to ensure window title is always set
  • Do not show disabled view in view library

0.54.2 (27 May 2021)


  • Handle null proposals coming back from API
  • Better error messages in proposal form
  • Prompt user to deposit if they do not have an account for an asset
  • Sort workspaces from oldest to newest (left to right)
  • Fix flaky test
  • Fix orders & positions being persisted when switching keys
  • Disable deposit buttons for fake assets on asset details
  • Show market spark lines when market is in auction
  • Fix views being in pick mode when adding new workspace
  • Fix workspace changes not being saved & search not bringing up proposals
  • Upgrade Pennant
  • Copy fixes for Profit & Loss & pick a view
  • Prevent “please select” from causing error in deposit modal

0.53.0 (24 May 2021)


  • Add a prompt to deposit tVOTE tokens if the user doesn’t have any
  • Update Pennant so we get new chart splitting functionality
  • New UI to make discovering different views easier and quicker
  • Add a prompt to connect your wallet if you’re viewing a window which requires it
  • Add estimated margin to the deal ticket, removing logic for showing 0 fees if the order would be a maker and not a taker


  • Fix a visual bug where the liquidity provisions link in the market detail view was not aligned properly
  • Fix alignment of the wallet header title

0.52.0 (20 May 2021)


  • Fix estimate order being called with size of nothing
  • Fix flaky test
  • Remove unnecessary subscription
  • Prompt to deposit from collateral view
  • Liquidity provision deal ticket

0.51.0 (18 May 2021)


  • Update Pennant to the latest version
  • Different sentry capture logic in error link
  • Add single key view in deposits drawer

0.50.0 (17 May 2021)


  • Update schema
  • Internationalise Pennant view strings

0.49.0 (17 May 2021)


  • Change flash cell component to use the web animation API to improve performance
  • New interface for creating additional keys in a Vega wallet
  • Changes to accommodate API changes in core

0.48.0 (11 May 2021)


  • Add fees estimations for the deal ticket
  • Bump Pennant version and supporting fixes
  • New feature allowing you to set an alias for a public key
  • Copy changes in introduction view
  • Align number cells by the decimal place for easier price comparison
  • Add estimated fees to deal ticket

0.47.2 (6 May 2021)

Nice mix in this release! Along with several smaller bug fixes and improvements we’ve made changes to the deposit flow to provide better feedback, provided better feedback about your profit and loss values with regard to fees, and added icons to indicate what network you are connected to in the header, with some extra colour for Fairground!


  • Redirect to
  • Update link in sign message for Fairground
  • Update the introduction view with new content to support Fairground
  • Update Pennant to the latest version
  • Make percentage cells use 5 decimals by default
  • Refactor the deposit and withdrawal flow to use the Ethereum configuration provided by the network parameters rather than hard coded values
  • Add a warning about how fees aren’t currently included in your PNL values in the positions view
  • Filter out margin accounts with a 0 balance from the collateral view
  • Add a different icon in the header depending on what network you are connected to, and we now have a styled yellow header to align with Fairground branding
  • Remove use of the GraphQL function from graphql-tag and instead uses the @apollo/client version.
  • Add proper labels for the network parameter values
  • Persist deal ticket state on a per market basis (as well as per window) so that sensible default values are used if you have already traded on that market
  • Add a link in the wallet drawer footer which allows you open the sign transaction view
  • Improve feedback for approving deposits into Vega
  • Add price monitoring settings and liquidity monitoring parameters to the market detail view


  • Resolve a long standing issue where sometimes a full reset (delete localStorage and indexedDB data) would not work
  • Fix a problem where you were able to delete your last workspace, leaving you with an empty screen
  • Fix an issue where workspaces weren’t being sorted by their creation date
  • Fix broken UI for full screen errors

0.46.0 (20 April 2021)

Now that signing up for a wallet account is in Vega Console, we’ve removed a link that suggests that Discord is the easiest way to sign up for a hosted wallet. Otherwise it’s a collection of small changes.


  • View margin risk overview from the collateral view
  • Improve test data generation
  • Remove Discord link from log in / create account screen
  • Percentage cell now flashes on change

Bug fixes

  • Fix size display in various views
  • Improve error messaging when using an old local wallet with Sign Message
  • Add tests for percentage cell view

0.45.0 & 0.44.0 (14 April 2021)


  • Add Liquidity and Price Monitoring details to Market Details
  • Allow deep linking to specific modals
  • Make scrollbars styling
  • Enable chart changes behind a feature flag
  • On first load, Console no longer creates workspaces for every market
  • Include pending markets in Futures view
  • Improve loading screen
  • Liquidity provisions view now correctly renders some columns as percentages

Bug fixes

  • Fix chart control CSS
  • Change modal URL parameter to view
  • Fix mid price not updating in Market Details view
  • Replace crypto with uuid
  • Fix chart borders when market is displayed in a modal
  • No longer notify for every update due to an LP commitment
  • Improve error handling in Proposals view
  • Refactor how wallet drawer handles URLs

0.43.0 (31 March 2021)


  • Refactor PriceCell component so that how prices are displayed is more consistent
  • Allow users to create their own account on the local or hosted wallet via Console
  • Add a button so that a user can tweet their arbitrarily signed message

Bug fixes

  • Fix a test for the collateral view that would sporadically fail
  • Fix an issue where Console wasn’t detecting the chain ID correctly for non MetaMask providers.

0.42.0 (30 March 2021)

This release contains a collection of small fixes.


  • Link to documentation when unable connect to wallet
  • Update GraphQL schema
  • Deposit & Withdraw views can now be placed in a workspace

Bug fixes

  • Deposit & Withdrawal now only list ERC20 assets
  • Signing utility now shows the base64 signature
  • Liquidity provision view number formatting fixed
  • Proposals view now updates when the current user votes
  • Fix Full Reset button
  • Hide full screen button if it is not supported in the browser

0.41.1 (18 March 2021)


  • Fix vote counting in proposal view
  • Improve handling of incorrect Ethereum network

0.41.0 (17 March 2021)

In this release, you can explore the Collateral view in more detail - seeing all of the accounts for each asset you have. This is useful for checking how much is held for margin, or the balances locked for withdrawal.


  • Add extra details in liquidity provisions view
  • Add expandable details in collateral view

Bug fixes

  • Fix logic for disabling or enabling withdrawal button
  • Fix display of Use Maximum link in deposit form
  • Update GraphQL schema
  • Add more tests for withdrawals

0.40.3 & 0.40.2 (4 March 2021)

Responsive charts! Now when you resize the market view, the price chart will expand to fill available space. We’ve also polished up the futures view and added liquidity parameter information.

Finally, we’ve been hardening up deposits by fixing a couple important bugs and a few smaller edge cases.


  • Sparklines now grow and shrink depending on surrounding width
  • Market detail view has had some minor design changes and liquidity parameters are now displayed

Bug fixes

  • Fixes an issue where Vega Console indicated you already approved deposits for a given asset when actually you hadn’t. Also prevents submitting deposits when you don’t have enough balance
  • Additional checks on your submitted deposit amount
  • Improve user feedback when trying to deposit 0 of an asset

0.40.0 (1 March 2021)

Withdrawals! They’re now enabled. You can withdraw your assets from Vega back across the ERC20 bridge.

Proposals! In the distant past, we had a form tailored to proposing markets. It worked, but we weren’t happy with the workflow, so it got turned off. While we work out what it should look like, we’ve enabled a big text area which can have a JSON proposal pasted in. This isn’t an ideal solution or an end point, but it should make it easier than using the sample API scripts.


  • Add pending withdrawals component
  • Remove backwards compatibility with old asset bridge
  • Enable JSON governance proposal form

Bug fixes Fix typos in wallet messages Limit log noise caused by new workspace selector

0.39.2 (16 February 2021)

This release has a handful of small fixes for some common errors, in particular a confusing UI error when you are using a local wallet server and restart it. This caused the wallet session token stored by Console to become invalid, which it handled poorly. As of this release, instead of appearing to be logged in (and having to clear local storage to ‘log out’), you will automatically be logged out.


  • In Market list, spark lines now show closing price instead of opening

Bug fixes

  • Fix confusing login state at wallet token expiry
  • Fix occasionally empty order rejection reason tool tip
  • Redirect login process to start in certain edge cases

0.39.0 & 0.39.1 (11 February 2021)

Console doesn’t currently support placing pegged orders, but this release improves the display of pegged orders. This release also fixes some issues from a recent testing session around the display of markets that have been proposed but not enacted. Due to an API change in Vega 0.30.0, these were incorrectly shown as in Auction state, and were also shown in the Futures list. These now only appear when they are enacted, and no longer look like they’re in auction.

In the background there is also work on the asset withdrawal process. The UI isn’t currently usable on Testnet, but is making good progress.


  • Update copy: Wallet ID => Username, and fix a typo
  • Add market Code to futures list
  • Not yet enabled: Add withdrawal preparation form
  • Not yet enabled: Add list of withdrawals that are not executed
  • Pegged orders now show reference details in order type column
  • Auction end time is now correctly shown

Bug fixes

  • Disable repeat notifications for pegged order price moves
  • Fix markets in proposal state displaying as in auction

0.38.0 (2 February 2021)

Along with various minor fixes, this release includes a rework of the workspace manager. Instead of tucking your workspaces away in a drop down, we now expose them in the main navigation, with the aim of improving market discoverability and making it easier to switch between them. To complement this we’ve also added the current workspace name to the document title, so if you have multiple tabs open it’ll be easier to find the workspace you are looking for.


  • Disable vote buttons if you don’t have any tVOTE tokens
  • Show a more helpful message if you are using a browser that doesn’t support web3 when trying to make a deposit
  • Adds a createdAt field to workspace objects so we can sort them in a useful way
  • Changes the workspace drop down to display as many workspaces as can fit in the top navigation. This helps to make different markets more discoverable
  • Sets the current workspace title and the current network in the document title

Bug fixes

  • Fix an issue by filtering out null market objects if they are returned by core
  • Converts auction end times from nanoseconds to milliseconds before formatting
  • Fixes an issue where tables would have their columns completely collapsed when dropping them into a workspace from a modal.

0.37.0 (25 January 2021)

This release has a lot of improvements around the Ethereum bridge and wallet workflow. This should be a lot more robust now, as we added error handling for a lot of states in MetaMask that weren’t previously handled well.

Previously, we didn’t use the browser’s address bar for anything. Entering the testnet address loaded Console and that was that. Now, as you move through the wallet stages, you’ll notice the URL changing. While it sounds like a small change, it’s a powerful one - now we can provide deep links to, for example, deposit a specific asset, or just load Console up with the wallet already open, if you’re running a local wallet. This will be expanded in future to include deep links for specific markets. Let us know if there are other views you want to open directly.

Network parameters are configuration values for the Vega network that can be changed via governance. An example is the fees paid on orders - the way this is split up can be changed through a governance vote. Previously there was no way to see these in Console, whereas now the full list and their current values appear in the Network panel.


  • Add URL routing to wallet pages
  • Switch to bignumber library for handling numbers
  • Display network parameters & their current values in the Network view
  • Wallet drawer now closes when you switch key
  • New clearer success state when a deposit completes
  • Add link to Deposit workflow from asset detail view
  • Change wallet view to always show deposit button. Previously it only showed if you had no balance.

Bug fixes

  • Fix mistaken subscription for ALL orders/positions if you are not logged in
  • Fix margin indicator appearing mostly off screen if opened at the screen edge
  • Fix position view to tolerate empty fields better, fixing frequent ‘GraphQL Error’ messages in that view
  • Update market list view to show a - in some fields when a market is in auction
  • Update translation strings in Deposit workflow
  • Improve error handling around web3 connection
  • Disable order submission if you do not have collateral
  • Fix sorting in market list - now it is a to z, consistently
  • Update GraphQL schema to match Vega 0.30.0
  • Remove deprecated feature flags

0.36.4 & 0.36.5 (17 December 2020)

  • Fixes an issue where you were being subscribed to all accounts, if you didn’t have a public key
  • Fixes the initial deposit requiring a refresh to be visible. A subscription was not started until a key had collateral. Now it is.

0.36.3 (15 December 2020)

A previous fix created an issue in the deal ticket which could fail to load due to different fields being selected in Market query on that object. The result was that the deal ticket displayed a spinner forever. Now it doesn’t.

0.36.1 (9 December 2020)

  • Fixes an issue where we are not able to store the current workspace ID because the object store hasn’t been created for users who have already visited the app.

0.36.0 (9 December 2020)


  • Replaces propose market form with a simpler form which allows you to propose with a raw JSON object.
  • Provides a prompt for the user to connect to Console using the reverse proxy if they are trying to connect from http to https
  • Improves display of the deposit flow by not rendering the faucet title whilst a faucet transaction is in progress.
  • Adds a link to the release notes in the Introduction view.
  • Removes duplicated approved amount information during the deposit flow.
  • Adds client side validation for the deposit amount.
  • Stores the currently selected workspace in IndexedDB so that your current workspace is persisted even if you refresh the page.
  • Changes to use the instrument code rather than the instrument name where applicable.

Bug fixes

  • Fixes a problem where the order book wasn’t rendering its buy and sell sides independently of each other. If one side had no data the entire book wouldn’t render.
  • Fixes some display issues that were introduced in a previous release

0.35.0 (3 December 2020)


  • Replaces the pending text in the order list with a spinner
  • Adds Etherscan link component
  • Fixes a text wrapping issue in the wallet drawer title by truncating the wallet name and ID
  • Improves the approval and deposit transaction feedback
  • Adds a link to Etherscan in the asset detail view, and renames asset source to token contract
  • Handles display in wallet when you have 0 balance. Adds links to Ropsten and asset faucet
  • Fixes a punctuation typo in the vote date time
  • Adds a new Intro view, which is shown in the default workspace
  • Refactors the wallet so that the wallet status is always shown
  • Adds a prompt to make a deposit if you don’t have collateral
  • New default workspace
  • Removes propose button from proposal list
  • Adds better error messaging to login form
  • Fetches initial markets from the REST API to build initial workspaces
  • Changes to the wallet login flow
  • Bespoke non-ideal messages for the party component
  • Adds asset info the market detail view
  • Update token contract ABI and bridge contract ABI
  • Update token contract ABI and bridge contract ABI
  • Remove spell check, capitalise and autocorrect attributes from wallet ID input
  • Improve wallet typography
  • Removes hard coded token descriptions

Bug fixes

  • Fixes the market component so that a non ideal window is rendered when the market doesn’t exist
  • Makes market from search layout match the default market layout
  • Makes deposit go to selected key in wallet, not your globally selected key
  • Fixes issue where your balance wouldn’t update in the wallet drawer

0.34.3 (13 November 2020)

Introduces an environment variable to point the deposit interface at different bridge smart contracts. This allows consoles to be configured to deposit to Vega networks pointed at different Ethereum bridges.


  • Improve Good For Auction order rejection message
  • Make Vega Bridge contract address configurable through environment variable

0.34.2 (12 November 2020)

Released primarily to update the nodes that the environment connects to. Also brings along with it a lot of dependency updates and some minor usability improvements.


  • Remove nicenet network, add load balancer to ‘testnet’
  • Update build packages
  • Remove deprecated basename field from markets, ready for Vega 0.38.0
  • Fix obvious search terms not showing correct components

Bug fixes

  • Improve error message when trying to trade with a tainted key
  • Fix Market Proposal form showing an error after proposal in some situations

0.34.1 (30 October 2020)

  • Fix assets with the same name but different IDs from being grouped in the assets view

0.34.0 (30 October 2020)

A collection of small usability fixes. You can now change your vote on a proposal - only your last vote counts, but you can now use Console to change your mind up until voting closes on any proposal. Auction mode is also handled better in market list view, and the header acts much better on smaller screens.


  • Improve resizing of header bar on smaller screens
  • Show a ‘Pending’ state after using Close Position button
  • Always prefix positive open volume with +
  • Render Vote buttons in Proposal details view & enable vote change button
  • Markets in auction mode no longer render irrelevant columns in market lists
  • Asset deposits now confirmed via event bus subscription

Bug fixes

  • Fix spread rendering for auctions
  • Make order book chart scaling consistent
  • Add openingAuctionDuration to market proposal form
  • Handle null market responses

0.33.2 (17 October 2020)

Fix a bug whereby opening a deal ticket by clicking on a price in the order book could result in an order being submitted at an unexpected price, if the price had a comma in it.

0.33.1 (16 October 2020)

0.33.0 bought along compatibility with Vega 0.26.0, which unfortunately broke compatibility with 0.25.1. This release removes the offending field (specifically showing network parameter change proposals) until core 0.26.0 is released.

0.33.0 (16 October 2020)

One of our most requested features (after fewer scrollbars) makes its debut this release - a new button in the Positions window lets you close out a position in one click. There’s also more work around bridged assets and a host of bug fixes, including quite a few around the Proposals list.

Along with those, this release enables the Proposal list and Proposal details views on Testnet. There is not currently a UI for creating proposals enabled, but it’s possible via the APIs.


  • Add asset detail view
  • Make KeyValueTable more semantically correct
  • Add Etherscan link to ERC20 transactions
  • Deposit/Withdraw max uses wallet balance
  • Add Trading Volume to market details view
  • Add Close Position button
  • Add block height to error overlay

Bug fixes

  • Fix occasional ‘Undefined market’ ideal ticket
  • Improve spacing around all views
  • Fix Apollo invariant violation
  • Improve button styling
  • Fix multiple proposals showing the wrong title
  • Update error logging to never log debug messages
  • Use the word parameters instead of params
  • Migrate from UpdateNetwork to UpdateNetworkParameter in proposals query
  • Reduce network requests in Proposals panel

0.32.0 (30 September 2020)

Compatibility release for 0.25.0, released for ETHOnline


  • Add basic web3 support

Bug fixes

  • Remove cumulativeVolume, calculate it locally
  • Text fix around token information
  • Adjust drawer size

0.31.9 (14 September 2020)

Release required to make 0.31.8 compatible with an older version of core that doesn’t have the Auction state fields on market data.

0.31.8 (14 September 2020)

  • Shows an auction icon in the positions and order list if market is in auction mode
  • Shows an auction icon if next to the market name in the market list if in auction mode

0.31.7 (11 September 2020)

More fixes. This time, fixing a bug with the collateral view for users that had traded in multiple markets with the same base asset.

  • Fix calculated Deployed value in collateral view
  • Fix incorrect key shown in asset list

0.31.6 (10 September 2020)

Another collection of small updates.

  • Fix market details view flashing periodically
  • Fix margin visualiser disappearing periodically
  • Remove Market Proposal window from search while it undergoes an update
  • Update wallet asset view
  • Fix wallet asset view

0.31.5 (2 September 2020)


  • Fixes an issue where the propose market form was losing state after an validation was triggered
  • Sorts account data alphabetically by asset symbol. This ensures both the collateral view and collateral shown in the key list is sorted consistently.
  • Shows all assets in when viewing a single key
  • Shows name and ticket in the key list and ensures they are sorted alphabetically.
  • Reverts polling for latest position data.

0.31.4 (1 September 2020)

Completes a partial update of d3 dependencies that broke candlestick chart in 0.31.3.

0.31.3 (1 September 2020)

Improves the display of fees in the market details view, and contains a few tweaks to the updated wallet flow.


  • Format fees in market details as percentages, add total fee row

Bug fixes

  • Fix bug whereby local wallet option was incorrectly displayed when DISABLE_LOCAL_WALLET was set
  • Rename ‘FX Futures’ to ‘Futures’
  • Replace ‘Onboard’ with ‘Onboarded’ in wallet flow
  • Make positions view poll periodically

0.31.2 (30 August 2020)

Typo correction.

0.31.1 (29 August 2020)

Fixes a single Safari specific bug whereby the Wallet panel would open, but be totally empty.

0.31.0 (29 August 2020)

This release contains a lot of bug fixes, and improvements for upcoming functionality - specifically deposits from other chains and governance proposals.

It also introduces a few changes to the default layouts. If you’ve experienced unclosable panels, or My Workspace not working, use the reset toggle in the settings menu to return to the defaults.


  • Add notifications on new proposals and votes
  • Replace existing Wallet menu with a new version based on Blueprint’s panel stack
  • Update default layouts to be 2 panels across the bottom, not 4
  • Remember custom column widths on tables
  • Reduce slow block sensitivity

Bug fixes

  • Remember custom column widths on tables
  • Fix incorrect asset showing in FX Futures panel
  • Fix two bugs in the default layouts that caused unclosable windows and an unusable My Workspace
  • Rename History component to Order history, to clarify what it is
  • Positions no longer show a 0 Average Entry Price when the open volume is 0
  • Fix background colour of search input field in empty windows
  • Replace ‘Key service’ with ‘Wallet’ in translation strings
  • Change slow block message

0.30.1 (17 August 2020)

Fixes an issue introduced previously where queries didn’t have the quoteName field, which is required as a fallback field if assets have been disabled.

0.30.0 (17 August 2020)

  • Feature flag for fees and assets, so Console can release more independently of core
  • Fix to ensure that Console remembers what node you were connected to even if you use the full reset checkbox
  • Adds Loglimit class to limit the number of logs Console sends to Sentry for certain errors that could happen a lot in a short space of time
  • Add a wallet service class to handle networks requests to the wallet
  • Bumped up node version to 0.14.
  • Removed an unnecessary filter condition which relied on deprecated functionality from core
  • Adds all proposals to the proposal list and handles different row titles based on what type of proposal they are
  • Fixes a reference issue in the order toast

0.29.0 (11 August 2020)

  • Changes to the updateOrders function to account for unpredictable order of orders returned by the order subscription
  • Removes depth chart from default layout
  • Replaces the OrderProvider with a NotifProvider component to handle notifications separately and generically, allowing us to create other types of notifications
  • Removes use of reference field as the identifier field for orders, which fixed issues when using a script to place orders
  • Changes to accommodate the new asset API
  • Change updateOrder function to ensure no stale orders

0.28.0 (10 August 2020)

  • Uses the average block time values and reduces the threshold for displaying the slow block time message
  • Adds proper usage of the governance feature flag, so that proposing markets and viewing proposals isn’t available on Testnet

0.27.2 (31 July 2020)

  • Removes market proposals from search whilst Console waits for APIs to settle
  • Adjust form CSS so text input is visible in key manager drawer

0.27.1 (29 July 2020)

  • Removes fees from the market detail view

0.27.0 (27 July 2020)


  • Log a message in Sentry if an order is left hanging
  • Added fees and open interest to info in the market details component
  • Avoid logging to Sentry if Vega is down
  • Add vote buttons for a proposal view
  • New design for a non ideal window, and an error overlay component
  • Connection status new design

Bug fixes

  • Fix various typos and improvements
  • Fixes an issue where changing public key wasn’t clearing your list of positions

0.26.0 (18 June 2020)

Changes to accommodate updates made to the core schema.graphql, which renamed certain enum values. For example OrderStatus.STATUS_ACTIV was reverted back to OrderStatus.Active. Also minParticipationStake was removed from the ProposalTerms type.

0.25.0 (18 June 2020)

This release contains various fixes, and updates Console to be compatible with widespread but otherwise minor API changes in Vega core version 0.20.0.

Bug fixes

  • Connection status bar would not show up when the block height stalled
  • Improve behaviour when user has not selected a key
  • Trades are no longer cached, improving memory usage
  • Focuses input in a selected tab
  • Compatibility with core 0.21.0 - update many enums
  • Report more errors than before

0.24.0 & 0.24.1 (5 June 2020)

Features in this release focus on governance proposals, but they’re not visible in testnet because core governance work is not finished. Market order prices are now showing up correctly again, after changes in the API made them show as 0. Error messages displayed in Console as well as behind the scenes have also been improved.


  • Added new governance proposal details view, and you can find proposals by using the search query.
  • Updated new market proposal form by reordering fields and making the whole thing shorter, so it’s easier to use.

Bug fixes

  • Fixed incorrect title field on windows in new workspaces.
  • Fixed market order price showing as 0 in the order list.
  • Made error messages for login failures more vague, but also more correct.
  • Made font size changes for visual consistency and to tidy up the code.
  • Improve error handling so error reporting is clearer.
  • Fixes the package.json version number in 0.24.0

0.23.0 (27th May 2020)

This is a minor release to update the layouts of the default workspaces.


  • Improved single market workspace layout
  • Improved multi market workspace layout

0.22.4 (20 May 2020)

This is a patch release to fix a test that was broken in a previous release.

0.22.3 (20 May 2020)

This release brings improvements to the toast notifications added last release, and brings back the ‘Reset’ switch on the loading page if something goes wrong while loading. We hope you don’t need it, but if you do - it’s back.


  • Window settings
  • Toast notifications now stack when they happen close together
  • Improve toast labelling
  • Long public keys are now intelligently truncated

Bug fixes

  • Add network switcher to loading page
  • Various text improvements
  • The key manager drawer would sometimes list the wrong key value
  • Improve error logging
  • Logging in to a wallet with no keys will no longer cause an error

0.22.2 (5 May 2020)

This release introduces order toasts that notify you of changes and fills to orders.


  • Changes to orders status and fills to orders will show a toast message in the top left of the screen

Bug fixes

  • Subscribe functions are not memorised using useCallback to ensure that renders do not cause unsubscribing and resubscribing
  • The same as above, but specifically for the chart which needed a different implementation as it’s a class component
  • Prevents placing orders with a tainted key by disabling the buy/sell buttons

0.22.1 (30 April 2020)

This minor release fixes issues found while testing 0.22.0 & 0.21.2, primarily edge cases while handling authentication tokens with Vega Wallet.


  • The phrases ‘Workspace’ and ‘Layout’ were used inconsistently. It’s all ‘Workspace’ now.
  • Firefox Private Browsing can now use Console. Workspaces will not be saved, as expected.

Bug fixes

  • Trading with a tainted key left orders apparently in a pending state forever
  • Improve error logging for GraphQL errors
  • Remove reference to manifest.json that didn’t exist
  • Log out if token fetching fails on start up

0.22.0 (28 April 2020)

This release updates a major dependency: Apollo 3. This gives us a huge performance increase, and addresses the console slowing down over time.


  • Remove mono repo, separate forked Golden Layout to a separate repo
  • Update to Apollo 3 beta
  • Remove preset servers, allow free form node entry

Bug fixes

  • Fix a bug where the margin requirements view could fail to render
  • Fix margin visualiser appearing too close to the bottom of the screen
  • Fix some views appearing squashed

0.21.2 (15 April 2020)

A multitude of small fixes for the wallet/key management interface. Mostly language fixes, but the ability to create a new keypair is currently disabled.


  • Replace wallet server URLs with labels
  • Reword ‘Disconnect’ as ‘Log out’
  • Language consistency fixes
  • Add more guidance
  • Adjust font size of key list title
  • Temporarily disable ‘create key pair’ on remote hosts

0.21.1 (8 April 2020)


  • Improve Market Depth subscription behaviour
  • Add a specific error message for when a wallet does not exist on a selected server

0.21.0 (7 April 2020)

This release introduces the new authentication system. This adds full support for the new Vega Wallet service, including:

  • Multiple key pairs per user account
  • Switch between key pairs to trade as a different party on the network
  • Assign aliases to key pairs

This is all hosted in a new key drawer that can be accessed from the navigation bar.

0.20.0 (13 March 2020)


  • Hide the network switch in production and show a reset button instead

Bug fixes

  • Fix reverted fills query to use old buyer and seller fields which expect a string, rather than a party type

0.19.0 (26 February 2020)


  • New default layout


  • Input field has a masked value.
  • Make market depth chart Y-axis start at zero
  • Chart time selector should not appear on hover
  • Table column resizing improvements
  • Remove legacy windowGroupId field
  • Improved branding by replacing the loading splash, logo, and favicon

0.3.1 (11 June 2019)


  • Request market list on start up and remove hard-coded market IDs
  • Move ErrorBoundary for windows

Bug fixes

  • Fills table incorrectly reversed sorting on every update
  • Fix tooltip for timestamp cell
  • Discard candles created at market start up
  • Fix cropping on the bottom of the trades view

0.3.0 (23 May 2019)

Contains a variety of different improvements and bug fixes with the overall aim of hardening up for nicenet.


  • Changes the interval options in the interval drop down to be sorted by the interval length and not lexically
  • Updated our server config with new names for devnet, stagnet, testnet, nicenet
  • Added ConnectionStatus, Settings, WorkspaceManager and NonIdealWindow to storybook
  • Create candles cache item if candles subscription is called before the candle query
  • Changes the component picker to allow you to select a component first and then a window group/market if that component requires one
  • A temporary change to provide a window group for each market, enabling a user to actually connect to other markets and not just their default one
  • Adds the current market name to window tab titles where required
  • Disable the network switcher in production mode
  • Market details component. A list of all markets and some of their data such as last price, best bid and best offer

Bug fixes

  • Core had changed the since variable for our candles query from a timestamp to a RFC3339 date string
  • Typing in long numbers resulted in them being displayed in scientific notation which then caused NaN or Infinity values. LoadValidators: do not return an empty validator set
  • Golden Layout was occasionally showing an error when first loading the application. This is due to golden layout losing track of the active item in a stack when opening and closing tabs. This change was made in our fork of golden layout
  • Fixes an issue where you could put decimals places into the deal ticket inputs even if the market specified 0 decimal places


  • Updated Apollo client to use new built-in state management


Initial commit