UNPKG

korea-crypto-exchange

Version:

한국의 주요 암호화폐 거래소(업비트, 빗썸) API를 쉽게 구현할 수 있도록 도와주는 TypeScript 라이브러리

261 lines (214 loc) 6.49 kB
# Korea Crypto Exchange ## 한국 암호화폐 거래소 API 통합 라이브러리 <img width="729" alt="스크린샷 2025-06-12 오후 10 26 54" src="https://github.com/user-attachments/assets/87fae58a-2b81-4586-ae96-1c55fa9cab0d" /> 한국의 주요 암호화폐 거래소(업비트, 빗썸) API를 쉽게 구현할 수 있도록 도와주는 TypeScript 라이브러리입니다. 거래소 API를 사용하기 위해서는 먼저 엑세스키와 비밀키를 발급받고, 스코프 조건에 따라 IP 허용 작업을 각 거래소 개발자 대시보드에서 설정해주셔야 정상 작동됩니다. ## 주요 기능 ### 업비트 API 구현 - 자산 조회 API - 전체 계좌 조회 - 시세 조회 API - 종목 코드 조회 - 분봉/일봉/주봉/월봉/년봉 캔들 조회 - 초봉 캔들 조회 - 최근 체결 내역 조회 - 현재가 정보 조회 - 종목 단위 현재가 정보 - 마켓 단위 현재가 정보 - 호가 정보 조회 - 호가 정보 조회 - 호가 모아보기 단위 정보 조회 - 주문 API - 주문 가능 정보 - 개별 주문 조회 - (제외됨, Deprecated) 주문 리스트 조회 - id로 주문리스트 조회 - 체결 대기 주문 조회 - 종료된 주문 조회 - 주문하기 - 주문 취소 접수 - 주문 일괄 취소 접수 - id로 주문 리스트 취소 접수 - 주문 조회 - 취소 후 재주문 - 입금 API - 입금 리스트 조회 - 개별 입금 조회 - 입금 주소 생성 요청 - 전체 입금 주소 조회 - 개별 입금 주소 조회 - 원화 입금하기 - 해외거래소 입금 시 계정주 확인 하기(트레블룰 검증) - 계정주 확인 가능 거래소 리스트 조회 - 입금 UUID로 트래블룰 검증하기 - 입금 TxID로 트래블룰 검증하기 - 디지털 자산 입금 정보 조회 - 서비스 정보 API - 입출금 현황 - API 키 리스트 조회 - 출금 API - 디지털 자산 출금하기 - 원화 출금하기 - 출금 내역 조회 - 개별 출금 조회 - 출금 가능 정보 - 출금 허용 주소 리스트 조회 - 디지털 자산 출금 취소 접수 ### 빗썸 API 구현 - 자산 조회 API - 전체 계좌 조회 - 시세 조회 API - 종목 코드 조회 - 분봉/일봉/주봉/월봉 캔들 조회 - 최근 체결 내역 조회 - 현재가 정보 조회 - 호가 정보 조회 - 시장 경고 정보 조회 - 주문 API - 주문 가능 정보 - 개별 주문 조회 - 주문 리스트 조회 - 주문 취소 - 입금 API - 원화 입금 내역 조회 - 개별 입금 조회 - 입금 주소 생성 - 전체 입금 주소 조회 - 개별 입금 주소 조회 - 원화 입금하기 - 서비스 정보 API - 입출금 현황 - API 키 리스트 조회 - 출금 API - 디지털 자산 출금하기 - 원화 출금하기 - 출금 내역 조회 - 원화 출금 내역 조회 - 출금 가능 정보 - 출금 허용 주소 리스트 조회 ## 설치 방법 ```bash npm install korea-crypto-exchange ``` ## 사용 예제 ### 업비트 API 사용하기 ```typescript import { KoreaCryptoExchange, ExchangeType } from 'korea-crypto-exchange'; // 거래소 인스턴스 생성 const exchange = new KoreaCryptoExchange({ type: ExchangeType.UPBIT, accessKey: 'YOUR_ACCESS_KEY', secretKey: 'YOUR_SECRET_KEY' }); // 현재가 정보 조회 const tickers = await exchange.getTickers({ markets: 'KRW-BTC,KRW-ETH' }); // 호가 정보 조회 const orderbook = await exchange.getOrderbook({ markets: 'KRW-BTC', level: 1 }); // 주문하기 const order = await exchange.placeOrder({ market: 'KRW-BTC', side: 'bid', volume: '0.1', price: '50000000', ord_type: 'limit' }); // 주문 상세 조회 const orderDetail = await exchange.getOrderDetail({ uuid: 'order-uuid' }); // 계좌 정보 조회 const accounts = await exchange.getAccounts(); // 분봉 데이터 조회 const minuteCandles = await exchange.getMinuteCandles(1, { market: 'KRW-BTC', count: 200 }); // 일봉 데이터 조회 const dayCandles = await exchange.getDayCandles({ market: 'KRW-BTC', count: 200 }); ``` ### 빗썸 API 사용하기 ```typescript import { KoreaCryptoExchange, ExchangeType } from 'korea-crypto-exchange'; // 거래소 인스턴스 생성 const exchange = new KoreaCryptoExchange({ type: ExchangeType.BITHUMB, accessKey: 'YOUR_ACCESS_KEY', secretKey: 'YOUR_SECRET_KEY' }); // 현재가 정보 조회 const tickers = await exchange.getTickers({ markets: 'BTC,ETH' }); // 호가 정보 조회 const orderbook = await exchange.getOrderbook({ markets: 'BTC' }); // 주문하기 const order = await exchange.placeOrder({ market: 'BTC', side: 'bid', volume: '0.1', price: '50000000', ord_type: 'limit' }); // 주문 상세 조회 const orderDetail = await exchange.getOrderDetail({ order_id: 'order-id' }); // 계좌 정보 조회 const accounts = await exchange.getAccounts(); // 분봉 데이터 조회 const minuteCandles = await exchange.getMinuteCandles(1, { market: 'BTC', count: 200 }); // 일봉 데이터 조회 const dayCandles = await exchange.getDayCandles({ market: 'BTC', count: 200 }); // 시장 경고 정보 조회 const marketWarnings = await exchange.getMarketWarnings(); ``` ## 개발 환경 설정 ```bash # 의존성 설치 npm install # 개발 서버 실행 npm run dev # 테스트 실행 npm test # 린트 검사 npm run lint # 코드 포맷팅 npm run format # 빌드 npm run build ``` ## 기술 스택 - TypeScript - Jest (테스트) - ESLint (린트) - Prettier (코드 포맷팅) - Husky (Git Hooks) ## 라이선스 MIT License ## 기여하기 <div style="display: flex; justify-content: center; gap: 20px;"> <img src="https://github.com/user-attachments/assets/36270157-e02b-4021-807c-a9a14c1b9461" width="200" alt="맛있는업비트김치"> <img src="https://github.com/user-attachments/assets/7441b41d-b2f8-4ffc-b5e7-cae0819298e3" width="200" alt="맛있는빗썸김치"> </div> 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## 이슈 버그 리포트나 기능 요청은 [이슈 트래커](https://github.com/joshephan/korea-crypto-exchange/issues)를 이용해 주세요.