바이낸스 코인거래소 API Key로 계좌에 접속하는 파이썬 프로그래밍
가장 빠르게 익히는 방법은 직접 해보는 것입니다. 이번 포스팅에서는 바이낸스 코인 거래소의 API로 바낸 계좌에 접속하는 방법을 익혀보겠습니다. API에 대해 다시 살펴보고, 바이낸스 코인 거래소 회원가입, API Key 발급 절차, 윈도우 환경에서 API Key 보관 방법, 그리고 계좌에 접속하기 위한 파이썬-바이낸스 패키지(python-binance library) 활용 방법을 정리하였습니다.
글의 순서
API란?
바이낸스 코인 거래소 API
바이낸스(Binance) 코인 거래소 API를 선택한 이유
바이낸스 코인 거래소 회원가입, API Key 발급
윈도우 환경에서 바이낸스 코인 거래소 API Key 보관방법
python-binance 패키지
API Key로 바이낸스 계좌에 접속하는 파이썬 프로그래밍
API란?
API(Application Programming Interface)는 두 응용 프로그램 사이에서 상호작용하는데 필요한 모든 것입니다. 만약 비트코인 가격 정보를 바이낸스 코인 거래소로부터 가져오는 응용 프로그램을 만든다면, 먼저 바이낸스 거래소의 서버에 접속해야 합니다. 서버에 접속한 후에는 서버가 제공하는 API를 통해 데이터를 받아올 수 있습니다. API는 응용 프로그램의 UI(User Interface)와 대응되는 개념인데, UI가 사람과 서비스 사이에 연결고리라면, API는 서비스와 서비스 사이의 연결고리라고 할 수 있습니다.
바이낸스 코인 거래소 API
바이낸스 API는 바이낸스 서버에서 제공하는 응용프로그램인데, 우리가 만든 응용 프로그램을 바이낸스 서버에 연결할 수 있게 해 줍니다. 우리가 만든 응용 프로그램은 파이썬으로 코딩했을 수도, C++과 같은 다른 코딩 언어를 이용했을 수도 있습니다.
중요한 것은 바이낸스 서버가 제공하는 서비스를 보다 쉽게 이용할 수 있다는 데 있습니다. 심지어 자동으로 코인 거래까지 할 수 있습니다. 바이낸스는 REST API와 WebSocket API를 모두 제공합니다.
바이낸스(Binance) 코인 거래소 API를 선택한 이유
지난 포스팅에서 파이썬 데이터 분석에 활용하기 좋은 API를 고르는 방법을 정리한 적이 있는데, 바이낸스 코인 거래소의 API는 이들 조건들 대부분을 만족합니다. 더군다나 코인 거래소 자체만으로도 바이낸스 코인 거래소는 세계에서 가장 거래량이 많고, 큰 거래소입니다.
바이낸스 API를 선택한 이유를 아래에 간단히 정리하였습니다. 혹시 다른 종류의 API를 선택할 경우에도 이 기준을 참고하시면 되겠습니다.
(1) 문서화가 잘 되어 있다.
(2) 예제 코드가 있다.
(3) API Key를 이용하여 사용권한을 통제한다.
(4) API 버전 정보를 쉽게 확인할 수 있고, 사용자들의 요구사항들을 쉽게 등록할 수 있다.
(5) 많은 사람들이 이 API를 사용하고 있다.
(6) API 버전 관리가 잘 되고 있다.
바이낸스 코인 거래소 회원가입, API Key 발급
(1) 회원가입
1단계) 바이낸스 홈페이지(https://www.binance.com/) 회원가입/등록 페이지에서 회원가입 합니다. 다른 몇몇 코인 거래소와 마찬가지로 바이낸스도 제휴마케팅 프로그램을 운영하고 있습니다. 이 링크(Referral Link)를 통해서 가입하시면 수수료 할인을 받을 수 있고, 제게도 도움이 됩니다.
2단계) two-factor authenticationa
Google OTP로 인증 코드 받기
3단계) 개인 신원인증 (Personal Verification)
API Key를 받기 위해서는 Personal Verification까지 마쳐야 합니다. 만약 이 단계를 건너뛰고 API key 발급 절차를 수행한다면, 그 과정에서 결국 이 신원인증 페이지가 나옵니다. 신원인증을 위해 입력해야 할 정보는 다음과 같습니다.
(1) 국적, 이름, 생년월일
(2) 주소, 우편번호
(3) 신분증 촬영 (주민등록증, 여권, 운전면허증 중 1개 선택)
import os
from binance.client import Client
api_key = os.getenv('Binan_API_KEY')
api_secret = os.getenv('Binan_SECRET_KEY')
client = Client(api_key, api_secret)
# Get asset balance
balance = client.get_asset_balance(asset='XRP')
print('XRP balance :', balance)
XRP balance : {'asset': 'XRP', 'free': '1.00000000', 'locked': '0.00000000'}