Skip to main content

Vitex API Python Package

Project description

Vitex-API-Python

ViteX API enables users to complete trading operations on ViteX decentralized exchange without exposing private keys. ViteX API is categorized into trading API and market trends API. Trading API (also known as private API) requires authentication and authorization, and provides functions such as order placement and cancellation. Market trends API (also known as public API) provides market data, information query, etc. Market trends API can be accessed publicly without authentication.

Installation

Use the package manager pip to install vitex_api.

pip install vitex_api

Usage

from vitex_api_pkg import VitexRestApi
from vitex_api_pkg import VitexWebSocket

Create an Object of Vitex API Class

vitexrestapi = VitexRestApi(key, signature)
vitexwebsocket = VitexWebSocket(clientId, opType, topics)

API Response

API response is returned in JSON.

HTTP code:

HTTP 200 API returned successfully

HTTP 4XX Wrong API request

HTTP 5XX Service error

Response format:

Key Value
code 0 - success. An error code is returned if the API request failed
msg Detailed error message
data Return data

Example:

{
  "code": 1,
  "msg": "Invalid symbol",
  "data": {}
}

Error code:

0 API returned successfully

1 General error - view the specific error message in msg field.

1001 Too frequent request - request exceeds limit.

1002 Invalid parameter - this may include invalid timestamp, wrong order price, invalid amount, order too small, invalid market, insufficient permission, symbol not exist, etc.

1003 Network - network jam, network broken, insufficient quota and so on.

1004 Other failure - such as attempting to cancel an order of other address, attempting to cancel an order already filled, order status exception

1005 Service error - unexpected API error

1006 Minimum order quantity not satisfied - order quantity doesn't reach the minimal requirement in the market

1007 Insufficient Exchange Balance - user's balance in the exchange is not enough

Data Definition

#Order Status

Code Status Description
0 Unknown Status unknown
1 Pending Request Order submitted. A corresponding request transaction has been created on the blockchain
2 Received Order received by ViteX smart contract. Not yet dispatched into matching engine
3 Open Order unfilled
4 Filled Order completely filled
5 Partially Filled Order partially filled
6 Pending Cancel Cancel order request submitted. A corresponding request transaction has been created on the blockchain
7 Cancelled Order cancelled
8 Partially Cancelled Order partially cancelled (order is partially filled and then cancelled)
9 Failed Order failed
10 Expired Order expired

#Order Type

Code Status Description
0 Limit Order Limit Order
1 Market Order Market Order (not supported at present)

#Side

Code Status Description
0 Buy Order Buy
1 Sell Order Sell

#Time In Force

Code Status Description
0 GTC - Good till Cancel Place an order and wait for it to be fully filled or cancelled
1 IOC - Immediate or Cancel Place an order and immediately cancel unfilled (not supported at present)
2 FOK - Fill or Kill Place an order only when it can be fully filled (not supported at present)

Private REST API

Place Order (test)

Test placing order. The request will not be submitted to exchange. This API is generally used to verify that the signature is correct.

