NAV Navbar

Introduction

이 문서는 기본적인 프로그래밍 능력을 갖춘 독자를 대상으로 작성되었습니다. 또한 당신의 자산에 손해를 가져다 줄 수 있는 예제가 포함되어 있습니다. 각각의 기능에 대한 설명과 코드를 충분히 이해하고 실행하도록 합니다. API 사용에 대한 모든 책임은 본인에게 있습니다. 자세한 내용은 데이빗 API 이용약관을 참고하십시오.

데이빗 API를 이용하기에 앞서 데이빗에서 API 키페어를 발급받아야 합니다. API 키페어는 여러가지 권한 - 캔들 차트오더북 가져오기, 자산을 확인하기, 자산을 거래하기, 자산 출금하기 권한 - 을 가집니다. 자세한 내용은 권한 항목을 참고하십시오.

데이빗 API에는 두가지 타입이 있습니다. 첫 번째는 클라이언트가 요청을 보내고 서버가 알맞은 응답을 보내는 방식으로 API 호출 이라 합니다. 이러한 API는 보통 자산의 거래, 입출금에 관련되어 있습니다. 두 번째는 클라이언트가 API를 구독하면 데이빗 API 서버에서 지속적으로 알림을 보내 주는 API 구독 입니다. API 구독에는 코인 가격 변화, 지갑 정보 구독, 주문 결과 구독 등이 있습니다.

데이빗 API는 웹소켓을 기반으로 구현되어 있어 있고, 피닉스 프레임워크에서 정의한 방식으로 메시지를 주고 받습니다. 또한 데이빗은 사용자가 API를 쉽게 사용할 수 있도록 Pydaybit를 제공합니다. Pydaybit은 파이썬으로 작성된 데이빗 API 레퍼 wrapper 입니다.

만약 프로그래밍에 익숙하지 않다면 Pydaybit의 예제를 먼저 읽어보는 것을 추천합니다.

Authorization

데이빗 API를 사용하기 전에, API 키페어를 적절한 권한으로 생성해야 합니다. 하나의 API 키페어는 여러 종류의 권한 - 캔들 차트오더북 가져오기, 자산을 확인하기, 자산을 거래하기, 자산 출금하기 권한 - 을 가집니다.

API 사용은 API 키페어에 부여된 권한에 의해 제한됩니다. 만약 접근 권한이 없는 API 키페어를 이용해 API를 사용한다면, unauthenticated 응답을 받습니다.

종류 설명
public_data 공개 정보(시장 요약 정보, 오더북 등)에 대한 접근 권한. API 키페어 생성 시에 시장 조회를 포함합니다.
private_data 개인 자산에 대한 접근 권한. API 키페어 생성 시에 개인 자산 조회를 포함합니다.
trade 거래 관련 API에 대한 접근 권한. API 키페어 생성 시에 거래 관련 API를 포함합니다.
transaction 입금과 출금 관련 API에 대한 접근 권한. API 키페어 생성 시에 출금 관련 API를 포함합니다.

마이페이지의 API Keys 탭에서 계정당 5개의 API 키페어를 생성 할 수 있습니다. 각 API 키페어는 다음 중 하나의 권한들을 갖습니다.

Host address

APIs

데이빗 API에는 두가지 타입이 있습니다. 첫 번째는 클라이언트가 요청을 보내고 서버가 알맞은 응답을 보내는 방식으로 API 호출 이라 합니다. 이러한 API는 보통 자산의 거래, 입출금에 관련되어 있습니다. 두 번째는 클라이언트가 API를 구독하면 서버에서 지속적으로 알림을 보내 주는 API 구독 입니다. API 구독에는 코인 가격 변화, 지갑 정보 구독, 주문 결과 구독 등이 있습니다.

Channels

채널에서는 메시지를 보내고 받습니다. 발신자는 어떤 주제에 관해 메시지를 브로드캐스트(채널 참가자 모두에게 발신함) 할 수 있습니다. 수신자는 주제에 대한 채널을 구독하면 그러한 메시지들을 수신할 수 있습니다. 언제든지 수신자가 발신자가 되거나, 발신자가 수신자가 될 수 있습니다. 자세한 정보는 피닉스 문서를 참고하십시오.

Topics

주제는 다양한 층에서의 메시지가 올바른 곳으로 전달 될 수 있도록하는 채널의 문자열 식별자입니다. 데이빗 API는 다음과 같은 주제를 사용하고 있습니다.

Events

이벤트는 채널에서 특별한 행동을 나타내기 위한 문자열입니다. 예를 들어 "phx_join"은 채널 참가를 의미하는 이벤트이고, "phx_leave"는 채널 나오기를 의미하는 이벤트입니다. 데이빗 API 호출"/api" 채널에서 이벤트를 사용해 요청을 보냅니다.

Messages

Example of create_wdrl

import asyncio
import logging

from pydaybit import Daybit

logger = logging.getLogger('pydaybit')
logger.setLevel(logging.DEBUG)

stream_handler = logging.StreamHandler()
stream_handler.setFormatter(logging.Formatter('%(message)s'))
logger.addHandler(stream_handler)


async def daybit_create_wdrl():
    async with Daybit() as daybit:
        await daybit.create_wdrl(coin='BTC', to_addr='ABTCADDRESS', amount='0.05')


asyncio.get_event_loop().run_until_complete(daybit_create_wdrl())

Output of the example

> {"join_ref": "1", "ref": "1", "topic": "/api", "event": "phx_join", "payload": {"timestamp": 1538739991045, "timeout": 3000}}
< {"topic":"/api","ref":"1","payload":{"status":"ok","response":{}},"event":"phx_reply"}
> {"join_ref": "1", "ref": "2", "topic": "/api", "event": "create_wdrl", "payload": {"to_addr": "ABTCADDRESS", "timestamp": 1538739991059, "coin": "BTC", "amount": "0.05", "timeout": 3000}}
< {"topic":"/api","ref":"2","payload":{"status":"ok","response":{"data":{"wdrl_to_tag":null,"wdrl_to_org":null,"wdrl_to_addr":"ABTCADDRESS","wdrl_status":"queued","type":"wdrl","txid":null,"tx_link_url":"https://live.blockcypher.com/btc/tx/","req_confirm":2,"id":5882,"deposit_status":null,"created_at":1538739991072,"confirm":0,"completed_at":null,"coin":"BTC","amount":"0.050000000000000000"}}},"event":"phx_reply"}
> {"join_ref": "1", "ref": "3", "topic": "/api", "event": "phx_leave", "payload": {"timestamp": 1538739991124, "timeout": 3000}}
< {"topic":"/api","ref":"3","payload":{"status":"ok","response":{}},"event":"phx_reply"}
< {"topic":"/api","ref":"1","payload":{},"event":"phx_close"}

다음 속성들은 JSON 객체 형식으로 전달됩니다. 예제는 /api 채널에서 create_wdrl API 호출할 때의 웹소켓 위에서 주고 받는 메시지를 보여 줍니다.

API Calls

