zerocap-api-new-test
Jump restapi
Jump websocket
Introduction
Websocket sdk dependency
pip install websocket>=0.2.1
pip install websocket-client>=1.6.1
sdk install
pip install zerocap-api-new-test
restapi
from zerocap_api_new_test import ZerocapRestClient
import uuid
import time
import hmac
import hashlib
# API key and secret are required, please contact zerocap to register.
api_key = "***"
api_secret = "***"
client = ZerocapRestClient(api_key, api_secret, env='uat')
timestamp = int(time.time())
signature = hmac.new(api_secret.encode("utf-8"), str(timestamp).encode("utf-8"), hashlib.sha256).hexdigest()
1. Create an order
result = client.create_order(
symbol='USDT/AUD',
side='buy',
type='limit',
amount='100',
price='1000',
coinroutes_customer_id=5,
)
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| symbol | true | string | Instrument | USDT/AUD |
| side | true | string | Side | buy sell |
| type | true | string | Type | limit |
| amount | true | string | Quantity | |
| price | true | string | Price | |
| coinroutes_customer_id | false | int | coinroutes_customer_id | |
| client_order_id | false | string | client_order_id |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
data =
{
"symbol": "USDT/AUD",
"side": "buy",
"type": "limit",
"amount": "1000",
"price": "1000",
"coinroutes_customer_id": 5,
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| id | true | string | Transaction ID | |
| timestamp | true | long | Time | |
| lastTradeTimestamp | true | long | Time | |
| status | true | string | Status | |
| type | true | string | Type | |
| timeInForce | true | string | timeInForce | |
| side | true | string | Side | |
| price | true | float | Price | |
| average | true | float | average | |
| amount | true | float | Quantity | |
| filled | true | float | filled | |
| remaining | true | float | remaining | |
| cost | true | float | cost | |
| fee | true | float | fee | |
| error_message | true | string | error_message | |
| trades | true | string | trades | |
| client_order_id | true | string | client_order_id |
Response example:
{
"id": "d8dabfbd-e541-4262-b6c2-9f841ef220f6",
"timestamp": 1692346145000,
"last_trade_timestamp": 1692346145000,
"status": "closed",
"symbol": "USDT/AUD",
"type": "limit",
"time_in_force": "FOK",
"side": "sell",
"price": 1,
"average": 1.48249,
"amount": 500,
"filled": 500,
"remaining": 0,
"cost": 741.245,
"fee": 0,
"error_message": "",
"client_order_id": "",
"trades": [
{
"id": "e86fcf94-88e6-46d8-8cc6-e06891eab6cf",
"timestamp": 1692346145000,
"symbol": "USDT/AUD",
"order": "d8dabfbd-e541-4262-b6c2-9f841ef220f6",
"type": "limit",
"side": "sell",
"taker_or_maker": "taker",
"price": 1.48249,
"amount": 500,
"cost": 741.245,
"order_from": "coinroutes",
"fee": 0,
"counterparty": "Wu Han"
}
]
}
2. Fetch specific orders
result = client.fetch_order(
id='',
)
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| id | true | string | Transaction ID |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
data =
{
"id": "d8dabfbd-e541-4262-b6c2-9f841ef220f6",
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| id | true | string | Transaction ID | |
| timestamp | true | long | Time | |
| lastTradeTimestamp | true | long | Time | |
| status | true | string | Status | |
| type | true | string | Type | |
| timeInForce | true | string | timeInForce | |
| side | true | string | Side | |
| price | true | float | Price | |
| average | true | float | average | |
| amount | true | float | Quantity | |
| filled | true | float | filled | |
| remaining | true | float | remaining | |
| cost | true | float | cost | |
| fee | true | float | fee | |
| error_message | true | string | error_message | |
| trades | true | string | trades | |
| client_order_id | true | string | client_order_id |
Response example:
{
"id": "d8dabfbd-e541-4262-b6c2-9f841ef220f6",
"timestamp": 1692346145000,
"last_trade_timestamp": 1692346145000,
"status": "closed",
"symbol": "USDT/AUD",
"type": "limit",
"time_in_force": "FOK",
"side": "sell",
"price": 1,
"average": 1.48249,
"amount": 500,
"filled": 500,
"remaining": 0,
"cost": 741.245,
"fee": 0,
"error_message": "",
"trades": [
{
"id": "e86fcf94-88e6-46d8-8cc6-e06891eab6cf",
"timestamp": 1692346145000,
"symbol": "USDT/AUD",
"order": "d8dabfbd-e541-4262-b6c2-9f841ef220f6",
"type": "limit",
"side": "sell",
"taker_or_maker": "taker",
"price": 1,
"amount": 500,
"cost": 741.245,
"order_from": "coinroutes",
"fee": 0,
"counterparty": "Wu Han"
}
]
}
3. Batch fetch order
result = client.fetch_orders(
symbol='USDT/AUD',
end_datetime=int(time.time() * 1000),
start_datetime=int(time.time() * 1000 - 10*86400*1000),
limit=10,
)
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| symbol | false | string | symbol | |
| start_datetime | false | string | start_datetime | |
| end_datetime | false | string | end_datetime | |
| page | false | string | page | |
| limit | false | string | limit | |
| ids | false | string | Transaction ids(null character string or id1,id2...) | |
| status | false | string | status | |
| sort_order | false | string | sort_order | |
| order_type | false | string | order_type | |
| side | false | string | side |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
data =
{
"symbol": "USDT/AUD",
"start_datetime": 0,
"end_datetime": 0,
"page": 0,
"limit": 0,
"ids": "",
"status": "",
"sort_order": "",
"order_type": "",
"side": "",
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| id | true | string | Transaction ID | |
| timestamp | true | long | timestamp | |
| last_trade_timestamp | true | long | last_trade_timestamp | |
| status | true | string | status | |
| symbol | true | string | symbol | |
| type | true | string | type | |
| time_in_force | true | string | time_in_force | |
| side | true | string | side | |
| price | true | float | price | |
| average | true | float | average | |
| amount | true | float | amount | |
| filled | true | float | filled | |
| remaining | true | float | remaining | |
| cost | true | float | cost | |
| fee | true | float | fee | |
| error_message | true | string | fee | |
| trades | true | list | trades | |
| total | true | int | total | |
| page | true | int | page | |
| client_order_id | true | string | client_order_id |
Response example:
{
"order_list": [
{
"id": "e1af8ae0-3247-4755-87ad-f683fed3aff5",
"timestamp": 1690797504000,
"last_trade_timestamp": 1690797504000,
"status": "closed",
"symbol": "USDT/AUD",
"type": "market",
"time_in_force": "FOK",
"side": "buy",
"price": 21.1,
"average": 2.98442,
"amount": 101,
"filled": 101,
"remaining": 0,
"cost": 301.426,
"fee": 0,
"error_message": "",
"client_order_id": "",
"trades": [
{
"id": "e1b3329c-4fc3-455a-82ed-ab5497b286cc",
"timestamp": 1690797504000,
"symbol": "USDT/AUD",
"order": "e1af8ae0-3247-4755-87ad-f683fed3aff5",
"type": "market",
"side": "buy",
"taker_or_maker": "taker",
"price": 21.1,
"amount": 101,
"cost": 301.426,
"order_from": "coinroutes",
"fee": 0,
"counterparty": "zeal anonymous"
}
]
}
],
"status": "success",
"total": 14087,
"page": 1
}
4. Request For quote
result = client.request_for_quote(
symbol='USDT/AUD',
side='buy',
amount='100',
client_order_id='',
)
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| symbol | true | string | Symbol | USDT/AUD |
| side | true | string | Side | buy sell |
| amount | true | string | Amount | |
| client_order_id | false | string | Price |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
data =
{
"symbol": "USDT/AUD",
"side": "buy",
"amount": "100",
"client_order_id": ""
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| rfq_id | true | string | RFQ ID | |
| client_order_id | true | string | Client Order ID | |
| quantity | true | float | Quantity | |
| side | true | string | Side | |
| symbol | true | string | Symbol | |
| price | true | float | price | |
| created | true | string | Side |
Response example:
{
"rfq_id": "3ec2f335-1995-4c59-9d3a-8e3a4d048d23",
"client_order_id": "",
"quantity": 100.0,
"side": "buy",
"symbol": "USDT/AUD",
"price": 1.4882,
"created": "2024-01-15T02:49:17.658142Z"
}
5. Get Instruments
result = client.get_instruments()
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| name | true | string | Name | |
| type | true | string | Type | |
| is_tradable | true | bool | Is Ttradable | |
| quantity_precision | true | float | Quantity Precision | |
| max_quantity | true | float | Max Quantity | |
| min_quantity | true | float | Min Quantity | |
| price_precision | true | float | Price Precision |
Response example:
{
"status": "successful",
"instruments": [
{
"name": "USDT/AUD",
"type": "SPOT",
"is_tradable": false,
"quantity_precision": 2.0,
"max_quantity": 50000.0,
"min_quantity": 1.0,
"price_precision": 4.0
}
]
}
6. Get Balances
result = client.get_balances()
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| balances_data | true | json string | Balances Data |
Response example:
{
"balances_data": "{\"$AFLOKI\":{\"custody\":{\"free\":\"100.0\",\"total\":\"100.0\",\"used\":\"0\"}},\"$BOMB\":{\"Yield Exit Notes\":{\"free\":\"2.1516\",\"total\":\"2.1516\",\"used\":\"0\"},\"custody\":{\"free\":\"24.0\",\"total\":\"24.0\",\"used\":\"0\"},\"unlock\":{\"free\":\"999.4399\",\"total\":\"999.4399\",\"used\":\"0\"}},\"$CRAMER\":{\"unlock\":{\"free\":\"1.90\",\"total\":\"1.90\",\"used\":\"0\"}},\"$HD\":{\"custody\":{\"free\":\"90.0\",\"total\":\"90.0\",\"used\":\"0\"}},\"0NE\":{\"unlock\":{\"free\":\"1.0100\",\"total\":\"1.0100\",\"used\":\"0\"}},\"1INCH-WORMHOLE\":{\"unlock\":{\"free\":\"0.4087\",\"total\":\"0.4087\",\"used\":\"0\"}},\"AAVE\":{\"ZII\":{\"free\":\"8.0\",\"total\":\"8.0\",\"used\":\"0\"}},\"ATOM\":{\"ZII\":{\"free\":\"2.0\",\"total\":\"2.0\",\"used\":\"0\"}},\"AUD\":{\"Discount Note\":{\"free\":\"90\",\"total\":\"90\",\"used\":\"0\"},\"Yield Entry Notes\":{\"free\":\"2\",\"total\":\"2\",\"used\":\"0\"},\"custody\":{\"free\":\"3092.07032787879\",\"total\":\"3092.07032787879\",\"used\":\"0\"}",
"status": "successful"
}
7. Get Transfers
result = client.get_transfers(start_datetime=1706767455959,
end_datetime=1706770184310,
asset_id="ETH,AUD",
type="external_deposit,external_withdrawal",
page=1,
limit=20,
sort_order="desc")
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| start_datetime | false | int | Start Datetime | |
| end_datetime | false | int | End Datetime | |
| asset_id | false | string | Asset Id | |
| type | false | string | Type | external_deposit,external_withdrawal,yield_deposit,create_term_yield,settled_term_yield, trading_transfer,trading_settlement,yield_interest |
| page | false | string | Page | |
| limit | false | string | Limit | |
| sort_order | false | string | Sort Order | desc, asc |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
data = {
"start_datetime": 1706767455959,
"end_datetime": 1706770184310,
"asset_id": "ETH,AUD",
"type": "external_deposit,external_withdrawal",
"page": 1,
"limit": 20,
"sort_order": "desc"
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| status | true | string | Interface request status. | |
| total | true | int | The total number of matching data. | |
| asset_id | true | string | Asset ID | |
| amount | true | float | Amount | |
| type | true | string | Type | |
| from_account_type | true | string | From Account Type | |
| to_account_type | true | string | To Account Type | |
| amount_usd | true | float | Amount USD | |
| interest_earned | true | string | Interest Earned | |
| tx_hash | true | string | Tx Hash | |
| source_address | true | string | Source Address | |
| destination_address | true | string | Destination Address | |
| tx_id | true | string | Tx ID | |
| fee | true | float | Fee | |
| fee_currency | true | string | Fee Currency | |
| name_reference | true | string | Name Reference | |
| bank_account | true | string | Bank Account | |
| comment | true | string | Comment | |
| status | true | string | Status | |
| created_at | true | string | Created At |
Response example:
{
"status": "successful",
"total": 78,
"user_id": "",
"fiat_transactions": [
{
"user_id": "",
"asset_id": "AUD",
"amount": 1.22,
"type": "",
"from_account_type": "",
"to_account_type": "",
"amount_usd": 0.8004786,
"note": "",
"source_address": "",
"destination_address": "",
"tx_id": "a7ff3ee8-d62e-413d-8bf1-1e1305604883auto_sweep",
"fee": 0.0,
"fee_currency": "",
"comment": "",
"status": "COMPLETED",
"created_at": 1702267616000
},
],
"fireblocks_transactions": [
{
"user_id": "",
"asset_id": "AUD",
"amount": 1.22,
"type": "",
"from_account_type": "",
"to_account_type": "",
"amount_usd": 0.8004786,
"interest_earned": 0.0,
"note": "",
"tx_hash": "",
"source_address": "",
"destination_address": "",
"tx_id": "a7ff3ee8-d62e-413d-8bf1-1e1305604883auto_sweep",
"fee": 0.0,
"fee_currency": "",
"comment": "",
"status": "COMPLETED",
"created_at": 1702267616000
},
]
}
8. Get Time
result = client.get_time()
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
Response example:
{
"server_time": "2024-02-05 16:03:42"
}
9. Get Risk
result = client.get_risk()
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| max_risk_limit | true | string | Max Risk Limit | |
| risk_exposure | true | string | Risk Exposure | |
| equity | true | string | Equity |
Response example:
{
"max_risk_limit": "100000",
"risk_exposure": "0",
"equity": "17048.35"
}
10. Get External Wallets
result = client.get_external_wallets()
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
Response example:
{
"external_wallets": [
{
"external_wallet_id": "868d36b5-890c-48f3-90b8-*******",
"name": "****",
"address": "2",
"label": "1",
"status": "APPROVED",
"asset": "",
"network": "",
"asset_id": "XRP_TEST"
}
],
"status": "successful"
}
11. Initiate Withdrawal
result = client.initiate_withdrawal(
asset_id='ETH_TEST5',
amount='100',
note='test',
external_wallet_id='868d36b5-890c-48f3-90b8-*******',
from_account='custody',
)
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| asset_id | true | string | Asset Id | |
| amount | true | string | Amount | |
| note | false | string | Note | |
| external_wallet_id | true | string | External Wallet Id | |
| from_account | true | string | From Account | custody, trading |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
data =
{
"asset_id": "ETH_TEST5",
"amount": "100",
"note": "test",
"external_wallet_id": "868d36b5-890c-48f3-90b8-*******",
"from_account": "custody"
}
Response example:
{
"transfer": {
"status": "SUBMITTED",
"transaction_id": "01ddac4b-f563-4f99-9041-***",
"message": "Withdrawal initiated successfully."
},
"status": "successful"
}
12. Initiate Transfer
result = client.initiate_transfer(
asset_id='ETH_TEST5',
amount='100',
note='test',
from_account='custody',
)
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| asset_id | true | string | Asset Id | |
| amount | true | string | Amount | |
| note | false | string | Note | |
| from_account | true | string | From Account | custody, trading |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
headers = {
'api-key': api_key,
'signature': signature,
'Content-Type': 'application/json',
'timestamp': str(timestamp),
}
data =
{
"asset_id": "ETH_TEST5",
"amount": "100",
"note": "test",
"from_account": "custody"
}
Response example:
{
"transfer": {
"status": "SUBMITTED",
"transaction_id": "221a431d-415e-4e53-9432-***",
"message": "Transfer from custody to trading was initiated successfully."
},
"status": "successful"
}
websocket
import hmac
import hashlib
from zerocap_api_new_test import ZerocapWebsocketClient
# API key and secret are required, please contact zerocap to register.
api_key = "***"
api_secret = "***"
websocket = ZerocapWebsocketClient(api_key, api_secret, env='uat')
# Create Ws Connection
timestamp = int(time.time())
websocket_connect = websocket.create_connection(timestamp)
connect_result = websocket.recv(websocket_connect)
print(connect_result)
signature = hmac.new(api_secret.encode("utf-8"), str(timestamp).encode("utf-8"), hashlib.sha256).hexdigest()
Response example:
{
"type": "message",
"message":"Successfully connected."
}
{
"type": "error",
"error_code": "401",
"error_message":"Unauthorized"
}
1. Subscribe to Market data
websocket.send({"type": 'price', "symbol": "USDT/AUD"})
while True:
# Get messages
message = websocket.recv(websocket_connect)
print(f"Receiving message from server: \n{message}")
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| type | true | str | Subscription type | price |
| symbol | true | str | Transaction pairs | USDT/AUD |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
header={"api-key": api_key, "signature": signature, "timestamp": str(timestamp)}
wss://dma-uat-ws.defi.wiki/v2
Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| type | true | str | type | price, message, error |
| data | false | json | data | |
| data['timestamp'] | true | str | time | |
| data['symbol'] | true | str | symbol | |
| data['exchange'] | true | str | exchange | |
| data['bids'] | true | list | bids | |
| data['asks'] | true | list | asks | |
| message | false | str | description | |
| error_code | false | str | error code | |
| error_message | false | str | error message |
Response example:
{
"type": "error",
"error_code": "400",
"error_message":"invalid message"
}
{
"type": "message",
"message":"price Subscription successful."
}
{
"type": "message",
"message": "pong"
}
{
"type": "price",
"data": {
'timestamp': 1692340935.4283478,
'symbol': 'USDT/AUD',
'exchange': 'zerocap',
'bids': [
[1.47386, 5000.0],
[1.47238, 10000.0],
[1.4709, 20000.0],
[1.46941, 30000.0]
],
'asks': [
[1.57236, 5000.0],
[1.57392, 10000.0],
[1.57548, 20000.0],
[1.57705, 30000.0]
]
}
}
{
"type": "message",
"message":"Price stream unavailable."
}
2. Subscribe Order updates or transaction records
websocket.send({"type": 'order'})
while True:
# Get messages
message = websocket.recv(websocket_connect)
print(f"Receiving message from server: \n{message}")
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| type | true | str | Subscribed type | order |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
header={"api-key": api_key, "signature": signature, "timestamp": str(timestamp)}
wss://dma-uat-ws.defi.wiki/v2
order Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| type | true | str | type | order, message, error |
| data | false | json | data | |
| data['id'] | true | str | id | |
| data['timestamp'] | true | str | timestamp | |
| data['last_trade_timestamp'] | true | str | last_trade_timestamp | |
| data['status'] | true | str | status | |
| data['symbol'] | true | str | symbol | |
| data['type'] | true | str | type | |
| data['time_in_force'] | true | str | time_in_force | |
| data['side'] | true | str | side | |
| data['price'] | true | float | price | |
| data['average'] | true | float | average | |
| data['amount'] | true | float | amount | |
| data['filled'] | true | float | filled | |
| data['remaining'] | true | str | remaining | |
| data['cost'] | true | float | cost | |
| data['error_message'] | true | str | error_message | |
| data['fee'] | true | str | fee | |
| data['trades'] | true | list | trades | |
| message | false | str | description | |
| error_code | false | str | error code | |
| error_message | false | str | error message |
Response example:
{
"type": "error",
"error_code": "400",
"error_message":"invalid message"
}
{
"type": "message",
"message":"order Subscription successful."
}
{
"type": "message",
"message": "pong"
}
{
"type":"order",
"data":{
"id":"f7fc4e4f-c099-4b18-a231-f032adc8ae87",
"timestamp":1692354083000,
"last_trade_timestamp":1692354083000,
"status":"open",
"symbol":"USDT/AUD",
"type":"limit",
"time_in_force":"FOK",
"side":"buy",
"price":3,
"average":0,
"amount":3,
"filled":0,
"remaining":3,
"cost":9,
"error_message":"",
"fee":"0",
"trades":[]
}
}
{
"type":"order",
"data":{
"id":"f7fc4e4f-c099-4b18-a231-f032adc8ae87",
"timestamp":1692354083000,
"last_trade_timestamp":1692354083000,
"status":"closed",
"symbol":"USDT/AUD",
"type":"limit",
"time_in_force":"FOK",
"side":"buy",
"price":3,
"average":1.474899,
"amount":3",
"filled":3,
"remaining":0,
"cost":9,
"error_message":"",
"fee":"0",
"trades":[{
"id":"fa9cbef5-54ce-4a3a-8115-3db8af1f1617",
"timestamp":1692354083000,
"symbol":"USDT/AUD",
"order":"f7fc4e4f-c099-4b18-a231-f032adc8ae87",
"type":"limit",
"side":"buy",
"taker_or_maker":"taker",
"price":1.474899,
"amount":3,
"cost":4.424,
"order_from":"coinroutes",
"counterparty":"Wu Han",
"fee":"0"
}]
}
}
3. Subscribe transaction records
websocket.send({"type": 'trade'})
while True:
# Get messages
message = websocket.recv(websocket_connect)
print(f"Receiving message from server: \n{message}")
Request parameters:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| type | true | str | Subscribed type | trade |
Request parameters: examples (cannot be used directly, you need to replace your own parameters)
header={"api-key": api_key, "signature": signature, "timestamp": str(timestamp)}
wss://dma-uat-ws.defi.wiki/v2
Transaction Record Response data:
| Parameter | required | data type | describe | Value range |
|---|---|---|---|---|
| type | true | str | type | trade,message, error |
| data | false | json | data | |
| data['id'] | true | str | id | |
| data['timestamp'] | true | str | timestamp | |
| data['datetime'] | true | str | datetime | |
| data['symbol'] | true | str | symbol | |
| data['order'] | true | str | order | |
| data['type'] | true | str | type | |
| data['side'] | true | str | side | |
| data['takerOrMaker'] | true | str | takerOrMaker | |
| data['price'] | true | float | price | |
| data['amount'] | true | float | amount | |
| data['cost'] | true | float | cost | |
| data['orderFrom'] | true | str | orderFrom | |
| message | false | str | description | |
| error_code | false | str | error code | |
| error_message | false | str | error message |
Response example:
{
"type": "error",
"error_code": "400",
"error_message":"invalid message"
}
{
"type": "message",
"message":"trade Subscription successful."
}
{
"type": "message",
"message": "pong"
}
{
"type":"trade",
"data":{
"id":"fa9cbef5-54ce-4a3a-8115-3db8af1f1617",
"timestamp":"1692354083000",
"symbol":"USDT/AUD",
"order":"f7fc4e4f-c099-4b18-a231-f032adc8ae87",
"type":"limit",
"side":"buy",
"takerOrMaker":"taker",
"price":1.474899,
"amount":3,
"cost":4.424,
"orderFrom":"coinroutes",
"counterparty":"Wu Han"
}
}
Metadata
Release files for zerocap-api-new-test 0.1.53
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| zerocap_api_new_test-0.1.53.tar.gz | 21.8 kB | Without provenance | Details for zerocap_api_new_test-0.1.53.tar.gz |
Release files / zerocap_api_new_test-0.1.53.tar.gz
| Download URL | zerocap_api_new_test-0.1.53.tar.gz |
|---|---|
| Size | 21.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27afe7a4f8a6d845120faa3339d091fa9dd074f2598903f0df44d8ed48506e29
|
|
BLAKE2b-256 checksum How to use checksums |
f6da0d95cd287d33e259d94855e88708c495f5600122482f0e9b134eeaec67c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Security for zerocap-api-new-test 0.1.53
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.