res = vitexrestapi.place_order_test(symbol = None, amount = None, price = None, side = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, ETH-000_BTC-000
amount STRING Order amount (in trade token)
price STRING Order price
side INT Buy - 0 , Sell - 1

Response:

{
  "code": 0,
  "msg": "ok",
  "data": null
}

Place Order


res = vitexrestapi.place_order(symbol = None, amount = None, price = None, side = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, ETH-000_BTC-000
amount STRING Order amount (in trade token)
price STRING Order price
side INT uy - 0 , Sell - 1

Response:

Name Type Description
symbol STRING Trading pair name
orderId STRING Order ID
status INTEGER Order status

{
  "code": 0,
  "msg": "ok",
  "data": {
    "symbol": "VX_ETH-000",
    "orderId": "c35dd9868ea761b22fc76ba35cf8357db212736ecb56399523126c515113f19d",
    "status": 1
  }
}

Cancel Order

res = vitexrestapi.cancel_order(symbol = None, orderId = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, ETH-000_BTC-000
orderId STRING Order ID

Response:

Name Type Description
symbol STRING Trading pair name
orderId STRING Order ID
cancelRequest STRING Cancel request ID
status INTEGER Order status
{
  "code": 0,
  "msg": "ok",
  "data": {
    "symbol": "VX_ETH-000",
    "orderId": "c35dd9868ea761b22fc76ba35cf8357db212736ecb56399523126c515113f19d",
    "cancelRequest": "2d015156738071709b11e8d6fa5a700c2fd30b28d53aa6160fd2ac2e573c7595",
    "status": 6
  }
}

Cancel All Order

res = vitexrestapi.cancel_all_order(symbol = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, ETH-000_BTC-000

Response:

Name Type Description
symbol STRING Trading pair name
orderId STRING Order ID
cancelRequest STRING Cancel request ID
status INTEGER Order status
{
  "code": 0,
  "msg": "ok",
  "data": [
    {
      "symbol": "VX_ETH-000",
      "orderId": "de185edae25a60dff421c1be23ac298b121cb8bebeff2ecb25807ce7d72cf622",
      "cancelRequest": "355b6fab007d86e7ff09b0793fbb205e82d3880b64d948ed46f88237115349ab",
      "status": 6
    },
    {
      "symbol": "VX_ETH-000",
      "orderId": "7e079d4664791207e082c0fbeee7b254f2a31e87e1cff9ba18c5faaeee3d400a",
      "cancelRequest": "55b80fe42c41fa91f675c04a8423afa85857cd30c0f8878d52773f7096bfac3b",
      "status": 6
    }
  ]
}

Public REST API

Get Order Limit

Get minimum order quantity for all markets

res = vitexrestapi.get_order_limit()

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
      "minAmount": {
          "BTC-000": "0.0001",
          "USDT-000": "1",
          "ETH-000": "0.01"
      },
      "depthStepsLimit": {}
  }
}

Get All Tokens

res = vitexrestapi.get_all_tokens(category = None, tokenSymbolLike = None, offset = None, limit = None)

Parameters:

Name Type Description
category STRING Token category, [ quote , all ], default all
tokenSymbolLike STRING Token symbol. For example, VITE . Fuzzy search supported.
offset INTEGER Search starting index, starts at 0 , default 0
limit INTEGER Search limit, max 500 , default 500
{
  "code": 0,
  "msg": "ok",
  "data": [
    {
      "tokenId": "tti_322862b3f8edae3b02b110b1",
      "name": "BTC Token",
      "symbol": "BTC-000",
      "originalSymbol": "BTC",
      "totalSupply": "2100000000000000",
      "owner": "vite_ab24ef68b84e642c0ddca06beec81c9acb1977bbd7da27a87a",
      "tokenDecimals": 8,
      "urlIcon": null
    }
  ]
}

Get Token Detail

res = vitexrestapi.get_token_detail(tokenSymbol = None, tokenId = None)

Parameters:

Name Type Description
tokenSymbol STRING Token symbol. For example, VITE
tokenId STRING Token id. For example, tti_5649544520544f4b454e6e40

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "tokenId": "tti_322862b3f8edae3b02b110b1",
    "name": "BTC Token",
    "symbol": "BTC-000",
    "originalSymbol": "BTC",
    "totalSupply": "2100000000000000",
    "publisher": "vite_ab24ef68b84e642c0ddca06beec81c9acb1977bbd7da27a87a",
    "tokenDecimals": 8,
    "tokenAccuracy": "0.00000001",
    "publisherDate": null,
    "reissue": 2,
    "urlIcon": null,
    "gateway": null,
    "website": null,
    "links": null,
    "overview": null
  }
}

Get Listed Tokens

Get tokens that are already listed in specific market

res = vitexrestapi.get_listed_tokens(quoteTokenSymbol = None)

Parameters:

Name Type Description
quoteTokenSymbol STRING Quote token symbol. For example, VITE

Response:

{
  "code": 0,
  "msg": "ok",
  "data": [
    {
      "tokenId": "tti_c2695839043cf966f370ac84",
      "symbol": "VCP"
    }
  ]
}

Get Unlisted Tokens

Get tokens that are not yet listed in specific market

res = vitexrestapi.get_unlisted_tokens(quoteTokenSymbol = None)

Parameters:

Name Type Description
quoteTokenSymbol STRING Quote token symbol. For example, VITE

Response:

{
  "code": 0,
  "msg": "ok",
  "data": [
    {
      "tokenId": "tti_2736f320d7ed1c2871af1d9d",
      "symbol": "VTT"
    }
  ]
}

Get Trading Pair

Get trading pair in detail

res = vitexrestapi.get_trading_pair(symbol = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, GRIN-000_BTC-000

Response:

   "code": 0,
      "msg": "ok",
      "data": {
          "symbol": "GRIN-000_BTC-000",
          "tradingCurrency": "GRIN-000",
          "quoteCurrency": "BTC-000",
          "tradingCurrencyId": "tti_289ee0569c7d3d75eac1b100",
          "quoteCurrencyId": "tti_b90c9baffffc9dae58d1f33f",
          "tradingCurrencyName": "Grin",
          "quoteCurrencyName": "Bitcoin",
          "operator": "vite_4c2c19f563187163145ab8f53f5bd36864756996e47a767ebe",
          "operatorName": "Vite Labs",
          "operatorLogo": "https://token-profile-1257137467.cos.ap-hongkong.myqcloud.com/icon/f62f3868f3cbb74e5ece8d5a4723abef.png",
          "pricePrecision": 8,
          "amountPrecision": 2,
          "minOrderSize": "0.0001",
          "operatorMakerFee": 5.0E-4,
          "operatorTakerFee": 5.0E-4,
          "highPrice": "0.00007000",
          "lowPrice": "0.00006510",
          "lastPrice": "0.00006682",
          "volume": "1476.37000000",
          "baseVolume": "0.09863671",
          "bidPrice": "0.00006500",
          "askPrice": "0.00006999",
          "openBuyOrders": 27,
          "openSellOrders": 42
      }
}

Get All Trading Pairs

res = vitexrestapi.get_all_trading_pairs(offset = None, limit = None)

Parameters:

Name Type Description
offset INTEGER Search starting index, starts at 0 , default 0
limit INTEGER Search limit, max 500 , default 500

Response:

{
  "code": 0,
  "msg": "ok",
  "data": [
    {
      "symbol": "BTC-000_USDT",
      "tradeTokenSymbol": "BTC-000",
      "quoteTokenSymbol": "USDT-000",
      "tradeToken": "tti_322862b3f8edae3b02b110b1",
      "quoteToken": "tti_973afc9ffd18c4679de42e93",
      "pricePrecision": 8,
      "quantityPrecision": 8
    }
  ]
}

Get Order

res = vitexrestapi.get_order(address = None, orderId = None)

Parameters:

Name Type Description
address STRING User's account address (not delegation address)
orderId STRING Order id

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "address": "vite_228f578d58842437fb52104b25750aa84a6f8558b6d9e970b1",
    "orderId": "0dfbafac33fbccf5c65d44d5d80ca0b73bc82ae0bbbe8a4d0ce536d340738e93",
    "symbol": "VX_ETH-000",
    "tradeTokenSymbol": "VX",
    "quoteTokenSymbol": "ETH-000",
    "tradeToken": "tti_564954455820434f494e69b5",
    "quoteToken": "tti_06822f8d096ecdf9356b666c",
    "side": 1,
    "price": "0.000228",
    "quantity": "100.0001",
    "amount": "0.02280002",
    "executedQuantity": "100.0000",
    "executedAmount": "0.022800",
    "executedPercent": "0.999999",
    "executedAvgPrice": "0.000228",
    "fee": "0.000045",
    "status": 5,
    "type": 0,
    "createTime": 1586941713
  }
}

