API

API에 대해 자세히 알아보기

웹소켓 API

WebSockets 문서

REST API

일반 사용법

참조: 모든 API URL은 api.kraken.com 도메인을 사용해야 합니다.

요청 헤더를 만들 때 사용자 에이전트 문자열이 필요하며, 사용자가 에이전트 문자열을 제공하지 않는 경우 API에 접속할 수 없습니다.

크라켄에는 '브라우저 통합성 검사'가 활성화되어있습니다.

요청 헤더에 유저 에이전트가 없거나 표준화되지 않은 유저 에이전트가 존재할 경우 에러가 발생할 수 있습니다.

크라켄에서 허가한 표준화된 요청을 할 수 없는 경우, 시도하고 있는 요청의 전체 복사본과 회원님의 IP 주소 및 모든 헤더 정보를 저희에게 보내주시기 바랍니다. 상기 정보는 저희가 추가적인 조사를 하는 데 사용됩니다.

퍼블릭 메서드는 GET과 POST 모두 사용이 가능합니다.

프라이빗 메서드는 POST를 반드시 사용해야 하며 다음과 같이 설치 및 구성할 수 있습니다.

HTTP 헤더:

API-Key = API 키
API-Sign = URI path + SHA256(논스 + POST 데이터))의 HMAC-SHA512 및 base64로 복호화한 API 비밀키를 사용한 메시지 서명

POST 데이터:

nonce = 항상 크기가 증가하는 부호가 없는 64 비트 정수
otp = 이중 인증 암호(이중 인증이 활성화되어 있는 경우에만 요구되며 활성화되어 있지 않은 경우 요구되지 않음)

참조: 논스를 현재 값보다 작은 수로 낮추기 위해 초기화할 수 있는 방법은 없습니다. 따라서 논스의 이전 값보다 작은 수를 생성하는 논스 생성 장치를 사용하지 않도록 하십시오. 100 분의 1 초 이상의 정밀도를 가진 영구 카운터 또는 현재 시간을 사용하는 것을 권장합니다. 가장 마지막 유효 논스 값보다 낮은 논스(EAPI:유효하지 않은 논스)로 너무 많은 요청이 수행되는 경우 일시적인 제한을 초래합니다.

참조: 때때로 요청이 순서에 맞지 않게 들어오거나 NTP가 시계를 거꾸로 되감아 논스에 문제를 일으킬 수 있습니다. 만약 이러한 문제가 발생한 경우 계정의 API 설정 페이지에서 논스 창을 변경할 수 있습니다. 변경할 논스 창의 값은 논스를 어떻게 증가시키느냐에 따라 달라집니다. 네트워크 환경에 따라 3~5초의 네트워크 문제를 감당할 수 있는 정도로 설정하는 것을 권장합니다.

