TL;DR

  • Layer는 자체 거래소 키를 사용해 Kalshi와 Polymarket US에서 거래하는 오픈소스 Python SDK임.
  • Paper·Live·Backtest 세 가지 모드에서 동일한 주문 API를 사용하며, 기본값은 실제 호가창과 모의 자금을 이용하는 Paper 모드임.
  • Layer API 키를 사용하면 두 거래소의 동일한 베팅을 매칭하고, 수수료를 반영해 더 저렴한 거래소에서 주문하거나 가격 차이 거래를 실행함.
  • 포지션 규모, 예산, 일일 손실, 허용 시장, 승인, 손절·이익 실현 규칙과 항상 켜진 가격 제한·주문 제한·긴급 중단 기능을 제공함.
  • 거래소 요청은 로컬에서 서명되며, Layer는 Layer 키와 시장 ID, 검색 필터만 확인하고 가격·주문·포지션·거래소 키는 확인하지 않으며 원격 분석도 수행하지 않음.

소개

  • uselayer는 자체 거래소 키를 사용해 Python에서 Kalshi와 Polymarket US 예측 시장을 거래하는 도구임.
  • 모든 거래소에서 하나의 주문 형식을 사용하며, 기본 Paper 모드는 실제 호가창에서 모의 자금으로 체결을 시뮬레이션함.
  • 모든 주문에 안전장치를 적용하고, 각 거래소의 공개 수수료표에 맞춰 100만분의 1달러 단위까지 수수료를 계산함. 모든 작업은 로컬 컴퓨터에서 실행됨.
  • 관련 자료: Website · Docs · PyPI · Example bot

사용 방법

  • Python 3.11 이상 환경에서 uselayer를 설치하고 Client를 생성하면 기본 Paper 모드로 시작함.
  • API 키 없이 Polymarket US의 열려 있는 시장을 조회하고, 시장의 호가창에서 매수 호가를 확인해 주문을 구성할 수 있음.
  • 주문 미리보기는 예상 체결, 수수료, 각 규칙의 판정 결과를 표시하며, 주문 전송은 호가창을 기준으로 체결을 시뮬레이션함.

주요 기능

  • 세 가지 모드가 하나의 API를 공유함.
  • Paper: 실제 호가창을 기준으로 가상 자금 주문을 체결함.
  • Live: Kalshi 또는 Polymarket US의 키, 혹은 두 키를 사용해 주문을 전송함.
  • Backtest: 저장한 호가창이나 가져온 데이터를 재생함.
  • 더 저렴한 거래소 선택: Layer API 키가 있으면 client.matches()가 두 거래소에서 같은 베팅에 해당하는 시장을 반환하고, buy_best()가 수수료를 포함해 더 저렴한 곳에 주문함. 계약 수량을 지정하거나 spend=50처럼 금액을 지정할 수 있으며, 금액 지정 시 해당 자금으로 더 많은 계약을 확보할 수 있는 곳에서 매수함.
  • 가격 차이 양쪽 거래: quote()는 수수료, 호가창 깊이, 일일 수익률을 고려해 거래소 간 양쪽 포지션의 가격을 산출하고, trade()는 가격 차이가 여전히 존재할 때만 양쪽을 매수함.
  • 안전장치: 포지션 규모, 예산, 일일 손실, 허용 시장, 승인, 손절 및 이익 실현 규칙을 설정할 수 있음. 가격 제한, 주문 전송 제한, 긴급 중단 기능은 항상 활성화됨.
  • 거래소 키 보호: 거래소 요청은 로컬에서 서명됨. Layer가 확인하는 정보는 Layer 키, Layer가 제공한 시장 ID, 검색 필터뿐이며 가격, 주문, 포지션, 거래소 키는 확인하지 않음. 원격 분석도 없음.

저장소 구성

  • python/: uselayer 패키지이며, 전체 안내서는 python/README.md, 실행 가능한 예제는 python/examples/에 있음.
  • schema/order.json: 모든 거래소와 모드가 공유하는 주문 형식의 JSON Schema임.
  • fee-golden.json: SDK의 수수료 계산 검증에 사용하는 Layer 자체 수수료 계산 결과임.
  • MIT 라이선스로 제공됨.