Get Open Order

Get orders that are unfilled or partially filled.

res = vitexrestapi.get_open_order(address = None, symbol = None, quoteTokenSymbol = None, tradeTokenSymbol = None, offset = None, limit = None, total = None)

Parameters:

Name Type Description
address STRING User's account address (not delegation address)
symbol STRING Trading pair name. For example, GRIN-000_BTC-000
quoteTokenSymbol STRING Quote token symbol. For example, BTC-000
tradeTokenSymbol STRING Trade token symbol. For example, GRIN-000
offset INTEGER Search starting index, starts at 0 , default 0
limit INTEGER Search limit, default 30 , max 100
total INTEGER Include total number searched in result? 0 - not included, 1 - included. Default is 0 , in this case total=-1 in response

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "order": [
      {
        "address": "vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee",
        "orderId": "5379b281583bb17c61bcfb1e523b95a6c153150e03ce9db35f37d652bbb1b321",
        "symbol": "BTC-000_USDT-000",
        "tradeTokenSymbol": "BTC-000",
        "quoteTokenSymbol": "USDT-000",
        "tradeToken": "tti_322862b3f8edae3b02b110b1",
        "quoteToken": "tti_973afc9ffd18c4679de42e93",
        "side": 0,
        "price": "1.2000",
        "quantity": "1.0000",
        "amount": "1.20000000",
        "executedQuantity": "0.0000",
        "executedAmount": "0.0000",
        "executedPercent": "0.0000",
        "executedAvgPrice": "0.0000",
        "confirmations": null,
        "fee": "0.0000",
        "status": 3,
        "type": 0,
        "createTime": 1587906622
      }
    ]
  }
}

Get Orders

res = vitexrestapi.get_orders(address = None, symbol = None, quoteTokenSymbol = None, tradeTokenSymbol = None, startTime = None, endTime = None, side = None, status = None, offset = None, limit = None, total = None)

Parameters:

Name Type Description
address STRING User's account address (not delegation address)
symbol STRING Trading pair name. For example, GRIN-000_BTC-000
quoteTokenSymbol STRING Quote token symbol. For example, BTC-000
tradeTokenSymbol STRING Trade token symbol. For example, GRIN-000
startTime LONG Start time (s)
endTime LONG End time (s)
side INTEGER Order side. 0 - buy, 1 - sell
status INTEGER Order status, valid in [ 0-10 ]. 3 , 5 - returns orders that are unfilled or partially filled; 7 , 8 - returns orders that are cancelled or partially cancelled
offset INTEGER Search starting index, starts at 0 , default 0
limit INTEGER Search limit, default 30 , max 100
total INTEGER Include total number searched in result? 0 - not included, 1 - included. Default is 0 , in this case total=-1 in response

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "order": [
      {
        "address": "vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee",
        "orderId": "0dfbafac33fbccf5c65d44d5d80ca0b73bc82ae0bbbe8a4d0ce536d340738e93",
        "symbol": "VX_ETH-000",
        "tradeTokenSymbol": "VX",
        "quoteTokenSymbol": "ETH-000",
        "tradeToken": "tti_564954455820434f494e69b5",
        "quoteToken": "tti_06822f8d096ecdf9356b666c",
        "side": 1,
        "price": "0.000228",
        "quantity": "100.0001",
        "amount": "0.02280002",
        "executedQuantity": "100.0000",
        "executedAmount": "0.022800",
        "executedPercent": "0.999999",
        "executedAvgPrice": "0.000228",
        "fee": "0.000045",
        "status": 5,
        "type": 0,
        "createTime": 1586941713
      }
    ],
    "total": -1
  }
}

Get 24hr Ticker Price Changes

res = vitexrestapi.get_24hr_ticker_price_changes(symbol = None, quoteTokenSymbol = None)

Parameters:

Name Type Description
symbols STRING Trading pairs, split by ","
quoteTokenSymbol STRING Quote token symbol. For example, USDT-000 . Returns all pairs if not present

