콘텐츠로 이동
거래하기

활용 예시

Bitnxs AI 에이전트를 가장 쉽게 쓰는 방법은 앱 내 채팅에 자연어로 요청하는 것입니다. 자동화가 필요하면 외부 봇(직접 작성했거나 Claude, ChatGPT 같은 AI가 작성한 봇)이 https://api.bitnxs.com의 Bitnxs API를 호출합니다. 아래 프롬프트는 앱 내 에이전트가 실제로 할 수 있는 일에, Python 코드는 실제 API에 맞춰져 있습니다.

명확한 시장 판단 받기

지금 BTC 롱? 숏? 방향을 명확히, 진입가와 무효가도 알려줘

계정 확인

현재 포지션과 최우선 호가는?

지정가 주문 1건

네 판단대로 65000에 0.01 BTC 매수해줘

래더 주문 (한 번의 배치로 최대 20건)

BTC에 지정가 매수 3건: 64000에 0.01, 63000에 0.01, 62000에 0.02.

내장 거래 스타일 사용 (“보수적” 빠른 명령, 앱 원문)

지금부터 "보수적" 스타일로 거래해 주세요:
- BTC만 거래
- 포지션당 지갑 잔액의 최대 15%까지 사용
- 동시에 최대 1개 포지션만 보유
- 레버리지는 현재 설정 그대로 유지하고 변경하지 않기
기회를 발견할 때마다 먼저 이유를 설명하고 주문 전에 제 확인을 기다리세요.

Python: 직접 만드는 에이전트·봇

섹션 제목: “Python: 직접 만드는 에이전트·봇”

아래 코드는 문서화된 API(인증, 엔드포인트 목록)를 사용합니다. pip install requests eth-account eth-utils를 설치하고 BITNXS_USER(메인 지갑 주소)와 BITNXS_API_KEY(권한을 제한한 API 키)를 환경 변수로 설정하세요.

import os, requests
from eth_account import Account
from eth_utils import keccak
BASE = "https://api.bitnxs.com"
USER = os.environ["BITNXS_USER"] # main wallet address
API_KEY = os.environ["BITNXS_API_KEY"] # never hard-code or paste into a prompt
def info(body):
return requests.post(f"{BASE}/info", json=body).json()
def open_session():
chal = requests.post(f"{BASE}/session/start", json={"user": USER}).json()
sig = Account.unsafe_sign_hash(keccak(chal["challenge"].encode()), private_key=API_KEY)
return requests.post(f"{BASE}/session/complete", json={
"challengeId": chal["challengeId"],
"signature": {"r": hex(sig.r), "s": hex(sig.s), "v": sig.v - 27},
}).json()["sessionId"]
meta = info({"type": "meta"}) # asset ids, decimals, max leverage

예약 진입: 1시간마다 지정가 매수

섹션 제목: “예약 진입: 1시간마다 지정가 매수”
import time
SID = open_session() # refresh before the 1-hour session TTL
BTC = 1 # numeric asset id from meta
for i in range(3):
r = requests.post(f"{BASE}/session/order", json={
"sessionId": SID, "requestId": int(time.time() * 1000), # idempotency key
"asset": BTC, "isBuy": True, "limitPx": "65000", "sz": "0.001",
"reduceOnly": False, "orderType": {"type": "limit", "tif": "Gtc"},
}).json()
print(r)
time.sleep(3600)

set_triggers 권한이 필요합니다. 오라클 가격이 triggerPx를 넘으면 트리거가 reduce-only 시장가 주문으로 실행됩니다(규칙). TP와 SL은 따로 호출합니다.

for is_tp, px in [(True, "72000"), (False, "61000")]:
print(requests.post(f"{BASE}/session/trigger", json={
"sessionId": SID, "asset": BTC, "isTp": is_tp,
"triggerPx": px, "sz": "0.001", "positionSide": 1, # 1 = long, -1 = short
}).json())

간단한 전략 루프: 판단은 LLM, 한도는 사용자

섹션 제목: “간단한 전략 루프: 판단은 LLM, 한도는 사용자”

Claude, ChatGPT 등 LLM으로 에이전트를 만들 때의 안전한 패턴:

  1. info({"type": "clearinghouseState", "user": USER})와 info({"type": "allMids"})로 상태를 읽습니다.
  2. 상태를 LLM에 보내 JSON 결정(long / short / wait, 가격, 수량)을 요청합니다.
  3. 전송 전에 코드로 검증: 최대 수량, 시간당 최대 주문 수, 허용 마켓, 가격이 중간가 근처 범위인지.
  4. 지정가 주문을 넣고 TP와 SL 트리거를 붙입니다.
  5. 모든 것을 기록하고 오류가 반복되면 중지합니다.