웹소켓을 통해 데이빗 API 엔드포인트와 연결하고 /api 채널에 참가합니다. 해당하는 API 이름을 event에 넣고, 필요한 인자 payload에 넣어 메시지를 보냅니다.

Channel of API Calls

모든 API Call은 /api 채널을 사용합니다.

API Call List

/api 채널에서 event 속성에 API 이름을 넣습니다. 사용가능한 목록은 다음과 같습니다.

Request create_wdrl

{"join_ref": "1", "ref": "2", "topic": "/api", "event": "create_wdrl", "payload": {"to_addr": "ABTCADDRESS", "timestamp": 1538739991059, "coin": "BTC", "amount": "0.05", "timeout": 3000}}

Response

{"topic":"/api","ref":"2","payload":{"status":"ok","response":{"data":{"wdrl_to_tag":null,"wdrl_to_org":null,"wdrl_to_addr":"ABTCADDRESS","wdrl_status":"queued","type":"wdrl","txid":null,"tx_link_url":"https://live.blockcypher.com/btc/tx/","req_confirm":2,"id":5882,"deposit_status":null,"created_at":1538739991072,"confirm":0,"completed_at":null,"coin":"BTC","amount":"0.050000000000000000"}}},"event":"phx_reply"}

Subscriptions

Example of coins

import asyncio
import logging

from pydaybit import Daybit

logger = logging.getLogger('pydaybit')
logger.setLevel(logging.DEBUG)

stream_handler = logging.StreamHandler()
stream_handler.setFormatter(logging.Formatter('%(message)s'))
logger.addHandler(stream_handler)


async def daybit_coins():
    async with Daybit() as daybit:
        await daybit.coins()


asyncio.get_event_loop().run_until_complete(daybit_coins())

Output

> {"join_ref": "1", "ref": "1", "topic": "/subscription:coins", "event": "phx_join", "payload": {"timestamp": 1538740890363, "timeout": 3000}}
< {"topic":"/subscription:coins","ref":"1","payload":{"status":"ok","response":{}},"event":"phx_reply"}
> {"join_ref": "1", "ref": "2", "topic": "/subscription:coins", "event": "request", "payload": {"timestamp": 1538740890374, "timeout": 3000}}
< {"topic":"/subscription:coins","ref":"2","payload":{"status":"ok","response":{"data":[{"data":[{"wdrl_fee":"5.00000000","wdrl_enabled":true,"wdrl_confirm":2,"tradable":true,"tick_amount":"0.10000000","sym":"USDT","native_decimal_places":2,"name":"Tether","min_wdrl":"10.00000000","min_deposit":"10.00000000","has_tag":false,"has_org":false,"deposit_enabled":true,"deposit_confirm":2} ... ],"action":"init"}]}},"event":"phx_reply"}
> {"join_ref": "1", "ref": "3", "topic": "/subscription:coins", "event": "phx_leave", "payload": {"timestamp": 1538740890386, "timeout": 3000}}
< {"topic":"/subscription:coins","ref":"3","payload":{"status":"ok","response":{}},"event":"phx_reply"}
< {"topic":"/subscription:coins","ref":"1","payload":{},"event":"phx_close"}

API 구독을 하기 위해서, 먼저 /subscription:<subtopic> 채널에 참가하고, request 이벤트를 보냅니다. 채널에 참가해서 구독에 성공하면, 데이빗 API 서버는 데이터에 업데이트가 있을 때마다 notification 이벤트를 보내 줍니다.

API Subscription Channels

다음과 같은 구독 채널이 있습니다. 채널의 토픽은 /subscription:<subtopic> 형식입니다. 예를 들어, coins API의 경우에는 채널 토픽이 /subscription:coins 입니다.

Event of API Subscriptions

request는 보내기 이벤트, notification는 받기 이벤트입니다. 클라이언트와 서버가 전송하는 메세지는 각각 request 이벤트나 notification 이벤트를 가집니다. 한 API를 구독하면, 다시 말해, 해당하는 채널에 참가하여 request 이벤트를 보내면, 그 채널에서 init이나 upsert 액션을 응답으로 받습니다. 그 이후로는 notification이벤트와 함께 insert, update, upsert, delete 중 하나의 액션을 받습니다. 더 자세한 사항은 액션 항목을 참고하십시오.

Rate Limit of API Subscriptions

request 이벤트를 보내는 데에 초당 제한이 있습니다.

Rate limit

각 API는 매 초마다 호출에 제한이 있습니다. 만약 제한을 넘으면 api_exceeded_rate_limit 에러 코드를 받습니다.

Timestamp

모든 요청은 네트워크 지연 등에 의한 예상치 못한 요청을 방지하기 위하여 timestamptimeout을 가집니다.

요청은 다음 조건을 만족하지 못하면 거부됩니다: server time - timestamp > timeout.

만약 문제가 있다면, 아래의 에러코드가 응답으로 옵니다.

Response format

여기에는 두가지 응답 형식이 있습니다. API 호출이나 구독의 결과에 따라 성공, 실패 모델 중에 하나를 받을 것 입니다. 오른쪽의 성공과 실패 예제를 참고 하십시오. 또한 아래에서 오류 목록을 찾아 보십시오.

Success

{
  # plain json object with proper data
}

Fail

{
  "error_code": 'string',
  "message": 'string'
}

Libraries

데이빗은 엘릭서 언어를 사용하고 피닉스 프레임워크를 기반하여 만들어 졌습니다. 데이빗 API는 피닉스 서버와 소켓 통신을 하는 피닉스 클라이언트를 통해 접근할 수 있습니다. 데이빗은 공식적으로 파이썬 언어로된 레퍼 wrapper 를 제공합니다.

다른 언어로 데이빗 API 를 사용하기 위해서는 다음 라이브러리를 참고하십시오.

Error list

General

Api

Order

Wdrl

Action

API를 구독하면, 서버에서 오는 메시지는 데이터를 어떻게 처리하면 될지를 알려주는 action을 가지고 있습니다.

Types

Integer

integer 타입.

Decimal

정확한 정밀도로 표현하기 위해 string으로 표현된 10진수.

String

string.

Boolean

boolean.

Unix Timestamp

millisecond 단위의 Unix 타임스탬프.

CSV