Response:

{
  "code": 0,
  "msg": "ok",
  "data": [
    {
      "symbol":"BTC-000_USDT-000",
      "tradeTokenSymbol":"BTC-000",
      "quoteTokenSymbol":"USDT-000",
      "tradeToken":"tti_b90c9baffffc9dae58d1f33f",
      "quoteToken":"tti_80f3751485e4e83456059473",
      "openPrice":"7540.0000",
      "prevClosePrice":"7717.0710",
      "closePrice":"7683.8816",
      "priceChange":"143.8816",
      "priceChangePercent":0.01908244,
      "highPrice":"7775.0000",
      "lowPrice":"7499.5344",
      "quantity":"13.8095",
      "amount":"104909.3499",
      "pricePrecision":4,
      "quantityPrecision":4,
      "openTime":null,
      "closeTime":null
    }
  ]
}

Get Order Book Ticker

Get current best price/qty on the order book for a trading pair

res = vitexrestapi.get_order_book_ticker(symbol = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, GRIN-000_VITE

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "symbol": "BTC-000_USDT-000",
    "bidPrice": "7600.0000",
    "bidQuantity": "0.7039",
    "askPrice": "7725.0000",
    "askQuantity": "0.0001",
    "height": null
  }
}

Get Trade Summary

Get trade records in summary

res = vitexrestapi.get_trade_summary(symbol = None, limit = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, GRIN-000_VITE
limit INTEGER Search limit, default 500

Response:

{
  "code": 0,
  "msg": "ok",
  "data": [
    {
        "timestamp": 1588214534000,
        "price": "0.024933",
        "amount": "0.0180",
        "side": 0
    },
    {
        "timestamp": 1588214364000,
        "price": "0.024535",
        "amount": "0.0127",
        "side": 0
    }
  ]
}

Get Trade Records

Get trade records in detail

res = vitexrestapi.get_trade_records(symbol = None, orderId = None, startTime = None, endTime = None, side = None, offset = None, limit = None, total = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, GRIN-000_VITE
orderId INTEGER Order id
startTime LONG Start time (s)
endTime LONG End time (s)
side INTEGER Order side. 0 - buy, 1 - sell
offset INTEGER Search starting index, starts at 0 , default 0
limit INTEGER Search limit, default 30 , max 100
total INTEGER Include total number searched in result? 0 - not included, 1 - included. Default is 0 , in this case total=-1 in response

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "height": null,
    "trade": [
      {
        "tradeId": "d3e7529de05e94d247a4e7ef58a56b069b059d52",
        "symbol": "VX_ETH-000",
        "tradeTokenSymbol": "VX",
        "quoteTokenSymbol": "ETH-000",
        "tradeToken": "tti_564954455820434f494e69b5",
        "quoteToken": "tti_06822f8d096ecdf9356b666c",
        "price": "0.000228",
        "quantity": "0.0001",
        "amount": "0.00000002",
        "time": 1586944732,
        "side": 0,
        "buyFee": "0.00000000",
        "sellFee": "0.00000000",
        "blockHeight": 260
      }
    ],
    "total": -1
  }
}

Get Order Book Depth