통화 자산을 필요로 하는 API 요청은 ISO가 이름을 등록한 경우, 자산의 ISO4217-A3 명을 사용할 수 있으며 ISO에 이름이 등록되지 않은 경우, 보통 자산의 이름에서 3 개의 철자를 따서 사용하거나 자산의 X-ISO4217-A3 코드를 사용합니다.(더 알아보기 http://www.ifex-project.org/).

응답은 JSON으로 표기되며 다음의 형식을 따릅니다.

error = 다음 포맷의 오류 메시지 배열:
    <char-severity code><string-error category>:<string-error type>[:<string-extra info>]
    심각도 코드는 오류의 경우 E 경고의 경우 W를 사용할 수 있음
result = API 요청 결과(오류가 발생한 경우 표시되지 않을 수 있음)

참조: 문자열로 표현된 숫자를 처리할 때는 표준 데이터 형식에 오버플로가 발생할 수 있으니 특별히 주의해 주시기 바랍니다.

API 요청수 제한

크라켄은 급격한 주문 또는 주문 취소 증가로 발생할 수 있는 주문 장부의 왜곡뿐만 아니라 디도스 공격으로부터 방어하기 위한 보호를 하고 있습니다.

크라켄의 API를 이용하는 모든 사용자는 0부터 시작하는 "요청 카운터"를 갖습니다.

장부/거래 히스토리 요청은 카운터를 2씩 증가시킵니다.

주문 제출/취소 요청은 카운터에 영향을 미치지 않습니다.

다른 모든 API 요청은 1씩 증가합니다.

사용자의 카운터는 수초에 한 번씩 감소하며, 카운터가 사용자의 API 접속 최댓값을 초과하면 15분간 사용이 중지됩니다. 스타터 사용자는 최댓값이 15이며 카운터는 매 3초마다 1씩 감소합니다. 인터미디어트와 프로 사용자는 최댓값이 20이며 카운터는 인터미디어트 사용자의 경우 2초에 1씩, 프로 사용자의 경우 1초에 1씩 감소합니다.

주문 제출 및 취소 요청은 카운터를 증가시키지 않지만, 주만 장부의 왜곡을 방지하기 위한 별도의 제한이 있습니다. 주문의 체결을 목적으로 제출하는 주문과 1초에 1까지의 요청은 제한을 초과하지 않습니다.

퍼블릭 마켓 데이터

서버 시간 불러오기

URL: https://api.kraken.com/0/public/Time

결과: 서버의 시간

unixtime =  유닉스 타임스탬프
rfc1123 = RFC 1123 형식의 시간

참조: 서버와 클라이언트 사이의 시간차를 줄이기 위하여 사용합니다.

자산 정보 불러오기

URL: https://api.kraken.com/0/public/Assets

입력값:

info = 불러올 정보 (선택):
    info = all info (필수)
aclass = 자산 클래스 (선택):
    currency (필수)
asset = 불러오려는 정보에 쉼표로 구분된 자산 목록 (선택.  필수 = 주어진 모든 자산 클래스)

결과: 자산의 이름과 정보 배열

<asset_name> = 자산 이름
    altname = 별칭
    aclass = 자산 클래스
    decimals = 부기를 위해 소수점 몇째 자리까지 쓰는지
    display_decimals = 소수점 몇째 자리까지 화면에 표시되는지

거래 가능한 자산 쌍 불러오기

URL: https://api.kraken.com/0/public/AssetPairs

입력값:

info = 불러오려는 정보 (선택):
    info = all info (필수)
    leverage = 레버리지 정보
    fees = 수수료 정보
    margin = 마진 정보
pair = 불러오려는 정보에 쉼표로 구분되어 있는 자산 쌍 목록 (선택.  필수 = 모두)

결과: 쌍의 이름과 정보 배열

<pair_name> = 쌍 이름
    altname = 별칭 쌍 이름
    wsname = WebSocket 쌍 이름 (있는 경우)
    aclass_base = 기준통화의 자산 클래스
    base = 기준통화의 자산 아이디
    aclass_quote = 상대통화의 자산 클래스
    quote = 상대통화의 자산 아이디
    lot = 단위 수량
    pair_decimals = 쌍을 소수점 몇째 자리까지 쓰는지
    lot_decimals = 수량을 소수점 몇째 자리까지 쓰는지
    lot_multiplier = 통화량을 불러오기 위해 단위 수량에 곱해야 하는 양
    leverage_buy = 매수 시 활용할 수 있는 레버리지 양의 배열
    leverage_sell = 매도 시 활용할 수 있는 레버리지 양의 배열
    fees = [규모, 백분율 수수료] 튜플 형식의 수수료 정보 배열
    fees_maker = [규모, 백분율 수수료] 튜플 형식의 지정가 수수료 정보 배열(지정가/시장가인 경우)
    fee_volume_currency = 규모에 따라 차등적으로 할인되는 통화
    margin_call = 마진 콜 레벨
    margin_stop = stop-out/강제 청산 마진 레벨

참조: 자산 쌍이 지정가/시장가 수수료 정보에 있는 경우, 시장가 수수료는 "fees"에 표기되고, 지정가 수수료는 "fees_maker"에 표기됩니다. 지정가/시장가 수수료 정보에 없는 쌍의 경우 "fees"에만 그 값이 표기됩니다.

티커(Ticker) 정보 불러오기

URL: https://api.kraken.com/0/public/Ticker

입력값:

pair = 불러오려는 정보에 쉼표로 구분된 자산 쌍 목록

결과: 쌍 이름 및 티커 정보 배열

<pair_name> = 쌍 이름
    a = 매수 배열(<price>, <whole lot volume>, <lot volume>),
    b = 매도 배열(<price>, <whole lot volume>, <lot volume>),
    c = 마지막 거래 종료 배열(<price>, <lot volume>),
    v = 수량 배열(<today>, <last 24 hours>),
    p = 수량가중평균가 배열(<today>, <last 24 hours>),
    t = 거래 횟수 배열(<today>, <last 24 hours>),
    l = 최저가 배열(<today>, <last 24 hours>),
    h = 최고가 배열(<today>, <last 24 hours>),
    o = 금일 개장가

참조: 00:00:00 UTC부터 금일 개장가 시작

OHLC 데이터 불러오기

URL: https://api.kraken.com/0/public/OHLC

입력값:

pair = OHLC 데이터를 불러오려는 자산 쌍
interval = 분단위 시간 간격(선택):
	1 (기본값), 5, 15, 30, 60, 240, 1440, 10080, 21600
since = 주어진 아이디 이후로 기록된 OHLC 데이터 반환(선택. 배타적)

결과: 쌍 이름 및 OHLC 데이터의 배열

<pair_name> = 쌍 이름
    배열 입력값의 배열(<time>, <open>, <high>, <low>, <close>, <vwap>, <volume>, <count>)
last = 새로운 OHLC 데이터를 폴링을 할 때 사용하게 될 아이디

참조: OHLC 배열의 마지막 입력 값은 "since"와는 무관하게 아직 기록되지 않은 항상 현재 상태인 값입니다.

주문 장부 불러오기

URL: https://api.kraken.com/0/public/Depth

입력값:

pair = 시장 깊이를 얻으려는 자산 쌍
count = 매도/매수의 최대(선택)

결과: 쌍 이름 및 시장 깊이의 배열

<pair_name> = 쌍 이름
    asks = 입력값 배열의 매도 측 배열(<price>, <volume>, <timestamp>)
    bids = 입력값 배열의 매수 측 배열(<price>, <volume>, <timestamp>)

최근 거래 불러오기

URL: https://api.kraken.com/0/public/Trades

입력값:

pair = 거래 정보를 불러오려는 자산 쌍
since = 주어진 아이디 이후의 거래 데이터를 반환(선택. 배타적)

결과: 쌍 이름 및 최근 거래 데이터의 배열

<pair_name> = 배열 입력값의 쌍 이름 배열(<price>, <volume>, <time>, <buy/sell>, <market/limit>, <miscellaneous>)
last = 새로운 거래 데이터를 폴링을 할 때 사용하게 될 아이디

최근 스프레드 데이터 불러오기

URL: https://api.kraken.com/0/public/Spread

입력값:

pair = 스프레드 데이터를 불러오려는 자산 쌍
since = 주어진 아이디 이후의 스프레드 데이터를 반환(선택. 포괄적)

결과: 쌍 이름 및 최근 스프레드 데이터의 배열

<pair_name> = 입력값 배열의 쌍 이름 배열(<time>, <bid>, <ask>)
last = 새로운 스프레드 데이터를 폴링을 할 때 사용하게 될 아이디

참조: "since" 는 포괄적이므로 같은 시간에 반환된 모든 데이터는 이전 데이터의 모든 입력값을 덮어써야 합니다.

프라이빗 사용자 데애터

계정 잔고 불러오기

URL: https://api.kraken.com/0/private/Balance

결과: 자산 이름 및 잔고의 배열

거래 잔고 불러오기

URL: https://api.kraken.com/0/private/TradeBalance

입력값:

aclass = 자산 클래스 (선택):
    currency (기본값)
asset = 잔고를 평가하기 위한 기준 자산(기본값 = ZUSD)

결과: 거래 잔고 정보의 배열

eb = 평가 금액 (모든 통화의 합산 잔고)
tb = 거래 금액(담보 통화의 합산 잔고)
m = 개설된 포지션의 마진 규모
n = 개설된 포지션의 미실현 순수익/순손실
c = 초기 포지션 개설 비용
v = 현재 개설되어 있는 포지션의 변동 가치
e = 자산 = 거래 금액 + 개설된 포지션의 미실현 순수익/순손실
mf = 여유 마진 = 자산 - 초기 마진 (새로운 포지션을 개설하기 위한 최대 가용 마진)
ml = 마진 레벨 = (자산 / 초기 마진) * 100

참조: 변동 가치를 산출하는 데 사용된 가격은 최고 매수 신청가와 최저 매도 신청가의 중간 값입니다.

개설되어 있는 주문 불러오기

URL: https://api.kraken.com/0/private/OpenOrders

입력값:

trades = 거래를 반환 결과에 포함할 것인지 여부 (선택.  기본값 = false)
userref = 주어진 사용자 참조 아이디로 결과 제한 (선택)

결과: txid를 키값으로 한 개설된 주문 정보의 배열

refid = 해당 주문을 생성한 참조 주문 거래 아이디
userref = 사용자 참조 아이디
status = 주문 상태:
    pending = 주문 지연 장부 입력
    open = 개설된 주문
    closed = 체결된 주문
    canceled = 취소된 주문
    expired = 만료된 주문
opentm = 주문이 체결된 시각의 유닉스 타임스탬프
starttm = 주문이 시작된 시각의 유닉스 타임스탬프(설정하지 않은 경우 0)
expiretm = 주문 종료 시각의 유닉스 타임스탬프(설정하지 않은 경우 0)
descr = 주문 상세 정보
    pair = 자산 쌍
    type = 주문의 유형(매수/매도)
    ordertype = 주문 방식 (표준 주문 개설하기 참조)
    price = 주요 가격
    price2 = 보조 가격
    leverage = 레버리지 정도
    order = 주문 상세
    close = 조건부 체결 주문 상세(조건부 체결 주문으로 설정한 경우)
vol = 주문 규모 (viqc를 oflags에 설정하지 않는 한 기준통화)
vol_exec = 실행 규모 (viqc를 oflags에 설정하지 않는 한 기준통화)
cost = 총비용(viqc를 oflags에 설정하지 않는 한 상대통화)
fee = 총 수수료 (상대통화)
price = 평균가 (viqc를 oflags에 설정하지 않는 한 상대통화)
stopprice = 손실제한가 (추적손실제한의 경우, 상대통화)
limitprice = 발동된 지정가 (지정가를 기본으로 하는 주문 방식이 발동한 경우, 상대통화)
misc = 쉼표로 구분된 기타 정보의 목록
    stopped = 손실제한가에 의해 발동
    touched = 도달가에 의해 발동
    liquidated =  강제 청산
    partial = 부분 체결
oflags = 쉼표로 구분된 주문 플래그의 목록
    viqc = 상대통화를 기준으로 한 규모
    fcib = 기준통화를 기준으로 한 선호 수수료(매도인 경우 기본값)
    fciq = 상대통화를 기준으로 한 선호 수수료(매수인 경우 기본값)
    nompp = 시장가 보호 없음
trades = 주문과 관련 있는 거래 아이디의 배열(거래 정보가 요청되었으며 데이터가 있는 경우)

참조: 달리 명시되지 않는 한 비용, 수수료, 가격 및 규모는 통화 쌍이 아닌 자산 쌍의 규모를 사용합니다. 예를 들어 자산 쌍이 8 단위를 자산의 단위로 사용한다면, 해당 통화가 2 단위만 있을지라도 8 단위를 사용합니다. 이와 마찬가지로, 자산 쌍 가격의 단위가 5인 경우 기본 통화의 규모가 8인 경우에도 단위는 5로 유지됩니다. 마찬가지로 자산 쌍의 가격 5 단위라면 기본 통화의 단위가 8인 경우에도 단위는 5로 유지됩니다.

종료된 주문 불러오기

URL: https://api.kraken.com/0/private/ClosedOrders

입력값

trades = 거래를 반환 결과에 포함할 것인지 여부 (선택.  기본값 = false)
userref = 주어진 사용자 참조 아이디로 결과 제한 (선택)
start = 반환 결과의 유닉스 타임스탬프 또는 주문 tx 아이디로 시작 (선택. 배타적)
end = 반환 결과의 유닉스 타임스탬프 또는 주문 tx 아이디로 끝남 (선택. 포괄적)
ofs = 결과 오프셋
closetime = 어떤 시간을 사용할 것인지 (선택)
    개설
    체결
    모두 (기본값)

결과: 주문 정보의 배열

closed = 주문 정보의 배열  개설된 주문 불러오기 참조  추가 필드:
    closetm = 주문이 종료된 시간의 유닉스 타임스탬프
    reason = 상태에 관한 추가 정보 (있는 경우)
count = 조건에 맞는 주문 정보의 개수

참조: 주문 tx 아이디가 제공하는 시간이 유닉스 타임스탬프보다 더 정확합니다. 시간에 주문 tx 아이디가 주어지는 경우, 시간은 주문의 시작 시간입니다.

주문 정보 쿼리하기

URL: https://api.kraken.com/0/private/QueryOrders

입력값:

trades = 거래를 반환 결과에 포함할 것인지 여부 (선택.  기본값 = false)
userref = 주어진 사용자 참조 아이디로 결과 제한 (선택)
txid = 쿼리하여 정보를 얻고자 하는 쉼표로 구분된 거래 아이디 목록(최대 50)

결과: 주문 정보의 연관 배열

<order_txid> = 주문 정보. 개설된 주문 불러오기/종료된 주문 불러오기 참조

거래 히스토리 불러오기

URL: https://api.kraken.com/0/private/TradesHistory

입력값:

type = 거래의 유형 (선택)
    all = 모든 유형 (기본값)
    any position = 모든 포지션 (개설 또는 종료)
    closed position = 종료된 포지션
    closing position = 전부 종료되거나 일부만 종료되는 포지션
    no position = 포지션이 아닌 거래
trades = 거래를 반환 결과에 포함할 것인지 여부 (선택.  기본값 = false)
start = 반환 결과의 유닉스 타임스탬프 또는 거래 tx 아이디로 시작 (선택. 배타적)
end = 반환 결과의 유닉스 타임스탬프 또는 거래 tx 아이디로 끝남 (선택.  포괄적)
ofs = 결과 오프셋

결과: 거래 정보의 배열

trades = txid를 키로 사용하는 거래 정보의 배열
    ordertxid = 거래를 실행시키는 주문
    pair = 자산 쌍
    time = 거래의 유닉스 타임스탬프
    type = 주문의 유형 (매수/매도)
    ordertype = 주문 방식
    price = 주문이 실행된 가격의 평균 (상대통화)
    cost = 주문의 총비용 (상대통화)
    fee = 총 수수료 (상대통화)
    vol = 주문 규모 (기준통화)
    margin = 초기 마진 (상대통화)
    misc = 쉼표로 구분된 기타 정보 목록
        closing = 전체 또는 일부 포지션을 종료하는 거래
count = 조건에 맞는 주문 정보의 개수

해당 거래로 포지션이 개설된 경우 다음의 필드가 거래 정보에 포함되어 표시됩니다.

    posstatus = 포지션 상태 (개설/종료)
    cprice = 종료된 포지션의 종료 평균가(상대통화)
    ccost = 종료된 포지션의 총비용(상대통화)
    cfee = 종료된 포지션의 총 수수료(상대통화)
    cvol = 종료된 포지션의 총 규모(상대통화)
    cmargin = 포지션의 일부분이 종료되어 생긴 여유마진 (상대통화)
    net = 포지션의 일부분이 종료되어 얻은 최종 수익/손실 (상대통화, 상대통화 규모)
    trades = 포지션을 위해 체결된 거래 목록(있는 경우)

참조:

  • 달리 명시되지 않는 한 비용, 수수료, 가격 및 규모는 통화 쌍이 아닌 자산 쌍의 단위를 사용합니다.
  • 거래 tx 아이디의 시간이 유닉스 타임스탬프보다 더 정확합니다.

거래 정보 쿼리하기

URL: https://api.kraken.com/0/private/QueryTrades

입력값:

txid = 쿼리하여 정보를 얻고자 하는 쉼표로 구분된 거래 아이디 목록(최대 20)
trades = 거래를 반환 결과에 포함할 것인지 여부 (선택.  기본값 = false)

결과: 거래 정보의 연관 배열

<trade_txid> = 거래 정보. 거래 히스토리 불러오기 참조

개설된 포지션 불러오기

URL: https://api.kraken.com/0/private/OpenPositions

입력값:

txid = 결과를 제한할 쉼표로 구분된 거래 아이디 목록
docalcs = 수익/손실을 포함할지 여부(선택  기본값 = false)
consolidation = 포지션 관련 데이터를 통합할 대상 (선택)
    market = 시장 쌍을 기준으로 포지션을 통합함

결과: 개설된 포지션 정보의 연관 배열

참조:

통합 선택 필드를 사용하면 반환되는 데이터를 통합하여 보여줍니다.

<position_txid> = 개설된 포지션 정보
    ordertxid = 거래를 일으킨 주문
    pair = 자산 쌍
    time = 거래의 유닉스 타임스탬프
    type = 포지션을 개설하기 위해 사용된 주문의 유형(매수/매도)
    ordertype = 포지션을 개설한 주문의 방식
    cost = 포지션 개설 비용(viqc가 oflags에 설정되지 않은 한 상대통화)
    fee = 포지션 개설 수수료(상대통화)
    vol = 포지션 규모 (viqc가 oflags에 설정되지 않은 한 기준통화)
    vol_closed = 종료된 포지션 규모(viqc가 oflags에 설정되지 않은 한 기준통화)
    margin = 초기 마진(상대통화)
    value = 잔여 포지션의 현재 가치(docalcs이 요청된 경우.  상대통화)
    net = 잔여 포지션의 실현되지 않은 수익/손실(docalcs이 요청된 경우.  상대통화, 상대통화 척도)
    misc = 쉼표로 구분된 기타 정보 목록
    oflags = 쉼표로 구분된 주문 플래그 목록
        viqc = 상대통화로 규모 표현

참조: 달리 명시되지 않는 한 비용, 수수료, 가격 및 규모는 통화 쌍이 아닌 자산 쌍의 단위를 사용합니다.

장부 정보 불러오기

URL: https://api.kraken.com/0/private/Ledgers

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 반환 결과를 제한할 쉼표로 구분된 자산의 목록(선택.  기본값 = 전부)
type = 반환할 장부의 유형 (선택):
    all (기본값)
    deposit
    withdrawal
    trade
    margin
start = 반환 결과의 유닉스 타임스탬프 또는 장부 아이디로 시작 (선택.  배타적)
end =  반환 결과의 유닉스 타임스탬프 또는 장부 아이디로 끝남 (선택.  포괄적)
ofs = 오프셋 결과

결과: 장부 정보의 연관 배열

<ledger_id> = 장부 정보
    refid = 참조 아이디
    time = 장부의 유닉스 타임스탬프
    type = 장부 입력값의 유형
    aclass = 자산 클래스
    asset = 자산
    amount = 거래액
    fee = 거래 수수료
    balance = 잔고 결과

참조: 장부 아이디에서 제공하는 시간이 유닉스 타임스탬프보다 더 정확합니다.

장부 쿼리하기

URL: https://api.kraken.com/0/private/QueryLedgers

입력값:

id = 정보를 쿼리할 장부 아이디의 쉼표로 구분된 목록 (최대 20 개)

결과: 장부 정보의 연관 배열

<ledger_id> = 장부 정보.  장부 정보 불러오기 참조

거래 규모 불러오기

URL: https://api.kraken.com/0/private/TradeVolume

입력값:

pair = 수수료 정보를 얻고자 하는 자산 쌍의 쉼표로 구분된 목록 (선택)
fee-info = 반환 결과에 수수료 정보를 포함할 것인지 여부 (선택)

결과: 연관 배열

currency = 통화 규모
volume = 현재 할인 거래 규모
fees = 자산 쌍 및 수수료 레벨 정보 배열(요청된 경우)
    fee = 현재 수수료 백분율
    minfee = 쌍의 최소 수수료 (고정 수수료가 아닌 경우)
    maxfee = 쌍의 최대 수수료 (고정 수수료가 아닌 경우)
    nextfee = 쌍의 다음 레벨의 수수료 (고정 수수료가 아닌 경우. 최저 수수료 레벨인 경우 nil)
    nextvolume = 다음 레벨의 규모 수준 (고정 수수료가 아닌 경우. 최저 수수료 레벨인 경우 nil)
    tiervolume = 현재 레벨의 규모 수준 (고정 수수료가 아닌 경우. 최저 수수료 레벨인 경우 nil)
fees_maker = 자산 쌍 및 지정가 수수료 레벨 정보의 배열 (요청된 경우. 지정가/시장가 수수료 정보 상의 모든 쌍)
    fee = 현재 수수료 백분율
    minfee = 쌍의 최소 수수료 (고정 수수료가 아닌 경우)
    maxfee = 쌍의 최대 수수료 (고정 수수료가 아닌 경우)
    nextfee = 쌍의 다음 레벨의 수수료 (고정 수수료가 아닌 경우. 최저 수수료 레벨인 경우 nil)
    nextvolume =다음 레벨의 규모 수준 (고정 수수료가 아닌 경우. 최저 수수료 레벨인 경우 nil)
    tiervolume = 현재 레벨의 규모 수준 (고정 수수료가 아닌 경우. 최저 수수료 레벨인 경우 nil)

참조: 자산 쌍이 지정가/시장가 수수료 정보에 있는 경우, 시장가 수수료는 "fees"에 표기되고, 지정가 수수료는 "fees_maker"에 표기됩니다. 지정가/시장가 수수료 정보에 없는 쌍의 경우 "fees"에만 그 값이 표기됩니다.

보고서 추출 요청하기

URL: https://api.kraken.com/0/private/AddExport

입력값:

description = 보고서 설명 정보
report = 보고서 유형 (거래/장부)
format = (CSV/TSV) (선택.  기본값 = CSV)
fields = 쉼표로 구분된 보고서에 포함시킬 필드의 목록(선택.  기본값 = 전부)
    참조: 필드의 옵션은 보고서의 유형에 따라 다름
    <trades>
        ordertxid
        time
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <ledgers>
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance
asset = 쉼표로 구분된 추출할 자산의 목록(선택.  기본값 = 전부)
starttm = 보고서 시작 시간 (선택.  기본값 = 현재로부터 1년 전까지):
    <n> = 시작 시간의 유닉스 타임스탬프
endtm = report 종료 시간(선택.  기본값 = 현재):
    <n> = 종료 시간의 유닉스 타임스탬프

결과:

id = 보고서 아이디

Errors: 오류는 다음을 포함합니다.(단, 이에 국한되지 않음):

EGeneral:Invalid arguments
EQuery:Unknown asset pair

추출 상태 불러오기

URL: https://api.kraken.com/0/private/ExportStatus

입력값:

report = 보고서 유형 (거래/장부)

결과: 보고서와 보고서 정보의 배열

id = 보고서 아이디
descr = 보고서 상세 정보
format = (CSV/TSV)
report = 보고서 유형 (거래/장부)
status = 명령의 상태:
    Queued = 보고서 생성 대기 중
    Processing = 보고서 생성중
    Processed = 보고서 생성 완료
createdtm = 시간 보고서 생성 완료
expiretm = 시간 보고서 만료
starttm = 보고서 시작 시간
endtm = 보고서 종료 시간
completedtm = 시간 보고서 완료
aclass = 자산 클래스
asset = 쉼표로 구분된 자신의 목록
fields = 쉼표로 구분된 필드의 목록
    <trades>
        txid
        ordertxid
        pair
        time
        type
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <ledgers>
        txid
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance

Errors: 오류는 다음을 포함합니다.(단, 이에 국한되지 않음):

EGeneral:Invalid arguments

추출된 보고서 불러오기

URL: https://api.kraken.com/0/private/RetrieveExport

입력값:

id = 보고서 아이디

결과: 보고서를 포함하는 이진 형태의 zip 아카이브

참조: 미디어 타입(content-type)이 application/json, text 또는 html이 아닌 경우 이진 보고서는 스트리밍 되어 되돌아갑니다. 미디어 타입이 위의 형식 중 하나인 경우 에러가 발생하게 됩니다.

참조: 선택한 보고서 유형과 필드에 따라 보고서는 다음의 필드를 가질 수 있습니다. *가 표시된 필드는 필수 포함 항목입니다.

<trades>
    *txid
    ordertxid
    *pair
    time
    *type
    ordertype
    price
    cost
    fee
    vol
    margin
    misc
    ledgers
<ledgers>
    *txid
    refid
    time
    type
    aclass
    asset
    amount
    fee
    balance

추출한 보고서 제거하기

URL: https://api.kraken.com/0/private/RemoveExport

입력값:

type = 제거 유형 (취소/삭제)
id = 보고서 아이디

결과: 불리언 변수로 요청 결과를 반환

cancel/delete = 제거 유형

참조: 제거 유형 중 삭제는 보고서가 처리된 이후에 사용할 수 있습니다. 대기 중이거나 처리 중인 상태의 보고서는 제거 유형에서 취소를 사용해주시기 바랍니다.

Errors: 오류는 다음을 포함합니다.(단, 이에 국한되지 않음):

EGeneral:Invalid arguments
WExport:Already processed

참조: 특정 보고서 아이디를 대상으로 취소 또는 삭제가 수행된 경우, WExport:Already processed 오류가 발생합니다.




프라이빗 사용자 거래

표준 주문 추가하기

URL: https://api.kraken.com/0/private/AddOrder

입력값:

pair = 자산 쌍
type = 주문의 유형(매수/매도)
ordertype = 주문 방식:
    market
    limit (가격 = 지정가)
    stop-loss (가격 = 손실제한가)
    take-profit(가격 = 수익실현가)
    stop-loss-profit (가격 = 손실제한가, 가격2 = 수익실현가)
    stop-loss-profit-limit (가격 = 손실제한가, 가격2 = 수익실현가)
    stop-loss-limit (가격 = 손실제한가 발동가격, 가격2 = 발동된 지정가)
    take-profit-limit (가격 = 수익실현발동가, 가격2 = 발동된 지정가)
    trailing-stop (가격 = 추적손실제한 오프셋)
    trailing-stop-limit (가격 = 추적손실제한 오프셋, 가격2 = 발동된 지정가 오프셋)
    stop-loss-and-limit (가격 = 손실제한가, 가격2 = 손실제한가)
    settle-position
price = 가격 (선택.  주문방식에 의존적)
price2 = 보조 가격 (선택.  주문방식에 의존적)
volume = 단위로 표시된 주문 규모
leverage = 선택하고자 하는 레버리지의 정도 (선택.  기본값 = none)
oflags = 쉼표로 구분된 주문 플래그 목록 (선택):
    viqc = 상대통화로 표시된 규모 (레버리지 주문의 경우 표시되지 않음)
    fcib = 기준통화로 표시된 선호하는 수수료
    fciq = 상대통화로 표시된 선호하는 수수료
    nompp = no market price protection
    post = post only order (ordertype = limit인 경우만 표시)
starttm = scheduled start time (선택):
    0 = 지금 바로 (기본값)
    +<n> = <n> 초 후 스케줄 시작
    <n> = 시작 시간의 유닉스 타임스탬프
expiretm = 만료 시간 (선택):
    0 = 기한 없음 (기본)
    +<n> = <n> 초 후 만료
    <n> = 만료 시간의 유닉스 타임스탬프
userref = 사용자 참조 아이디.  32-bit 서명 숫자.  (선택)
validate = 유효한 입력값.  주문을 제출하지 마시오. (선택)

주문이 체결되었을 때 시스템에 체결 주문을 기록하는 옵션:
    close[ordertype] = 주문 방식
    close[price] = 가격
    close[price2] = 보조 가격

결과:

descr = 주문 상세 정보
    order = 주문 상세
    close = 조건부 취소 주문 상세 (조건부 주문 취소인 경우)
txid = 주문에 사용된 거래 아이디의 배열 (주문이 성공적으로 추가된 경우)

Errors: 오류는 다음을 포함합니다.(단, 이에 국한되지 않음):

EGeneral:Invalid arguments
EService:Unavailable
ETrade:Invalid request
EOrder:Cannot open position
EOrder:Cannot open opposing position
EOrder:Margin allowance exceeded
EOrder:Margin level too low
EOrder:Insufficient margin (거래소가 마진거래를 위한 충분한 자금이 없음)
EOrder:Insufficient funds (사용자 자금 불충분)
EOrder:Order minimum not met (너무 작은 경우)
EOrder:Orders limit exceeded
EOrder:Positions limit exceeded
EOrder:Rate limit exceeded
EOrder:Scheduled orders limit exceeded
EOrder:Unknown position

참조:

  • 자산 쌍, 단위 및 레버리지에 관한 설명을 보시려면 거래 가능한 자산 쌍 불러오기를 참조해 주시기 바랍니다.
  • 가격 앞에 +, -, 또는 # 를 표시하여 상대적인 금액 (항상 상대적인 후행 중지는 예외)으로 나타낼 수 있습니다. +는 현재 제시된 가격에 금액을 더합니다. - 는 현재 제시된 가격에서 금액을 뺍니다. # 는 주문 유형과 방식에 따라 현재 제시된 가격에서 금액을 빼거나 더할 수 있습니다. 상대 가격에 %를 표시하여 제안 가격의 백분율로 상대 금액을 나타낼 수 있습니다.
  • 레버리지를 사용하는 주문의 경우, 규모 입력란을 자동으로 완성하여 포지션을 종료하기 위해 레버리지에 0을 사용할 수 있습니다.
  • "EOrder:Trading agreement required" 오류가 발생하는 경우, 더 자세한 사항을 확인하기 위해 계정의 API 키 관리 페이지를 확인해주시기 바랍니다.

개설된 주문 취소하기

URL: https://api.kraken.com/0/private/CancelOrder

입력값:

txid = 거래 아이디

결과:

count = 취소된 주문의 개수
pending = 값이 있는 경우 하나 또는 둘 이상의 주문 취소가 지연된 상태

참조: txid가 사용자 참조 아이디일 수 있습니다.

프라이빗 사용자 입출금

참조: 본 입출금 API는 임시로 유효하며 추후 업데이트될 수 있습니다. API 사용과 관련한 더 자세한 정보를 확인하시려면 메인 API 페이지를 참조해주시기 바랍니다.

입금 방식 불러오기

URL: https://api.kraken.com/0/private/DepositMethods

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 입금될 자산

결과: 입금 방식의 연관 배열:

method = 입금 방식의 이름
limit = 바로 입금 가능한 최종 금액의 최대, 한도가 없는 경우 false
fee = 지불하게 될 수수료
address-setup-fee = 입금 방식의 주소 개설 수수료 유무(선택)

입금 주소 불러오기

URL: https://api.kraken.com/0/private/DepositAddresses

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 입금될 자산
method = 예금 방식의 이름
new = 새로운 주소 생성 여부(선택.  기본값 = false)

결과: 예금 주소의 연관 배열:

address = 입금 주소
expiretm = 만료 시한의 유닉스 타임스탬프, 만료하지 않는 경우 0
new = 사전에 주소의 사용 여부

최근 입금의 상태 불러오기

URL: https://api.kraken.com/0/private/DepositStatus

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 입금될 자산
method = 입금 방법 이름

결과: 입금 상태 정보 배열의 배열:

method = 사용될 입금 방법 이름
aclass = 자산 클래스
asset = 자산 X-ISO4217-A3 코드
refid = 참조 아이디
txid = 방식 거래 아이디
info = 방식 거래 정보
amount = 입금액
fee = 지불 수수료
time = 입금 요청 시각의 유닉스 타임스탬프
status = 입금 상태
status-prop = 추가 상태 속성 (해당되는 경우)
    return = 크라켄 요청에 의한 거래 반환
    onhold = 검토로 인한 입금 지연
상태와 관련하여 더 자세한 정보를 확인하시려면 IFEX 금융 거래 상태를 확인해 주시기 바랍니다.

출금 정보 불러오기

URL: https://api.kraken.com/0/private/WithdrawInfo

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 출금될 자산
key = 계정에 셋업해 놓은 출금 키 이름
amount = 출금액

결과: 출금 정보의 연관 배열:

method = 사용할 출금 방식의 이름
limit = 바로 출금 가능한 최종 금액의 최대
fee = 지불하게 될 수수료

자산 출금하기

URL: https://api.kraken.com/0/private/Withdraw

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 출금할 자산
key = 계정에 셋업해 놓은 출금 키 이름
amount = 출금액, 수수료 포함

결과: 출금 거래의 연관 배열:

refid = 참조 아이디

최근 출금의 상태 불러오기

URL: https://api.kraken.com/0/private/WithdrawStatus

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 출금될 자산
method = 출금 방식의 이름(선택)

결과: 출금 상태 정보 배열의 배열:

method = 사용된 출금 방식의 이름
aclass = 자산 클래스
asset = 자산 X-ISO4217-A3 코드
refid = 참조 아이디
txid = 방식 거래 아이디
info = 방식 거래 정보
amount = 출금액
fee = 지불 수수료
time = 요청 시각의 유닉스 타임스탬프
status = 출금 상태
status-prop = 추가 상태 속성 (해당되는 경우)
    cancel-pending = 취소 요청
    canceled = 취소 완료
    cancel-denied = 취소를 요청하였으나 거절됨
    return = 크라켄의 요청으로 반환 거래 실행; 취소 불가
    onhold = 검토로 인한 출금 지연
상태와 관련하여 더 자세한 정보를 확인하시려면IFEX 금융 거래 상태 를 확인해 주시기 바랍니다..

출금 취소 요청하기/h3>

URL: https://api.kraken.com/0/private/WithdrawCancel

입력값:

  aclass = 자산 클래스 (선택):
      currency (기본값)
asset = 출금될 자산
refid = 출금 참조 아이디

결과: true on success

참조: 출금 취소는 보장되지 않습니다. 본 요청은 취소 요청입니다. 출금 처리가 얼마나 진행되었느냐에 따라 출금 취소 가능 여부가 달라질 수 있습니다.

지갑 전송

URL: https://api.kraken.com/0/private/WalletTransfer

입력값:

asset = 출금될 자산
to = 자산을 전송시킬 퓨처스 지갑(기본값)
from = 자산이 전송될 스팟 지갑(기본값)
amount = 출금액, 수수료 포함

결과: 전송 거래의 연관 배열:

refid = 참조 아이디

WebSockets authentication

API 클라이언트는 웹소켓 프라이빗 엔드포인트에 연결하기 위하여 REST API 엔드포인트 중 "GetWebSocketsToken"를 거쳐 인증 "토큰"을 요청해야만 합니다. 해당 토큰은 생성된 후 15 분 이내에 사용되어야 합니다. 토큰은 웹소켓 API 프라이빗 메시지 (openOrder 또는 ownTrades)로 연결이 유지되는 한 만료되지 않습니다.

URL: https://api.kraken.com/0/private/GetWebSocketsToken

생성된 토큰은 "token" 프라이빗 웹소켓 피드 구독 입력란에 입력되어야 합니다:

{
    "event": "subscribe",
    "subscription": {
        "name": "ownTrades",
        "token": "secretwstoken123"
    }
}

인증 토큰을 생성할 수 있도록 API 키를 만들 때 'Access WebSockets API'를 허가해주시기 바랍니다.

API 클라이언트 예시

다음은 API 클라이언트를 만들 때 참고하여 사용할 수 있는 API 클라이언트 코드 라이브러리의 예시입니다. Payward 또는 어떤 제삼자도 적절하지 못한 API 사용 또는 버그로 인한 손실에 대한 책임을 지지 않는 점을 유의해 주시기 바랍니다. Payward는 해당 목록에 제삼자의 코드를 게시하기 전 초기 검토를 하지만, 추후 발생하는 수정사항에 대해서는 책임을 지지 않습니다. 우려되는 사항이 있는 경우 고객지원으로 연락을 주시기 바랍니다.

C

제삼자가 작성한 https://github.com/hANSIc99/Kraken_C_API를 참조.

C#

제삼자가 작성한 https://bitbucket.org/arrivets/krakenapi를 참조.

C++

제삼자가 작성한 https://github.com/voidloop/krakenapi를 참조.

GO

제삼자가 작성한 https://github.com/Beldur/kraken-go-api-client를 참조.

Node.JS

제삼자가 작성한 https://github.com/nothingisdead/npm-kraken-api를 참조.

PERL

제삼자가 작성한 http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/를 참조.

Python 3

제삼자가 작성한 https://github.com/veox/python3-krakenex를 참조.

Python 2

제삼자가 작성한 https://github.com/veox/python2-krakenex를 참조.

Ruby

제삼자가 작성한 https://github.com/jonatack/kraken_ruby_client를 참조.

PHP

크라켄은 크라켄 REST API와 연동을 위한 기본적인 PHP 라이브러리를 제공하고 있습니다. 사용 예시와 소스는 Payword의 kraken-api-client github repository 에서 확인하실 수 있으며 MIT 허가서입니다.

라이브러리

본 라이브러리 클래스를 PHP 클라이언트를 사용하여 크라켄 REST API를 호출하는 데 사용하십시오. API 매서드의 올바른 URL 경로를 자동으로 검토하며 각각의 요청에 하나의 논스를 생성하고, API 비밀키와 생성된 논스를 사용하여 서명된 헤더를 추가합니다.

<?php
/**
 * Reference implementation for Kraken's REST API.
 *
 * See https://www.kraken.com/help/api for more info.
 *
 *
 * The MIT License (MIT)
 *
 * Copyright (c) 2013 Payward, Inc
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

class KrakenAPIException extends ErrorException {};

class KrakenAPI
{
    protected $key;     // API key
    protected $secret;  // API secret
    protected $url;     // API base URL
    protected $version; // API version
    protected $curl;    // curl handle

    /**
     * Constructor for KrakenAPI
     *
     * @param string $key API key
     * @param string $secret API secret
     * @param string $url base URL for Kraken API
     * @param string $version API version
     * @param bool $sslverify enable/disable SSL peer verification.  disable if using beta.api.kraken.com
     */
    function __construct($key, $secret, $url='https://api.kraken.com', $version='0', $sslverify=true)
    {
        $this->key = $key;
        $this->secret = $secret;
        $this->url = $url;
        $this->version = $version;
        $this->curl = curl_init();

        curl_setopt_array($this->curl, array(
            CURLOPT_SSL_VERIFYPEER => $sslverify,
            CURLOPT_SSL_VERIFYHOST => 2,
            CURLOPT_USERAGENT => 'Kraken PHP API Agent',
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true)
        );
    }

    function __destruct()
    {
        curl_close($this->curl);
    }

    /**
     * Query public methods
     *
     * @param string $method method name
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPublic($method, array $request = array())
    {
        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . '/' . $this->version . '/public/' . $method);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, array());
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }

    /**
     * Query private methods
     *
     * @param string $path method path
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPrivate($method, array $request = array())
    {
        if(!isset($request['nonce'])) {
            // generate a 64 bit nonce using a timestamp at microsecond resolution
            // string functions are used to avoid problems on 32 bit systems
            $nonce = explode(' ', microtime());
            $request['nonce'] = $nonce[1] . str_pad(substr($nonce[0], 2, 6), 6, '0');
        }

        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // set API key and sign the message
        $path = '/' . $this->version . '/private/' . $method;
        $sign = hash_hmac('sha512', $path . hash('sha256', $request['nonce'] . $postdata, true), base64_decode($this->secret), true);
        $headers = array(
            'API-Key: ' . $this->key,
            'API-Sign: ' . base64_encode($sign)
        );

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . $path);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }
}

사용 예시

다음은 Below are the steps involved in initializing the KrakenAPI 라이브러리 클래스를 실행시키기 위한 단계별 방법과 API 매서드 요청의 몇가지 예시입니다. API 요청 스니펫의 하단에서 구조화된 결과를 함께 기재하였습니다.

실행

KrakenAPI 객체를 실행시킬 때 라이브러리 파일을 포함시키고 API 인증키 및 비밀키를 입력하십시오.

<?php

require_once 'KrakenAPIClient.php';
$kraken = new KrakenAPI('YOUR API KEY', 'YOUR API SECRET');
메서드 콜

활성화된 자산 및 자산의 퍼블릭 목록 쿼리하기:

$res = $kraken->QueryPublic('Assets');
print_r($res);

반환된 자산은 ISO-4217-A3-X에 등록된 통화 코드로 표기, 결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBT] => Array
                (
                    [aclass] => currency
                    [altname] => XBT
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XLTC] => Array
                (
                    [aclass] => currency
                    [altname] => LTC
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XXRP] => Array
                (
                    [aclass] => currency
                    [altname] => XRP
                    [decimals] => 8
                    [display_decimals] => 5
                )

            [ZEUR] => Array
                (
                    [aclass] => currency
                    [altname] => EUR
                    [decimals] => 4
                    [display_decimals] => 2
                )
            ...
)

XBT/USD 쌍에 대한 퍼블릭 티커 정보 쿼리하기:

$res = $kraken->QueryPublic('Ticker', array('pair' => 'XXBTZUSD'));
print_r($res);

결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZUSD] => Array
                (
                    [a] => Array
                        (
                            [0] => 106.09583
                            [1] => 111
                        )

                    [b] => Array
                        (
                            [0] => 105.53966
                            [1] => 4
                        )

                    [c] => Array
                        (
                            [0] => 105.98984
                            [1] => 0.13910102
                        )

                    ...
        )
)

2013-08-07T18:20:42+00:00: 이후로 발생한 XBT/EUR 쌍에 대한 퍼블릭 최근 거래 쿼리하기

참조: 'since' 파라미터는 향후 변경될 수 있음: 정밀도가 변경될 수 있으며, 타임스탬프를 대신하는 데 사용되지 않을 수도 있습니다. 최선의 방법은 결과에 포함되어 반환되는 'last' 값을 토대로 하는 것입니다.

$res = $kraken->QueryPublic('Trades', array('pair' => 'XXBTZEUR', 'since' => '137589964200000000'));
print_r($res);

결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZEUR] => Array
                (
                    [0] => Array
                        (
                            [0] => 78.60500
                            [1] => 2.03990000
                            [2] => 1375897934.1176
                            [3] => s
                            [4] => m
                            [5] =>
                        )

                    [1] => Array
                        (
                            [0] => 79.41809
                            [1] => 2.02203000
                            [2] => 1375898123.0771
                            [3] => b
                            [4] => m
                            [5] =>
                        )

                    [2] => Array
                        (
                            [0] => 79.86999
                            [1] => 7.00000000
                            [2] => 1375898123.2587
                            [3] => b
                            [4] => m
                            [5] =>
                        )
                    ...
            )
            [last] => 137589925237491170
        )
)

프라이빗 자산 잔고 쿼리하기:

$res = $kraken->QueryPrivate('Balance');
print_r($res);

결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [ZUSD] => 3415.8014
            [ZEUR] => 155.5649
            [XXBT] => 149.9688412800
            [XXRP] => 499889.51600000
        )

)

프라이빗 개설되어 있는 주문 및 관련 거래 쿼리하기:

$res = $kraken->QueryPrivate('OpenOrders', array('trades' => true));
print_r($res);

결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [open] => Array
                (
                    [O7ICPO-F4CLJ-MVBLHC] => Array
                        (
                            [refid] =>
                            [userref] =>
                            [status] => open
                            [opentm] => 1373750306.9819
                            [starttm] => 0
                            [expiretm] => 0
                            [descr] => Array
                                (
                                    [order] => sell 3.00000000 XBTUSD @ limit 500.00000
                                )

                            [vol] => 3.00000000
                            [vol_exec] => 0.00000000
                            [cost] => 0.00000
                            [fee] => 0.00000
                            [price] => 0.00000
                            [misc] =>
                            [oflags] =>
                        )
                    ...
                )
        )
)

표준 주문 만들기: 지정가 $120에 1.123 XBT/USD를 매도

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'sell',
    'ordertype' => 'limit',
    'price' => '120',
    'volume' => '1.123'
));
print_r($res);

결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => sell 1.12300000 XBTUSD @ limit 120.00000
                )

            [txid] => Array
                (
                    [0] => OAVY7T-MV5VK-KHDF5X
                )

        )

)

표준 주문 만들기: 2013-08-12T09:27:22+0000에 €300에 상당하는 XBT 를 시장가에 매수

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZEUR',
    'type' => 'buy',
    'ordertype' => 'market',
    'oflags' => 'viqc',
    'volume' => '300',
    'starttm' => '1376299642'
));
print_r($res);

결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 300.00000000 XBTEUR @ market
                )

            [txid] => Array
                (
                    [0] => ONQN65-L2GNR-HWJLF5
                )

        )

)

표준 주문 만들기: 지정가 $101.9901에 2.12345678 XBTUSD를 2:1 레버리지, -5%에 손실제한 및 지정가에서 10% 상승 시 수익실현 매도 주문으로 매수 (손실/제한 가격의 부호는 #를 사용하여 자동으로 결정):

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'buy',
    'ordertype' => 'limit',
    'price' => '101.9901',
    'volume' => '2.12345678',
    'leverage' => '2:1',
    'close' => array(
        'ordertype' => 'stop-loss-profit',
        'price' => '#5%',  // stop loss price (relative percentage delta)
        'price2' => '#10'  // take profit price (relative delta)
    )
));
print_r($res);

결과 예시:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 2.12345678 XBTUSD @ limit 101.99010 with 2:1 leverage
                    [close] => close position @ stop loss -5.0000%, take profit +10.00000
                )

            [txid] => Array
                (
                    [0] => OFMYYE-POAPQ-63IMWL
                )

        )

)