각 값이 쉼표 , 로 구분된 `string

Models

아래는 응답으로 오는 데이터의 모델입니다.

Coin

identifier: sym

Name Type Description
sym string 코인 기호
native_decimal_point integer 출금 수량 소수점 제한
amount_decimal_point integer 주문 수량 소수점 제한
tick_amount decimal 주문 수량 단위
deposit_confirm integer 입금 완료를 위한 confirm의 수
wdrl_confirm integer 출금 완료를 위한 confirm의 수
public boolean 코인이 거래소에서 표시되는지 여부
name string 코인명
tradable boolean 거래 가능 여부
deposit_enabled boolean 입금 가능 여부
wdrl_enabled boolean 출금 가능 여부
wdrl_fee decimal 출금 수수료
min_deposit decimal 최소 입금 수량
min_wdrl decimal 최소 출금 수량
has_tag boolean to_tag가 입출금에 필요한지 여부
has_org boolean to_org가 입출금에 필요한지 여부

Coin price

identifier: sym

Name Type Description
sym string 코인 기호
usd_price decimal USD 환산 가격

Quote coin

identifier: sym

Name Type Description
sym string 코인 심볼

Market

identifier: quote, base

Name Type Description
quote string 호가 코인
base string 기준 코인
tick_price decimal 주문 가격 단위
sellable boolean 매도 가능 여부
buyable boolean 매수 가능 여부
tick_levels integer tick_price 기준으로 order book 이 존재하는 단계 수. 각 단계는 10배 차이남. ex) tick_price = 0.01, order book intvl = 0.01, 0.1, 1, 10, 100

Market summary interval

identifier: seconds

Name Type Description
seconds integer 시장 요약 단위 시간

Market summary

identifier: quote, base, seconds

Name Type Description
quote string 호가 코인
base string 기준 코인
seconds integer 단위 시간
open decimal 시가
close decimal 종가
high decimal or null 고가
low decimal or null 저가
volatility decimal 가격 변동률
quote_vol decimal or null 호가 코인 기준 거래량
base_vol decimal or null 기준 코인 기준 거래량

Order book

identifier: quote, base, intvl, min_price

Name Type Description
quote string 호가 코인
base string 기준 코인
intvl decimal 단위 가격
min_price decimal 범위 시작 가격
max_price decimal 범위 종료 가격
sell_vol decimal 매도 수량
buy_vol decimal 매수 수량

Price history interval

identifier: seconds

Name Type Description
seconds integer 가격 이력 단위 시간

Price history

identifier: quote, base, intvl, start_time

Name Type Description
quote string 호가 코인
base string 기준 코인
intvl integer 시간 간격
start_time unix_timestamp 범위 시작 시간
end_time unix_timestamp 범위 종료 시간
open decimal 시가
close decimal 종가
high decimal 고가
low decimal 저가
base_vol decimal 기준 코인 기준 거래량
quote_vol decimal 호가 코인 기준 거래량

User

identifier: -

Name Type Description
maker_fee_rate decimal maker 수수료율
taker_fee_rate decimal taker 수수료율
one_day_wdrl_usd_limit decimal 24시간 동안의 USD 환산 출금 가능량

Asset

identifier: coin

Name Type Description
coin string 코인 기호
total decimal 총 수량
reserved decimal 주문 등에 묶여있는 수량
available decimal 주문에 사용 가능한 수량
investment_usd decimal USD 환산 총 투자금

Order

identifier: id

Name Type Description
id integer id
sell boolean 매도 여부
quote string 호가 코인
base string 기준 코인
price decimal 가격
role string 주문 형식. "both", "maker_only", "taker_only"
cond_type string 조건부 주문 종류. "none", "le", "ge", "fall_from_top", "rise_from_bottom"
cond_arg1 decimal or null 조건부 주문의 첫번째 조건 값
cond_arg2 decimal or null 조건부 주문의 두번째 조건 값
coin_fee decimal 발생한 수수료
amount decimal 주문 수량
filled decimal 주문 체결량 (매수일 때 base 기준)
filled_quote decimal 주문 체결량 (매도일 때 quote 기준)
unfilled decimal 주문 미체결량
received_at unix_timestamp 주문 신청 시간
placed_at unix_timestamp or null 주문이 (Order Book 에) 등록된 시간
closed_at unix_timestamp or null 주문 체결 완료 시간
status string 주문 상태 ("received", "placed", "closed")
close_type string 체결 종류 ("rejected", "filled", "canceled")
cancel_reason string 취소 이유 ("user", "conflicting_self_order", "expired", "no_placed_amount", "partially_filled_taker_only", "maintenance", "admin",)

Trade

identifier: id

Name Type Description
id integer id
quote string 호가 코인
base string 기준 코인
quote_amount decimal 호가 코인 거래량
base_amount decimal 기준 코인 거래량
price decimal 체결 가격
taker_sold boolean taker 가 매도자인지 여부
exec_at unix_timestamp 체결 시간
Below are only available from my_trades
order_id integer 내 주문 id
fee decimal 내 수수료
sell boolean 매도 여부
counterpart string 거래 상대방의 종류. ("user", "daybit", "project") 중 하나. "daybit"은 데이빗 거래소, "project"는 코인 프로젝트 팀을 의미한다.

Transaction Summary

identifier: id

Name Type Description
id integer id
coin string 거래 코인
type string 거래 종류. ("wdrl", "deposit") 중 하나.
amount decimal 거래 수량
txid string or null 출금 거래 id
confirm integer Confirm의 수
req_confirm integer
deposit_status string 입금 상태
wdrl_status string or null 출금 상태
wdrl_to_addr string or null 출금을 받는 주소
wdrl_to_tag string or null 출금 태그
wdrl_to_org string or null 출금 기관
created_at unix_timestamp 거래 생성 시간
completed_at unix_timestamp or null 거래 완료 시간
tx_link_url string

Airdrop

identifier: id

Name Type Description
id integer id
coin string 코인 기호
amount decimal 에어드랍 수량
description string 에어드랍 설명
airdropped_at unix_timestamp 에어드랍 시간

Trade Volume

identifier: start_time

Name Type Description
start_time unix_timestamp 시작 시간
end_time unix_timestamp 종료 시간
usd_amount decimal start_timeend_time 사이의 거래량

Day Average

identifier: start_time

Name Type Description
start_time unix_timestamp 시작 시간
end_time unix_timestamp 종료 시간
avg decimal 리워드로 분배된 DAY 총량의 start_timeend_time 사이의 평균

Div Plan

identifier: end_time

Name Type Description
start_time unix_timestamp 시작 시간
end_time unix_timestamp 종료 시간
div_count integer BTC 리워드를 받을 사람 수
div_btc decimal 총 BTC 리워드

Pydaybit

Pydaybit은 파이썬으로 작성된 데이빗 거래소 API 레퍼 wrapper 입니다. 코드는 Pydaybit 저장소에 있습니다.

Disclaimer

이 소프트웨어의 사용에 대한 책임은 사용자 본인에게 있습니다. 작성자와 모든 관계자들은 당신의 거래의 결과에 대해 책임을 지지 않습니다.

Installation

Pydaybit installation

$ pip3 install --upgrade pydaybit

설치 방법은 오른쪽을 참고 하십시오.

API Key Pair

Pydaybit을 사용하기 위해서는 API 키페어 생성을 해야합니다. 권한 항목을 참조하십시오.

Environment Variables

bash example

# ~/.bash_profile
export DAYBIT_API_KEY="YOUR_OWN_API_KEY"
export DAYBIT_API_SECRET="YOUR_OWN_API_SECRET"

환경 변수를 세팅하여 사용할 수 있습니다

Without Environment Variables

without environment settings

import asyncio

from pydaybit import Daybit, PARAM_API_KEY, PARAM_API_SECRET


async def daybit_example():
    async with Daybit(params={PARAM_API_KEY: "YOUR_OWN_API_KEY",
                              PARAM_API_SECRET: "YOUR_OWN_API_SECRET"}) as daybit:
        pass


asyncio.get_event_loop().run_until_complete(daybit_example())

API 키페어는 환경 변수 설정 없이도 사용할 수 있습니다. 예제를 참고하십시오.

get_server_time()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_get_server_time():
    async with Daybit() as daybit:
        pprint(await daybit.get_server_time())


asyncio.get_event_loop().run_until_complete(daybit_get_server_time())

Example Response

1537418605426 # unix_timestamp

데이빗 API 서버의 현재 시간을 밀리초 단위의 유닉스 타임스탬프를 받아옵니다.

create_order()

Example Request

import asyncio
from contextlib import suppress
from decimal import Decimal
from pprint import pprint

from pydaybit import Daybit
from pydaybit.exceptions import OrderAlreadyClosed


async def current_price(daybit, quote, base):
    summary_intvl = sorted((await daybit.market_summary_intvls()).keys())[0]
    price = (await (daybit.market_summaries / summary_intvl)())['{}-{}'.format(quote, base)]['close']
    return Decimal(price)


async def daybit_create_order_sell():
    async with Daybit() as daybit:
        quote = 'USDT'
        base = 'BTC'

        tick_price = Decimal((await daybit.markets())['{}-{}'.format(quote, base)]['tick_price'])
        tick_amount = Decimal((await daybit.coins())[base]['tick_amount'])

        # amount * price should be greater than 10 USDT.
        price = ((await current_price(daybit, quote, base)) * Decimal(1.2)).quantize(tick_price)
        amount = (Decimal(10.5) / price).quantize(tick_amount)

        response = await daybit.create_order(
            sell=True,
            role='both',
            quote=quote,
            base=base,
            price=price,
            amount=amount,
            cond_type='none',
        )
        pprint(response)

        with suppress(OrderAlreadyClosed):
            await daybit.cancel_order(response['id'])


asyncio.get_event_loop().run_until_complete(daybit_create_order_sell())

Example Response

{
  'amount': '0.00200000',
  'base': 'BTC',
  'cancel_reason': None,
  'close_type': None,
  'closed_at': None,
  'cond_arg1': None,
  'cond_arg2': None,
  'cond_type': 'none',
  'filled': '0.00000000',
  'filled_quote': '0.00000000',
  'id': 53026865,
  'placed_amount': '0.00200000',
  'placed_at': 1537419310682,
  'price': '6961.00000000',
  'quote': 'USDT',
  'received_at': 1537419310639,
  'role': 'both',
  'sell': True,
  'status': 'placed',
  'unfilled': '0.00200000'
}

코인은 사거나 파는 주문을 생성합니다. 데이빗 API 서버에 요청할 수 있는 다섯 가지의 주문 종류가 있습니다 - 리미트 주문, 테이커 주문, 메이커 주문, 스탑 리미트 주문, 트레일링 스탑 주문.

잘못된 주문(주문 무효)의 경우는 다음과 같습니다

sell, quote, base, amount, role, cond_type 파라미터 값은 모든 주문에서 필요합니다.

Parameter Type Required Description
sell boolean Required 판매일 경우 True, 구매일 경우 False.
quote string Required 호가 코인 기호. 예) "BTC"
base string Required 기준 코인 기호. 예) "ETH"
amount decimal Required 주문 수량.
role string Required 마켓에서의 주문의 역할 ("both", "maker_only", "taker_only").
cond_type string Required 주문의 조건 종류 ("none", "le", "ge", "fall_from_top", "rise_from_bottom").
price decimal Optional 주문 가격.
cond_arg1 decimal Optional 조건 주문의 첫번째 인자.
cond_arg2 decimal Optional 조건 주문의 두번째 인자.

Limit Order

Example Limit Order

await daybit.create_order(
    sell=True, # True for selling, False for buying.
    role='both',
    quote=quote,
    base=base,
    price=price,
    amount=amount,
    cond_type='none',
)

이 주문이 접수되면 먼저 테이커 주문 taker order 로 여겨지고, 만약 주문의 잔량이 있다면 메이커 주문 maker order 가 됩니다.

Parameter Type Required Description
sell boolean Required 판매일 경우 True, 구매일 경우 False.
role string Required "both"
quote string Required 호가 코인 기호. 예) "BTC"
base string Required 기준 코인 기호. 예) "ETH"
price decimal Required 주문 가격. price = base / quote.
amount decimal Required quote 기준 주문 수량.
cond_type string Required "none"

Taker Order

Example Taker Order

await daybit.create_order(
    sell=True, # True for selling, False for buying.
    role='taker_only',
    quote=quote,
    base=base,
    price=price,
    amount=amount,
    cond_type='none',
)

이 주문은 오더북에 있는 거래량 volume 을 가져가서 tacking 오더북에 등록되기 전에 거래를 체결하기 때문에 테이커 tacker 라고 합니다.

Parameter Type Required Description
sell boolean Required 판매일 경우 True, 구매일 경우 False.
role string Required "taker_only"
quote string Required 호가 코인 기호.
base string Required 기준 코인 기호.
price decimal Required 주문 가격. price = base / quote.
amount decimal Required quote 기준 주문 수량.
cond_type string Required "none"

Maker Order

Example Maker Order

await daybit.create_order(
    sell=True, # True for selling, False for buying.
    role='maker_only',
    quote=quote,
    base=base,
    price=price,
    amount=amount,
    cond_type='none',
)

주문이 오더북을 채워 마켓을 만들기 making 하기 때문에 이러한 주문은 메이커 maker 라고 불립니다. 이 주문은 오더북을 채울 때만 유효합니다.

Parameter Type Required Description
sell boolean Required 판매일 경우 True, 구매일 경우 False.
role string Required "maker_only"
quote string Required 호가 코인 기호.
base string Required 기준 코인 기호.
price decimal Required 주문 가격. price = base / quote.
amount decimal Required quote 기준 주문 수량.
cond_type string Required "none"

Stop Limit Order

Example Stop Limit Order

await daybit.create_order(
    sell=True, # True for selling, False for buying.
    role='both',
    quote=quote,
    base=base,
    price=price,
    amount=amount,
    cond_type='ge', # cond_type could be 'ge' or 'le'.
    cond_arg1=price * Decimal(1.5)
)

현재 가격이 cond_arg보다 같거나 클 때/ 같거나 작을 때, 리미트 주문을 접수합니다.

Parameter Type Required Description
sell boolean Required 판매일 경우 True, 구매일 경우 False.
role string Required "both"
quote string Required 호가 코인 기호.
base string Required 기준 코인 기호.
price decimal Required 주문 가격. price = base / quote.
amount decimal Required quote 기준 주문 수량.
cond_type string Required "le" 혹은 "ge".
cond_arg1 decimal Required 주문의 조건가. 이 값을 현재가와 비교합니다.

Trailing Stop Order

Example Trailing Stop Order

await daybit.create_order(
    sell=True,  # True for 'down_from_high', False for 'up_from_low'.
    role='both',
    quote='USDT',
    base='BTC',
    amount=Decimal('0.1'),
    cond_type='down_from_high',  # cond_type could be 'down_from_high' or 'up_from_low'.
    cond_arg1=Decimal('-0.01'),
    cond_arg2=Decimal('-0.005'),
)

트래일링 스탑 주문 trailing stop order 을 사용하면, 가격이 고가에 크게 떨어질 때 현재 가격보다 조금 낮은 가격에 매도 리미트 주문을 접수할 수 있다. 마찬가지로, 현재 가격이 저가에 비해 크게 상승하면 현재가격보다 조금 높은 가격에 매수 리미트 주문을 접수할 수 있습니다.

예를들어, (sell=True, role='both', quote='BTC', base='USDT', amount='0.1', cond_type='down_from_high', cond_arg1='-0.01', cond_arg2='-0.005')로 주문을 냈다고 가정합니다. 트래일링 스탑 주문이 접수되고, 가격이 10,000 USDT에 도달한뒤 떨어지기 시작한 상황에서는 이 주문은 9,000 USDT (= 1000 USDT * (1 + cond_arg1))에 트리거 되어 리미트 오더를 8,955 USDT (= 9,000 USDT * (1 + cond_arg2))에 접수합니다.

Parameter Type Required Description
sell boolean Required "down_from_high"일 경우 True, "up_from_low"일 경우 false.
role string Required "both"
quote string Required 호가 코인 기호.
base string Required 기준 코인 기호.
amount decimal Required 주문 수량.
cond_type string Required "down_from_high" 혹은 "up_from_low".
cond_arg1 decimal Required 고점에서 하락 down from high 의 경우, 고점 대비 가격 하락 비율.
저점에서 상승 up from low 의 경우, 저점 대비 가격 상승 비율.
cond_arg2 decimal Required cond_arg1 관련 조건이 만족되면, 현재가 * (1 + cond_arg2) 가격에 리미트 주문을 접수합니다.

cancel_order()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_cancel_order():
    async with Daybit() as daybit:
        pprint(await daybit.cancel_order(53216861))


asyncio.get_event_loop().run_until_complete(daybit_cancel_order())

Example Response

{
  'amount': '0.00200000',
  'base': 'BTC',
  'cancel_reason': 'user',
  'close_type': 'canceled',
  'closed_at': 1537421465336,
  'cond_arg1': None,
  'cond_arg2': None,
  'cond_type': 'none',
  'filled': '0.00000000',
  'filled_quote': '0.00000000',
  'id': 53216861,
  'placed_amount': '0.00200000',
  'placed_at': 1537421443079,
  'price': '6595.00000000',
  'quote': 'USDT',
  'received_at': 1537421443074,
  'role': 'both',
  'sell': False,
  'status': 'closed',
  'unfilled': '0.00200000'
}

접수된 주문을 취소합니다. 주문 취소를 위해서는 유효한 주문 id를 넣어야 합니다.

Arguments

Parameter Type Required Description
order_id integer Required 취소하려고 하는 주문의 id

cancel_orders()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_cancel_orders():
    async with Daybit() as daybit:
        my_orders = await daybit.my_orders()
        open_orders = ([my_orders[key]['id'] for key in my_orders if my_orders[key]['status'] == 'placed'])
        pprint(open_orders)
        pprint(await daybit.cancel_orders(open_orders))


asyncio.get_event_loop().run_until_complete(daybit_cancel_orders())

Example Response

{
  'num_canceled_orders': 5
}

여러 개의 주문을 한번에 취소할 때 사용합니다. order_ids에서 일치하는 id를 가지는 유효한 주문을 취소합니다. 취소된 주문의 갯수는 응답의 num_canceled_orders를 참조하십시오.

Arguments

Parameter Type Required Description
order_ids array Required 쥐소하려고 하는 주문들의 id.

Response

Field Description
num_canceled_orders 취소한 주문의 갯수.

cancel_all_my_orders()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_cancel_all_my_orders():
    async with Daybit() as daybit:
        response = await daybit.cancel_all_my_orders()
        pprint(response)


asyncio.get_event_loop().run_until_complete(daybit_cancel_all_my_orders())

Example Response

{
  'num_canceled_orders': 2
}

내 모든 주문을 취소합니다.

Response

Field Description
num_canceled_orders 취소한 주문의 갯수.

create_wdrl()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_create_wdrl():
    async with Daybit() as daybit:
        pprint(await daybit.create_wdrl(coin='BTC', to_addr='<YOUR BTC ADDRESS>', amount='0.01'))


asyncio.get_event_loop().run_until_complete(daybit_create_wdrl())

Example Response

{
  'amount': '0.01000000',
  'coin': 'BTC',
  'completed_at': None,
  'confirm': 0,
  'created_at': 1538639363972,
  'deposit_status': None,
  'id': 5294,
  'req_confirm': 10,
  'tx_link_url': 'https://live.blockcypher.com/btc/tx/',
  'txid': None,
  'type': 'wdrl',
  'wdrl_status': 'queued',
  'wdrl_to_addr': '<YOUR BTC ADDRESS>',
  'wdrl_to_org': None,
  'wdrl_to_tag': None
}

to_addramount만큼의 coin의 출금을 요청합니다.

Arguments

Parameter Type Required Description
coin string Required 출금 코인.
to_addr string Required 출금을 받을 주소.
to_tag string Optional 출금 태그. XRP 등에서 사용.
amount decimal Required 출금 수량.

coins()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_coins():
    async with Daybit() as daybit:
        pprint(await daybit.coins())


asyncio.get_event_loop().run_until_complete(daybit_coins())

Example Response

{
  'ADA': {
    'deposit_confirm': 3,
    'deposit_enabled': True,
    'has_org': False,
    'has_tag': False,
    'min_deposit': '100.00000000',
    'min_wdrl': '100.00000000',
    'name': 'Ada',
    'native_decimal_places': 8,
    'sym': 'ADA',
    'tick_amount': '2.00000000',
    'tradable': False,
    'wdrl_confirm': 10,
    'wdrl_enabled': True,
    'wdrl_fee': '50.00000000'
  },

  # ...       

  'ZRX': {
    'deposit_confirm': 3,
    'deposit_enabled': True,
    'has_org': False,
    'has_tag': False,
    'min_deposit': '13.00000000',
    'min_wdrl': '13.00000000',
    'name': '0x Protocol',
    'native_decimal_places': 4,
    'sym': 'ZRX',
    'tick_amount': '0.20000000',
    'tradable': True,
    'wdrl_confirm': 10,
    'wdrl_enabled': True,
    'wdrl_fee': '6.30000000'
  }
}

코인 데이터를 구독합니다.

coin_prices()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


# For every coin
async def daybit_coin_prices():
    async with Daybit() as daybit:
        pprint(await daybit.coin_prices())


# For specific coin
async def daybit_coin_prices_with_sym(sym='ETH'):
    async with Daybit() as daybit:
        pprint(await (daybit.coin_prices / sym)())


asyncio.get_event_loop().run_until_complete(daybit_coin_prices())
# asyncio.get_event_loop().run_until_complete(daybit_coin_prices_with_sym())

Example Response

# If you didn't specify the coin
{
  'ADA': {
    'sym': 'ADA',
    'usd_price': '0.09000000'
  },

  # ...

  'ZRX': {
    'sym': 'ZRX',
    'usd_price': '0.67047870'
  }
}

# If you specified the coin
{
  'ETH': {
    'sym': 'ETH',
    'usd_price': '291.88000000'
  }
}

coin_prices()

모든 코인의 USD 환산 가격을 받아 옵니다. 어떤 코인이라도 가격에 변화가 있으면 notification 이벤트를 받을 것입니다. 가격 변화가 있는 코인만 업데이트 됩니다.

(coin_prices / <sym>)()

특정 코인의 USD 환산 가격을 받아 옵니다. 명시한 코인의 가격이 변화가 있을 때 마다 notification 이벤트를 받을 것입니다.

quote_coins()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_quote_coins():
    async with Daybit() as daybit:
        pprint(await daybit.quote_coins())


asyncio.get_event_loop().run_until_complete(daybit_quote_coins())

Example Response

{
  'BTC': {
    'sym': 'BTC'
  },
  'ETH': {
    'sym': 'ETH'
  },
  'USDT': {
    'sym': 'USDT'
  }
}

호가 코인 리스트를 구독합니다.

markets()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_markets():
    async with Daybit() as daybit:
        pprint(await daybit.markets())


asyncio.get_event_loop().run_until_complete(daybit_markets())

Example Response

{
  'BTC-ADA': {
    'base': 'ADA',
    'buyable': True,
    'quote': 'BTC',
    'sellable': True,
    'tick_levels': 5,
    'tick_price': '0.00000001'
  },

  # ...

  'USDT-ETH': {
    'base': 'ETH',
    'buyable': True,
    'quote': 'USDT',
    'sellable': True,
    'tick_levels': 5,
    'tick_price': '0.02000000'
  }
}

시장 데이터를 구독합니다.

market_summary_intvls()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_market_summary_intvls():
    async with Daybit() as daybit:
        pprint(await daybit.market_summary_intvls())


asyncio.get_event_loop().run_until_complete(daybit_market_summary_intvls())

Example Response

{
  30: {
    'seconds': 30
  },

  # ...

  1440: {
    'seconds': 1440
  }
}

시장 가격의 시간 간격을 구독합니다. 시간 간격은 초 단위 입니다. 각 시간 간격은 시장 요약을 구독할 때 사용됩니다.

market_summaries()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_market_summaries():
    async with Daybit() as daybit:
        intvls = sorted((await daybit.market_summary_intvls()).keys())
        pprint(await (daybit.market_summaries / intvls[0])())


asyncio.get_event_loop().run_until_complete(daybit_market_summaries())

Example Response

{
  'BTC-AMO': {
    'base': 'AMO',
    'base_vol': '141900.000',
    'close': '0.00000046',
    'high': '0.00000046',
    'low': '0.00000046',
    'open': '0.00000046',
    'quote': 'BTC',
    'quote_vol': '0.065',
    'seconds': 30,
    'volatility': '0.0000'
  },

  # ...

  'USDT-ETH': {
    'base': 'ETH',
    'base_vol': '0.275',
    'close': '291.82',
    'high': '291.82',
    'low': '291.82',
    'open': '291.82',
    'quote': 'USDT',
    'quote_vol': '80.251',
    'seconds': 30,
    'volatility': '0.0000'
  }
}

시장 요약을 구독합니다. 유효한 seconds시장 요약 간격을 참고 하십시오.

order_books()

Example Request

import asyncio
from decimal import Decimal
from pprint import pprint

from pydaybit import Daybit


async def daybit_order_books():
    async with Daybit() as daybit:
        quote = 'USDT'
        base = 'BTC'
        multiple = 10
        assert multiple in [1, 10, 100, 1000]
        price_intvl = Decimal((await daybit.markets())['{}-{}'.format(quote, base)]['tick_price']) * multiple
        pprint(await (daybit.order_books / quote / base / price_intvl)())


asyncio.get_event_loop().run_until_complete(daybit_order_books())

Example Response

{
  '6475.00000000-6480.00000000': {
    'base': 'BTC',
    'buy_vol': '0.02086000',
    'intvl': '5.00000000',
    'max_price': '6480.00000000',
    'min_price': '6475.00000000',
    'quote': 'USDT',
    'sell_vol': '0.00000000'
  },

  # ...

 '7640.00000000-7645.00000000': {
    'base': 'BTC',
    'buy_vol': '0.00000000',
    'intvl': '5.00000000',
    'max_price': '7645.00000000',
    'min_price': '7640.00000000',
    'quote': 'USDT',
    'sell_vol': '0.01060000'
  }
}

가격 단위로 나뉜 오더북을 구독합니다. 오더북 데이터에는 id가 없기 때문에 min_pricemax_price로 구별해야 합니다. sell_vol의 경우 (min_price, max_price]의 구간의 물량을 합한 값이고, buy_vol의 경우 [min_price, max_price)의 구간의 물량을 합한 값입니다. sell_volbuy_vol이 모두 양수인 경우는 많아도 한 구간입니다.

price_intvl시장tick_price × [1, 10, 100, 1000] 중에 하나를 사용할 수 있습니다.

price_history_intvls()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_price_history_intvls():
    async with Daybit() as daybit:
        pprint(await daybit.price_history_intvls())


asyncio.get_event_loop().run_until_complete(daybit_price_history_intvls())

Example Response

{
  60: {
    'seconds': 60
  },

  # ...

  86400: {
    'seconds': 86400
  }
}

시장 가격 데이터의 유효한 시간 간격을 구독합니다. 시간 간격은 Price histories의 입력으로 사용됩니다.

price_histories()

Example Request

import asyncio
import time
from pprint import pprint

from pydaybit import Daybit


async def daybit_price_histories():
    async with Daybit() as daybit:
        quote = 'USDT'
        base = 'BTC'
        intvl = sorted((await daybit.price_history_intvls()).keys())[0]
        pprint(
            await (daybit.price_histories / quote / base / intvl)(from_time=int(time.time() * 1000 - intvl * 10 * 1000),
                                                                  to_time=int(time.time() * 1000)))


asyncio.get_event_loop().run_until_complete(daybit_price_histories())

Example Response

{
  'USDT-BTC-60-1537351080000': {
    'base': 'BTC',
    'base_vol': '0',
    'close': '6833.00000000',
    'end_time': 1537351140000,
    'high': '6833.00000000',
    'intvl': 60,
    'low': '6833.00000000',
    'open': '6833.00000000',
    'quote': 'USDT',
    'quote_vol': '0',
    'start_time': 1537351080000
  },

  # ...

  'USDT-BTC-60-1537351680000': {
    'base': 'BTC',
    'base_vol': '0',
    'close': '6833.00000000',
    'end_time': 1537351740000,
    'high': '6833.00000000',
    'intvl': 60,
    'low': '6833.00000000',
    'open': '6833.00000000',
    'quote': 'USDT',
    'quote_vol': '0',
    'start_time': 1537351680000
  }
}

마켓의 가격 정보를 구독합니다. 유효한 intvl가격 기록 간격을 참고하십시오.

Arguments

Parameter Type Required Description
from_time unix_timestamp Required 가격 기록 범위의 시작 시간.
to_time unix_timestamp Required 가격 기록 범위의 끝 시간.

trades()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_trades():
    async with Daybit() as daybit:
        quote = 'USDT'
        base = 'BTC'
        pprint(await (daybit.trades / quote / base)(size=10))


asyncio.get_event_loop().run_until_complete(daybit_trades())

Example Response

{
  40810689: {
    'base': 'BTC',
    'base_amount': '0.00266000',
    'exec_at': 1537350775639,
    'id': 40810689,
    'price': '6833.00000000',
    'quote': 'USDT',
    'quote_amount': '18.17578000',
    'taker_sold': True
  },

  # ...

  40811438: {
    'base': 'BTC',
    'base_amount': '0.00458000',
    'exec_at': 1537352156105,
    'id': 40811438,
    'price': '6833.00000000',
    'quote': 'USDT',
    'quote_amount': '31.29514000',
    'taker_sold': True
  }
}

마켓의 거래를 구독합니다

Arguments

Parameter Type Required Description
num_trades integer Required 받아올 거래의 갯수.

my_users()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_users():
    async with Daybit() as daybit:
        pprint(await daybit.my_users())


asyncio.get_event_loop().run_until_complete(daybit_my_users())

Example Response

[
  {
    'maker_fee_rate': '0.001000',
    'one_day_wdrl_usd_limit': '5000.00000000',
    'pay_fee_with_day': True,
    'taker_fee_rate': '0.001000'
  }
]

내 계정의 정보를 구독합니다.

my_assets()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_assets():
    async with Daybit() as daybit:
        pprint(await daybit.my_assets())


asyncio.get_event_loop().run_until_complete(daybit_my_assets())

Example Response

{
  'ADA': {
    'available': '700000.000000000000000000',
    'coin': 'ADA',
    'investment_usd': '0.000000000000000000',
    'reserved': '0.000000000000000000',
    'total': '700000.000000000000000000',
    'visible': True
  },

  # ...

  'ZRX': {
    'available': '90000.000000000000000000',
    'coin': 'ZRX',
    'investment_usd': '0.000000000000000000',
    'reserved': '0.000000000000000000',
    'total': '90000.000000000000000000',
    'visible': True
  }
}

내 자신의 정보를 구독합니다.

my_orders()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_orders():
    async with Daybit() as daybit:
        pprint(await daybit.my_orders(closed=False))


asyncio.get_event_loop().run_until_complete(daybit_my_orders())

Example Response

{
  81133319: {
    'amount': '0.00020000',
    'base': 'BTC',
    'cancel_reason': 'user',
    'close_type': 'canceled',
    'closed_at': 1537339108567,
    'cond_arg1': None,
    'cond_arg2': None,
    'cond_type': 'none',
    'filled': '0.00000000',
    'filled_quote': '0.00000000',
    'id': 81133319,
    'placed_amount': '0.00020000',
    'placed_at': 1537339108540,
    'price': '6040.50000000',
    'quote': 'USDT',
    'received_at': 1537339108516,
    'role': 'both',
    'sell': True,
    'status': 'closed',
    'unfilled': '0.00020000'
  },

  # ...

  82722801: {
    'amount': '0.00020000',
    'base': 'BTC',
    'cancel_reason': None,
    'close_type': 'filled',
    'closed_at': 1537347509954,
    'cond_arg1': None,
    'cond_arg2': None,
    'cond_type': 'none',
    'filled': '0.00020000',
    'filled_quote': '1.41820000',
    'id': 82722801,
    'placed_amount': '0.00020000',
    'placed_at': 1537347483279,
    'price': '7091.00000000',
    'quote': 'USDT',
    'received_at': 1537347483275,
    'role': 'both',
    'sell': False,
    'status': 'closed',
    'unfilled': '0.00000000'
  }
}

내 주문의 정보를 구독합니다.

Arguments

Parameter Type Required Description
quote string Optional 호가 코인 기호. ex) "BTC"
base string Optional 기준 코인 기호. ex) "ETH"
to_id integer Optional to_id보다 작은 id를 가진 주문을 가져옵니다.
size integer Optional 가져올 주문의 갯수. size ≤ 30.
sell boolean Optional 매수 주문은 true. 매도 주문은 false.
closed boolean Optional 가져올 주문의 status. false이면 receivedplaced를 가져옵니다. true이면 closed를 가져옵니다.

my_trades()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_trades():
    async with Daybit() as daybit:
        pprint(await daybit.my_trades(sell=True, quote='USDT'))


asyncio.get_event_loop().run_until_complete(daybit_my_trades())

Example Response

{
  40807547: {
    'base': 'BTC',
    'base_amount': '0.00020000',
    'coin_fee': '0.00141820',
    'counterpart': 'user',
    'day_fee': '0.00000000',
    'exec_at': 1537347408941,
    'id': 40807547,
    'order_id': 82707048,
    'price': '7091.00000000',
    'quote': 'USDT',
    'quote_amount': '1.41820000',
    'sell': True,
    'taker_sold': True
  },

  # ...

  40807691: {
    'base': 'BTC',
    'base_amount': '0.00020000',
    'coin_fee': '0.00000000',
    'counterpart': 'user',
    'day_fee': '0.04415411',
    'exec_at': 1537347509915,
    'id': 40807691,
    'order_id': 82722801,
    'price': '7091.00000000',
    'quote': 'USDT',
    'quote_amount': '1.41820000',
    'sell': False,
    'taker_sold': True
  }
}

내 거래 데이터를 구독합니다.

Arguments

Parameter Type Required Description
quote string Optional 호가 코인 기호. ex) "BTC"
base string Optional 기준 코인 기호. ex) "ETH"
to_id integer Optional to_id 보다 작은 id를 가진 내 거래를 가져옵니다.
size integer Optional 가져올 거래의 갯수. size ≤ 30.
sell boolean Optional 매도의 경우 true. 매수의 경우 false.

my_tx_summaries()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_tx_summaries():
    async with Daybit() as daybit:
        pprint(await daybit.my_tx_summaries(type='deposit'))
        pprint(await daybit.my_tx_summaries(type='wdrl'))


asyncio.get_event_loop().run_until_complete(daybit_my_tx_summaries())

Example Response

# response of daybit.my_tx_summaries(type='deposit')
{
  47283: {
    'amount': '1.2977',
    'coin': 'LTC',
    'completed_at': 1537417829032,
    'confirm': 3847,
    'created_at': 1537417829029,
    'deposit_status': 'completed',
    'id': 47283,
    'req_confirm': 3,
    'tx_link_url': 'https://live.blockcypher.com/ltc/tx/a809a19d194d48967f1c8b6aa1dae33d412ece2570fe8d9b751d63a703e15183',
    'txid': 'a809a19d194d48967f1c8b6aa1dae33d412ece2570fe8d9b751d63a703e15183',
    'type': 'deposit',
    'wdrl_status': None,
    'wdrl_to_addr': None,
    'wdrl_to_org': None,
    'wdrl_to_tag': None
  },

  # ...

  47287: {
    'amount': '0.01448502',
    'coin': 'BTC',
    'completed_at': 1537417829091,
    'confirm': 955,
    'created_at': 1537417829087,
    'deposit_status': 'completed',
    'id': 47287,
    'req_confirm': 3,
    'tx_link_url': 'https://live.blockcypher.com/btc/tx/af9648f4c1622b3872649019d4391248d9c93bdd9630e16128431d475d2263a4',
    'txid': 'af9648f4c1622b3872649019d4391248d9c93bdd9630e16128431d475d2263a4',
    'type': 'deposit',
    'wdrl_status': None,
    'wdrl_to_addr': None,
    'wdrl_to_org': None,
    'wdrl_to_tag': None
  }
}

# example of daybit.my_tx_summaries(type='wdrl')
{
  47291: {
    'amount': '100.00000000',
    'coin': 'ADA',
    'completed_at': None,
    'confirm': 0,
    'created_at': 1537419011126,
    'deposit_status': None,
    'id': 47291,
    'req_confirm': 10,
    'tx_link_url': None,
    'txid': None,
    'type': 'wdrl',
    'wdrl_status': 'queued',
    'wdrl_to_addr': '0x2b7cd7f27d21da93395a4c19aea80f8467f93596',
    'wdrl_to_org': None,
    'wdrl_to_tag': None
  }
}

나의 이체 내역 transaction 을 구독합니다.

Arguments

Parameter Type Required Description
type string Required 입금의 경우 deposit. 출금의 경우 wdrl.
to_id integer Optional to_id 보다 작은 id를 가진 이체 내역 transaction 을 가져옵니다.
size integer Optional 가져올 이체 내역을 갯수. size ≤ 30.

my_airdrop_histories()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_airdrop_histories():
    async with Daybit() as daybit:
        pprint(await daybit.my_airdrop_histories())


asyncio.get_event_loop().run_until_complete(daybit_my_airdrop_histories())

Example Response

{10: {'amount': '200.00000000',
      'category': 'project',
      'coin': 'DAY',
      'exec_at': 1539148862461,
      'id': 10}}

내 에어드랍 기록을 구독합니다.

arguments

Parameter Type Required Description
to_id integer Optional idto_id보다 작은 당신의 에어드랍을 가져옵니다.
size integer Optional 가져올 에어드랍 기록의 갯수. size ≤ 30.

trade_vols()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_trade_vols():
    async with Daybit() as daybit:
        pprint(await daybit.trade_vols(size=5))


asyncio.get_event_loop().run_until_complete(daybit_trade_vols())

Example Response

{1542412800000: {'end_time': 1542499200000,
                 'start_time': 1542412800000,
                 'usd_amount': '0'},
 1542499200000: {'end_time': 1542585600000,
                 'start_time': 1542499200000,
                 'usd_amount': '0'},
 1542585600000: {'end_time': 1542672000000,
                 'start_time': 1542585600000,
                 'usd_amount': '0'},
 1542672000000: {'end_time': 1542758400000,
                 'start_time': 1542672000000,
                 'usd_amount': '23340096.41952102'},
 1542758400000: {'end_time': 1542844800000,
                 'start_time': 1542758400000,
                 'usd_amount': '2970733.71822306'}}

데이빗 거래량의 USD 환산 금액을 구독합니다.

arguments

Parameter Type Required Description
size integer Optional 가져올 거래량의 갯수. size ≤ 30.

day_avgs()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_day_avgs():
    async with Daybit() as daybit:
        pprint(await daybit.day_avgs())


asyncio.get_event_loop().run_until_complete(daybit_day_avgs())

Example Response

{1542844800000: {'avg': '63115476.62825952',
                 'end_time': 1542931200000,
                 'start_time': 1542844800000}}

Example of Day Contriubtion

import asyncio
from datetime import datetime
from decimal import Decimal

from pydaybit import Daybit


async def daybit_day_contribution():
    async with Daybit() as daybit:
        day_avgs = (await daybit.day_avgs())[0]
        my_day_avgs = (await daybit.my_day_avgs())[0]

        start_time = my_day_avgs['start_time']
        end_time = my_day_avgs['end_time']

        day_avg = Decimal(day_avgs['avg'])
        my_day_avg = Decimal(my_day_avgs['avg'])

        print('[{} - {}] Estimated My Contribution : {}'.format(datetime.fromtimestamp(start_time / 1000),
                                                                datetime.fromtimestamp(end_time / 1000),
                                                                (my_day_avg / day_avg).quantize(
                                                                    Decimal('0.0001'))))


asyncio.get_event_loop().run_until_complete(daybit_day_contribution())
# Output
[2018-11-23 09:00:00 - 2018-11-24 09:00:00] Estimated My Contribution : 0.0001

단위 시간 동안, 리워드로 분배된 DAY 총량의 평균을 구독합니다. DAY 기여율을 구하기 위해 사용할 수 있습니다. Example of Day Contriubtion 예제를 참고하십시오.

div_plans()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_div_plans():
    async with Daybit() as daybit:
        pprint(await daybit.div_plans())


asyncio.get_event_loop().run_until_complete(daybit_div_plans()) 

Example Response

{1540339200000: {'div_btc': '21.31789479',
                 'div_count': 1128,
                 'end_time': 1540425600000,
                 'start_time': 1540339200000},

 ...

 1542844800000: {'div_btc': '3.83510361',
                 'div_count': 417,
                 'end_time': 1542931200000,
                 'start_time': 1542844800000}}

BTC 리워드를 구독합니다.

arguments

Parameter Type Required Description
size integer Optional 가져올 DivPlan의 갯수. size ≤ 30.
to_end_time unix_timestamp Optional end_time 기준 제한

my_trade_vols()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_trade_vols():
    async with Daybit() as daybit:
        pprint(await daybit.my_trade_vols())


asyncio.get_event_loop().run_until_complete(daybit_my_trade_vols())

Example Response

[{'end_time': 1543017600000, 'start_time': 1542931200000, 'usd_amount': '0'}]

나의 거래량의 USD 환산 금액을 구독합니다.

my_day_avgs()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_day_avgs():
    async with Daybit() as daybit:
        pprint(await daybit.my_day_avgs())


asyncio.get_event_loop().run_until_complete(daybit_my_day_avgs())

Example Response

[{'avg': '200.00000000',
  'end_time': 1543017600000,
  'start_time': 1542931200000}]

단위 시간 동안 나의 DAY 평균 보유량을 구독합니다. DAY 기여율을 구하기 위해 사용할 수 있습니다. Example of Day Contriubtion 예제를 참고하십시오.

my_divs()

Example Request

import asyncio
from pprint import pprint

from pydaybit import Daybit


async def daybit_my_divs():
    async with Daybit() as daybit:
        pprint(await daybit.my_divs())


asyncio.get_event_loop().run_until_complete(daybit_my_divs())

Example Response

{}

나의 BTC 리워드를 구독합니다.

arguments

Parameter Type Required Description
size integer Optional 가져올 DivPlan의 갯수. size ≤ 30.
to_end_time unix_timestamp Optional end_time 기준 제한