res = vitexrestapi.get_order_book_depth(symbol = None, limit = None, precision = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, GRIN-000_VITE
limit INTEGER Search limit, max 100 , default 100
precision INTEGER Price Precision
{
    "code": 0,
    "msg": "ok",
    "data": {
      "timestamp": 1588170501936,
      "asks": [
        [
            "0.025750",
            "0.0323"
        ],
        [
            "0.026117",
            "0.0031"
        ]
      ],
      "bids": [
        [
            "0.024820",
            "0.0004"
        ],
        [
            "0.024161",
            "0.0042"
        ]
      ]
    }
  }

Get Klines/Candlestick bars

res = vitexrestapi.get_klines_candlestick_bars(symbol = None, interval = None, limit = None, startTime = None, endTime = None)

Parameters:

Name Type Description
symbol STRING Trading pair name. For example, GRIN-000_VITE
interval STRING Interval, [ minute , hour , day , minute30 , hour6 , hour12 , week ]
limit INTEGER Search limit, max 1500 , default 500
startTime LONG Start time (s)
endTime LONG End time (s)

Response:

Name Type Description
t LONG Timestamp
c STRING Close price
p INTEGER Open price
h LONG Highest price
l LONG Lowest price
v LONG Trade volume
{
  "code": 0,
  "msg": "ok",
  "data": {
    "t": [
      1554207060
    ],
    "c": [
      1.0
    ],
    "p": [
      1.0
    ],
    "h": [
      1.0
    ],
    "l": [
      1.0
    ],
    "v": [
      12970.8
    ]
  }
}

Get Deposit-Withdrawal Records

res = vitexrestapi.get_deposit_withdrawal_records(address = None, tokenId = None, offset = None, limit = None)

Parameters:

Name Type Description
address STRING Account address
tokenId STRING Token id. For example, tti_5649544520544f4b454e6e40
offset INTEGER Search starting index, starts at 0 , default 0
limit INTEGER Search limit, max 100 , default 100

Response:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "record": [
      {
        "time": 1555057049,
        "tokenSymbol": "VITE",
        "amount": "1000000.00000000",
        "type": 1
      }
    ],
    "total": 16
  }
}

Get Exchange Rate

res = vitexrestapi.get_exchante_rate(tokenSymbols = None, tokenIds = None)

Parameters:

Name Type Description
tokenSymbols STRING Trading pairs, split by ",". For example, VITE,ETH-000
tokenIds STRING Token ids, split by ",". For example, tti_5649544520544f4b454e6e40,tti_5649544520544f4b454e6e40

Response:

{
  "code": 0,
  "msg": "ok",
  "data": [
    {
      "tokenId": "tti_5649544520544f4b454e6e40",
      "tokenSymbol": "VITE",
      "usdRate": 0.03,
      "cnyRate": 0.16
    }
  ]
}

Get USD-CNY Rate

res = vitexrestapi.get_usd_cny_rate()

Parameters: None

Response:

{
  "code": 0,
  "msg": "ok",
  "data": 6.849
}

Get Exchange Balance

res = vitexrestapi.get_exchante_balance(address = None)

Parameters:

Name Type Description
address STRING Account address

Response:

Name Type Description
available STRING Available balance
locked STRING Balance locked by open order
{
  "code": 0,
  "msg": "ok",
  "data": {
    "VX": {
      "available": "0.00000000",
      "locked": "0.00000000"
    },
    "VCP": {
      "available": "373437.00000000",
      "locked": "0.00000000"
    },
    "BTC-000": {
      "available": "0.02597393",
      "locked": "0.13721639"
    },
    "USDT-000": {
      "available": "162.58284100",
      "locked": "170.40459600"
    },
    "GRIN-000": {
      "available": "0.00000000",
      "locked": "0.00000000"
    },
    "VITE": {
      "available": "30047.62090072",
      "locked": "691284.75633290"
    },
    "ETH-000": {
      "available": "1.79366977",
      "locked": "7.93630000"
    }
  }
}

Get Trade Mining Info

Get the current cycle's trade mining pool size and real-time fees accumulated

res = vitexrestapi.get_trade_mining_info()

Response:

{
    "code": 0,
    "msg": "ok",
    "data": {
        "tradePoolVx": {
            "1": "6005.736536774939954301",
            "2": "6005.736536774939954301",
            "3": "6005.736536774939954301",
            "4": "6005.736536774939954301"
        },
        "tradePoolFee": {
            "1": "17769.748909914626699977",
            "2": "1.267967346417481080",
            "3": "0.03045706",
            "4": "299.338260"
        }
    }
}

Get Server Time

res = vitexrestapi.get_server_time()
res = vitexrestapi.get_server_time_stamp()

Response:

{
  "code": 0,
  "msg": "ok",
  "data": 1559033445000
}

###WebSocket API

