Skip to content

vegaprotocol/priceproxy

Repository files navigation

Price Proxy

priceproxy fetches prices periodically from sources as listed in its config file. It provides a simple REST API for fetching prices.

Vega trading bots use the price proxy to place orders with real-world prices while avoiding hitting API rate limits on upstream price sources. The bots can then provide liquidity on Testnet, and help make the charts look realistic.

Install - from a release

See the releases page.

Install - from source

Either run go get:

go get github.com/vegaprotocol/priceproxy/cmd/priceproxy@latest

Or clone the repository:

git clone https://github.com/vegaprotocol/priceproxy.git
cd priceproxy
go install ./cmd/priceproxy

A compiled priceproxy binary should now be in $GOPATH/bin.

See also:

  • Makefile - contains useful commands for running builds, tests, etc.

Running

priceproxy -config /path/to/your/config.yml

Config

Save the following as config.yml:

server:
  listen: ":8080"
  logformat: text  # json, text
  loglevel: info  # debug, info, warn, error, fatal
  env: prod  # dev, prod

sources:

  - name: bitstamp
    sleepReal: 60  # seconds
    sleepWander: 2  # seconds
    url:
      scheme: https
      host: www.bitstamp.net
      path: "/api/v2/ticker/{base}{quote}/"
      # "{base}" and "{quote}" are replaced at runtime.

prices:

  - source: bitstamp
    base: BTC
    quote: USD
    factor: 1.0
    wander: true

Supported price sources

The following price sources are currently supported. Pull requests are gratefully received for more sources.

priceproxy API Endpoints

Method Location Description
GET /prices?params... List some/all prices
GET /sources List all sources
GET /sources/[name string] List one source
GET /status Resturn status=true

Query parameters for GET /prices

  • source string: Limit the results to ones with the given source.
  • base string: Limit the results to ones with the given base.
  • quote string: Limit the results to ones with the given quote.
  • wander bool: Limit the results to ones with the given wander setting.

Licence

Distributed under the MIT License. See LICENSE for more information.