websocketapi = WebSocketApi(clientId, opType, topics)
res = websocketapi.response()

Definition of op_type

sub: subscribe

un_sub: un-subscribe

ping: heartbeat

pong: server acknowledgement

push: push message to client

Topic List

Support single and multiple topic subscriptions, separated by ",". For example, topic1,topic2

Topic Description Message
order.$address Order update Order
market.$symbol.depth Depth data update Depth
market.$symbol.trade Trade data update Trade
market.$symbol.tickers Market pair statistics update TickerStatistics
market.quoteToken.$symbol.tickers Quote token statistics update TickerStatistics
market.quoteTokenCategory.VITE.tickers Quote token category statistics update TickerStatistics
market.quoteTokenCategory.ETH.tickers Quote token category statistics update TickerStatistics
market.quoteTokenCategory.USDT.tickers Quote token category statistics update TickerStatistics
market.quoteTokenCategory.BTC.tickers Quote token category statistics update TickerStatistics
market.$symbol.kline.minute 1-minute kline update Kline
market.$symbol.kline.minute30 30-minute kline update Kline
market.$symbol.kline.hour 1-hour kline update Kline
market.$symbol.kline.day 1-day kline update Kline
market.$symbol.kline.week 1-week kline update Kline
market.$symbol.kline.hour6 6-hour kline update Kline
market.$symbol.kline.hour12 12-hour kline update Kline

JSON Message

#Message Definitions

Order

Definition

// order id
private String oid;
// symbol
private String s;
// trade token symbol
private String ts;
// quote token symbol
private String qs;
// trade tokenId
private String tid;
// quote tokenId
private String qid;
// side
private Integer side;
// price
private String p;
// quantity
private String q;
// amount
private String a;
// executed quantity
private String eq;
// executed amount
private String ea;
// executed percentage
private String ep;
// executed average price
private String eap;
// fee
private String f;
// status
private Integer st;
// type
private Integer tp;
// create time
private Long ct;
// address
private String d;

Example

Subscribe:

{
  "clientId":"test",
  "opType":"sub",
  "topics":"order.vite_cc392cbb42a22eebc9136c6f9ba416d47d19f3be1a1bd2c072"
}

Response:

{
  "message":{
    "a":"13.72516176",
    "ct":1588142062,
    "d":"vite_cc392cbb42a22eebc9136c6f9ba416d47d19f3be1a1bd2c072",
    "ea":"13.7251",
    "eap":"0.1688",
    "ep":"1.0000",
    "eq":"81.3102",
    "f":"0.0308",
    "oid":"b0e0e20739c570d533679315dbb154201c8367b6e23636b6521e9ebdd9f8fc0a",
    "p":"0.1688",
    "q":"81.3102",
    "qid":"tti_80f3751485e4e83456059473",
    "qs":"USDT-000",
    "s":"VX_USDT-000",
    "side":0,
    "st":2,
    "tid":"tti_564954455820434f494e69b5",
    "tp":0,
    "ts":"VX"
  }
}

Trade

Definition

// tradeId
private String id;
// symbol
private String s;
// trade token symbol
private String ts;
// quote token symbol
private String qs;
// trade tokenId
private String tid;
// quote tokenId
private String qid;
// price
private String p;
// quantity
private String q;
// amount
private String a;
// time
private Long t;
// side
private Integer side;
// buyer orderId
private String bid;
//seller orderId
private String sid;
// buyer fee
private String bf;
// seller fee
private String sf;
// block height
private Long bh;

Example

Subscribe:

{
  "clientId":"test",
  "opType":"sub",
  "topics":"market.VX_VITE.trade"
}

Response:

{
  "message":[
   {
    "a":"6324.77710294",
    "bf":"14.23074848",
    "bh":14526719,
    "bid":"00001f00fffffffff340910fa1ff005e6618cb000030",
    "id":"702d8d5bd6e8d5aa7b40953484acbcfeae6c1fcf",
    "p":"12.8222",
    "q":"493.2677",
    "qid":"tti_5649544520544f4b454e6e40",
    "qs":"VITE",
    "s":"VX_VITE",
    "sf":"14.23074848",
    "sid":"00001f01000000000cbf6ef05e00005e6618cb00002f",
    "side":0,
    "t":1583749346,
    "tid":"tti_564954455820434f494e69b5",
    "ts":"VX"
    }
  ]
}

TickerStatistics

Definition

// symbol
private String s;
// trade token symbol
private String ts;
// quote token symbol
private String qs;
// trade tokenId
private String tid;
// quote tokenId
private String qid;
// open price
private String op;
// previous close price
private String pcp;
// close price
private String cp;
// price change 
private String pc;
// price change percentage
private String pCp;
// high price 
private String hp;
// low price
private String lp;
// quantity 
private String q;
// amount 
private String a;
// price precision
private Integer pp;
// quantity precision
private Integer qp;

Example

Subscribe:

{
  "clientId":"test",
  "opType":"sub",
  "topics":"market.VX_VITE.tickers"
}

Response:

{
  "message":{
    "a":"14932378.5785",
    "cp":"13.3013",
    "hp":"13.5200",
    "lp":"10.9902",
    "op":"11.3605",
    "pc":"1.9408",
    "pcp":"13.2947",
    "pp":4,
    "q":"1207963.7611",
    "qid":"tti_5649544520544f4b454e6e40",
    "qp":4,
    "qs":"VITE",
    "s":"VX_VITE",
    "tid":"tti_564954455820434f494e69b5",
    "ts":"VX"
  }
}

KLine/Candlestick bars

Definition

private Long t;
private Double c;
private Double o;
private Double v;
private Double h;
private Double l;

Example

Subscribe:

{
  "clientId":"test",
  "opType":"sub",
  "topics":"market.VX_VITE.kline.minute"
}

Response:

{
  "message":{
  "c":12.935,
  "h":12.935,
  "l":12.935,
  "o":12.935,
  "t":1583749440,
  "v":415.1729
  }
}

Depth

Definition

private List<List<String>> asks; // [[price, quantity],[price, quantity]]
private List<List<String>> bids; // [[price, quantity],[price, quantity]]

Example

Subscribe:

{
  "clientId":"test",
  "opType":"sub",
  "topics":"market.VX_VITE.depth"
}

Response:

{
  "message":{
  "asks":[
  [
    "12.9320",
    "185.3194"
  ],[
    "13.3300",
    "48.9177"
  ],[
    "13.4959",
    "1305.9508"
  ],[
    "13.5100",
    "466.7237"
  ],[
    "13.8000",
    "134.5858"
  ]],
  "bids":[
  [
    "12.7002",
    "170.2562"
  ],[
    "12.6000",
    "63.6076"
  ],[
    "12.4000",
    "15339.2586"
  ],[
    "12.3010",
    "324.6731"
  ],[
    "12.3000",
    "222.7945"
  ]]
  }
}

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vitex-api-0.0.2.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vitex_api-0.0.2-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file vitex-api-0.0.2.tar.gz.

File metadata

  • Download URL: vitex-api-0.0.2.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for vitex-api-0.0.2.tar.gz
Algorithm Hash digest
SHA256 6678826163b9f872a5185ae9168e45e2cd0d6d3d450afc28492b85fc7999e955
MD5 8e960a6cbad5e0842bda51291a925410
BLAKE2b-256 2247eb70b8afff78e507b2d768e8644f7877775310757448bf535fdd2b70f8ea

See more details on using hashes here.

File details

Details for the file vitex_api-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: vitex_api-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for vitex_api-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0f68b31e8ac2d829798db2254b8b2e1c1a3a3bf8aeee5dc4f03ab4d6de4c85f6
MD5 4b1d1d18eb550ae4c6f5603e6bb2814a
BLAKE2b-256 bfc2ba94d22a179ca74c959b12352d3792faf5b8e1e6971ab84b49cc5b11ce35

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page