Skip to content

ScoopAIthon/backend

Repository files navigation

Hyperliquid Wallet Scoring System

AI ๊ธฐ๋ฐ˜ ํŠธ๋ ˆ์ด๋” ๋ถ„์„ ๋ฐ ์ž๋™ ๋งค๋งค ํ”Œ๋žซํผ


ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

Hyperliquid ๋ฆฌ๋”๋ณด๋“œ์˜ ๋‹จ์ˆœ PnL ์ˆœ์œ„๋ฅผ ๋„˜์–ด, AI Agent๊ฐ€ ํŠธ๋ ˆ์ด๋”์˜ ์‹ค๋ ฅ๊ณผ ๋ฆฌ์Šคํฌ ํ”„๋กœํŒŒ์ผ์„ ๋ถ„์„ํ•˜์—ฌ ๋ณด๋‹ค ์ •ํ™•ํ•œ ํ‰๊ฐ€๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋‹ค์ฐจ์› ์ง€๊ฐ‘ ๋ถ„์„: ROI, MDD, CAGR, Calmar Ratio ๋“ฑ 6๊ฐ€์ง€ ๋ฉ”ํŠธ๋ฆญ์œผ๋กœ ํŠธ๋ ˆ์ด๋” ํ‰๊ฐ€
  • AI Agent ๋ถ„์„: SpoonOS LLM์„ ํ™œ์šฉํ•œ ํŠธ๋ ˆ์ด๋”ฉ ์Šคํƒ€์ผ ๋ถ„์„ ๋ฐ ํ‰๊ฐ€
  • ์ž๋™ ๋งค๋งค ์‹œ์Šคํ…œ: LLM ๊ธฐ๋ฐ˜ ๊ฑฐ๋ž˜ ๊ฒฐ์ • ๋ฐ x402 ๊ฒฐ์ œ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•œ API ์ ‘๊ทผ ์ œ์–ด
  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ: 5๋ถ„ ์บ์‹ฑ ์‹œ์Šคํ…œ์œผ๋กœ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ œ๊ณต
  • ํ…”๋ ˆ๊ทธ๋žจ ์—ฐ๋™: ๊ฑฐ๋ž˜ ๊ฒฐ๊ณผ ๋ฐ ๋ถ„์„ ๋ฆฌํฌํŠธ ์ž๋™ ์ „์†ก

์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Frontend  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚ REST API
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         FastAPI Backend                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  /api/data                         โ”‚  โ”‚
โ”‚  โ”‚  /api/information/{wallet_id}      โ”‚  โ”‚
โ”‚  โ”‚  /api/trade/auto/ai                โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚           โ”‚         โ”‚          โ”‚         โ”‚
โ”‚      ClickHouse  SpoonOS   Telegram      โ”‚
โ”‚      Database    LLM        Bot          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๊ธฐ์ˆ  ์Šคํƒ

Backend

  • FastAPI: ๊ณ ์„ฑ๋Šฅ ๋น„๋™๊ธฐ API ์„œ๋ฒ„
  • ClickHouse: ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์„ ๋ฐ์ดํ„ฐ ์ €์žฅ
  • SpoonOS LLM: AI ๊ธฐ๋ฐ˜ ํŠธ๋ ˆ์ด๋” ๋ถ„์„ ๋ฐ ๊ฑฐ๋ž˜ ๊ฒฐ์ •
  • Spoon-toolkit: ํฌ๋ฆฝํ†  ๋ฐ์ดํ„ฐ ์กฐํšŒ
  • x402 Payment Protocol: API ์ ‘๊ทผ ์ œ์–ด (๊ฒฐ์ œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜)
  • Python Telegram Bot: ์•Œ๋ฆผ ์„œ๋น„์Šค

์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • clickhouse-driver: ClickHouse ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ
  • eth-account: ์ด๋”๋ฆฌ์›€ ์„œ๋ช… ์ƒ์„ฑ/๊ฒ€์ฆ (x402)
  • httpx: ๋‚ด๋ถ€ API ํ˜ธ์ถœ
  • python-telegram-bot: ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ํ†ต์‹ 

API ๋ฌธ์„œ

GET /api/data

์ง€๊ฐ‘ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ์กฐํšŒ

ํŠน์ง•:

  • 5๋ถ„ ์บ์‹ฑ: ์ตœ๊ทผ 5๋ถ„ ์ด๋‚ด ๋ฐ์ดํ„ฐ๋Š” ์บ์‹œ์—์„œ ์ฆ‰์‹œ ๋ฐ˜ํ™˜
  • ์ž๋™ ๊ฐฑ์‹ : ์บ์‹œ ๋งŒ๋ฃŒ ์‹œ ClickHouse์—์„œ ์ƒˆ๋กœ ์กฐํšŒ
  • ์ƒ์œ„/ํ•˜์œ„ 5๊ฐœ: weighted_score ๊ธฐ์ค€ ์ƒ์œ„ 5๊ฐœ์™€ ํ•˜์œ„ 5๊ฐœ ๋ฐ˜ํ™˜

์‘๋‹ต ์˜ˆ์‹œ:

[
    {
        "wallet_id": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
        "rank": 1,
        "equityCurve": [
            { "date": "2024-01-01", "balance": 10000 },
            { "date": "2024-01-02", "balance": 10500 }
        ],
        "roi": 150.5,
        "mdd": -25.3,
        "cagr": 200.0,
        "calmar_ratio": 7.9,
        "ave_drawdown": -5.2,
        "recovery_factor": 5.9,
        "weighted_score": 86.67,
        "AI_Assistant": "Exceptional risk-adjusted performance..."
    }
]

GET /api/information/{wallet_id}

ํŠน์ • ์ง€๊ฐ‘์˜ ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ

์‘๋‹ต ํฌํ•จ:

  • Equity Curve (์ผ๋ณ„ ์ž”์•ก ํžˆ์Šคํ† ๋ฆฌ)
  • 6๊ฐ€์ง€ ๋ฉ”ํŠธ๋ฆญ (ROI, MDD, CAGR, Calmar Ratio, Avg Drawdown, Recovery Factor)
  • AI Agent ๋ถ„์„ ํ…์ŠคํŠธ
  • ์œ ์‚ฌ ๊ณ ๋ž˜ ํ”„๋กœํ•„ (3๊ฐœ, matchScore ๊ธฐ์ค€ ์ •๋ ฌ)

์‘๋‹ต ์˜ˆ์‹œ:

{
  "wallet_id": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
  "equityCurve": [...],
  "roi": 80.0,
  "mdd": 100.0,
  "cagr": 60.0,
  "calmar_ratio": 100.0,
  "ave_drawdown": 100.0,
  "recovery_factor": 80.0,
  "weighted_score": 86.67,
  "AI_Assistant": "Exceptional risk-adjusted performance...",
  "similar_whale_profiles": [
    {
      "wallet_id": "0x...",
      "matchScore": 85,
      "pnl": 1000000
    }
  ]
}

POST /api/trade/auto/ai

AI ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ์ž๋™ ๋งค๋งค ์‹คํ–‰

๋™์ž‘ ํ๋ฆ„:

  1. x402 ๊ฒฐ์ œ ์š”๊ตฌ์‚ฌํ•ญ ์ƒ์„ฑ ๋ฐ ๊ฒ€์ฆ
  2. SpoonOS LLM์„ ํ†ตํ•œ ๋งค๋งค ๊ฒฐ์ • ์ƒ์„ฑ
  3. Spoon-toolkit์œผ๋กœ ํฌ๋ฆฝํ†  ๋ฐ์ดํ„ฐ ์กฐํšŒ
  4. Paper trade ์‹คํ–‰ (์‹œ๋ฎฌ๋ ˆ์ด์…˜)
  5. ํ…”๋ ˆ๊ทธ๋žจ์œผ๋กœ ๊ฒฐ๊ณผ ์ „์†ก

์š”์ฒญ:

Headers:
  X-PAYMENT-SIGNATURE: 0x... (์„œ๋ช…)

์‘๋‹ต:

  • 402 Payment Required: ๊ฒฐ์ œ ์„œ๋ช… ์—†์Œ
  • 200 OK: ๊ฑฐ๋ž˜ ์‹คํ–‰ ์™„๋ฃŒ + ํ…”๋ ˆ๊ทธ๋žจ ์•Œ๋ฆผ

์‹œ์ž‘ํ•˜๊ธฐ

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ

  • Python 3.8+
  • ClickHouse ์ ‘๊ทผ ๊ถŒํ•œ
  • SpoonOS LLM ๋ฐ Spoon-toolkit (ํ•ด์ปคํ†ค ํ•„์ˆ˜ ์š”๊ฑด)
  • ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ํ† ํฐ (์„ ํƒ์‚ฌํ•ญ)

์„ค์น˜

# ์ €์žฅ์†Œ ํด๋ก 
git clone <repository-url>
cd gore/backend

# ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ƒ์„ฑ
python -m venv venv

# ๊ฐ€์ƒ ํ™˜๊ฒฝ ํ™œ์„ฑํ™”
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate

# ์˜์กด์„ฑ ์„ค์น˜
pip install -r requirements.txt

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (์„ ํƒ์‚ฌํ•ญ)

.env ํŒŒ์ผ ์ƒ์„ฑ:

TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
AI_WALLET_PRIVATE_KEY=your_private_key

์‹คํ–‰

# FastAPI ์„œ๋ฒ„ ์‹คํ–‰
python main.py

# ๋˜๋Š” uvicorn ์ง์ ‘ ์‹คํ–‰
uvicorn main:app --reload --host 0.0.0.0 --port 8000

ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์€ ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰:

# ๋ณ„๋„ ํ„ฐ๋ฏธ๋„์—์„œ
python telegram_runner.py

API ๋ฌธ์„œ ํ™•์ธ

์„œ๋ฒ„ ์‹คํ–‰ ํ›„ ๋‹ค์Œ ์ฃผ์†Œ์—์„œ API ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:


๋ฐ์ดํ„ฐ ํ๋ฆ„

1. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์บ์‹ฑ

ClickHouse (wallet_scores ํ…Œ์ด๋ธ”)
    โ†“
/api/data ํ˜ธ์ถœ ์‹œ
    โ†“
์บ์‹œ ํ™•์ธ (result.txt)
    โ”œโ”€ 5๋ถ„ ์ด๋‚ด โ†’ ์บ์‹œ์—์„œ ๋ฐ˜ํ™˜
    โ””โ”€ 5๋ถ„ ์ดˆ๊ณผ โ†’ DB ์กฐํšŒ โ†’ ์บ์‹œ ์—…๋ฐ์ดํŠธ โ†’ ๋ฐ˜ํ™˜

2. ์ž๋™ ๋งค๋งค ํŠธ๋ฆฌ๊ฑฐ

/api/data ํ˜ธ์ถœ (DB์—์„œ ์ƒˆ๋กœ ์กฐํšŒํ•œ ๊ฒฝ์šฐ)
    โ†“
/api/trade/auto/ai ๋‚ด๋ถ€ ํ˜ธ์ถœ
    โ†“
x402 ๊ฒฐ์ œ ๊ฒ€์ฆ
    โ†“
SpoonOS LLM ๋ถ„์„ โ†’ ๋งค๋งค ๊ฒฐ์ •
    โ†“
Paper trade ์‹คํ–‰
    โ†“
ํ…”๋ ˆ๊ทธ๋žจ ์•Œ๋ฆผ ๋ฐœ์†ก

ํ•ด์ปคํ†ค ํ•„์ˆ˜ ์š”๊ฑด ์ถฉ์กฑ

1. SpoonOS LLM ํ™œ์šฉ

  • /api/trade/auto/ai ์—”๋“œํฌ์ธํŠธ์—์„œ spoon_ai.llm.manager ์‚ฌ์šฉ
  • ํŠธ๋ ˆ์ด๋” ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ๋งค๋งค ๊ฒฐ์ • ์ƒ์„ฑ
  • LLM ๊ธฐ๋ฐ˜ ํŠธ๋ ˆ์ด๋”ฉ ์Šคํƒ€์ผ ๋ถ„์„

2. Spoon-toolkit ๋ชจ๋“ˆ ์‚ฌ์šฉ

  • CryptoPowerDataCEXTool์„ ํ†ตํ•œ ํฌ๋ฆฝํ†  ๋ฐ์ดํ„ฐ ์กฐํšŒ
  • ์‹ค์‹œ๊ฐ„ ์‹œ์žฅ ๋ฐ์ดํ„ฐ ํ™œ์šฉ

3. x402 Payment Protocol

  • API ์ ‘๊ทผ์— ๋Œ€ํ•œ ๊ฒฐ์ œ ์š”๊ตฌ์‚ฌํ•ญ ์ƒ์„ฑ
  • ์ด๋”๋ฆฌ์›€ ์„œ๋ช…์„ ํ†ตํ•œ ๊ฒฐ์ œ ๊ฒ€์ฆ
  • ์‹ค์ œ ๊ฒฐ์ œ ์—†์ด ํ”„๋กœํ† ์ฝœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

gore/
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ main.py                    # FastAPI ๋ฉ”์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
โ”‚   โ”œโ”€โ”€ payment.py                 # x402 ๊ฒฐ์ œ ์š”๊ตฌ์‚ฌํ•ญ ์ƒ์„ฑ
โ”‚   โ”œโ”€โ”€ verify.py                  # x402 ์„œ๋ช… ๊ฒ€์ฆ
โ”‚   โ”œโ”€โ”€ telegram_bot.py            # ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ๋กœ์ง
โ”‚   โ”œโ”€โ”€ telegram_runner.py         # ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ
โ”‚   โ”œโ”€โ”€ requirements.txt           # Python ์˜์กด์„ฑ
โ”‚   โ”œโ”€โ”€ result.txt                 # ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ (์ž๋™ ์ƒ์„ฑ)
โ”‚   โ”œโ”€โ”€ systemd/                   # systemd ์„œ๋น„์Šค ํŒŒ์ผ
โ”‚   โ”‚   โ”œโ”€โ”€ myapi.service
โ”‚   โ”‚   โ””โ”€โ”€ mybot.service
โ”‚   โ””โ”€โ”€ test_external_connection.ipynb  # ClickHouse ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ
โ””โ”€โ”€ README.md                      # ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ

์ฃผ์š” ๊ธฐ๋Šฅ ์ƒ์„ธ

์บ์‹ฑ ์‹œ์Šคํ…œ

  • 5๋ถ„ ์บ์‹ฑ: ClickHouse ์กฐํšŒ ๋ถ€ํ•˜ ์ตœ์†Œํ™”
  • ์ž๋™ ๊ฐฑ์‹ : ์บ์‹œ ๋งŒ๋ฃŒ ์‹œ ์ž๋™์œผ๋กœ ์ตœ์‹  ๋ฐ์ดํ„ฐ ์กฐํšŒ
  • ํƒ€์ž„์Šคํƒฌํ”„ ์ €์žฅ: ์บ์‹œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์„ ์œ„ํ•œ ์ €์žฅ ์‹œ๊ฐ„ ๊ธฐ๋ก

๋ฉ”ํŠธ๋ฆญ ๋ถ„์„

6๊ฐ€์ง€ ํ•ต์‹ฌ ์ง€ํ‘œ๋กœ ํŠธ๋ ˆ์ด๋” ํ‰๊ฐ€:

  • ROI: ์ด ์ˆ˜์ต๋ฅ 
  • MDD: ์ตœ๋Œ€ ์†์‹คํญ (์Œ์ˆ˜๋กœ ๋ฐ˜ํ™˜)
  • CAGR: ์—ฐํ™˜์‚ฐ ์ˆ˜์ต๋ฅ 
  • Calmar Ratio: CAGR/MDD ๋น„์œจ
  • Avg Drawdown: ํ‰๊ท  ์†์‹คํญ
  • Recovery Factor: ์†์‹ค ํšŒ๋ณต ํšจ์œจ

๊ฐ ์ง€ํ‘œ๋Š” _score ํ•„๋“œ๋กœ 0-100 ์ ์ˆ˜๋กœ ์ •๊ทœํ™”๋˜์–ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

AI Agent ๋ถ„์„

SpoonOS LLM์„ ํ™œ์šฉํ•˜์—ฌ:

  • ํŠธ๋ ˆ์ด๋”ฉ ์Šคํƒ€์ผ ๋ถ„๋ฅ˜
  • ๋ฉ”ํŠธ๋ฆญ ์กฐํ•ฉ ํŒจํ„ด ๋ถ„์„
  • ์ง€์†๊ฐ€๋Šฅ์„ฑ ํ‰๊ฐ€
  • ์ •์„ฑ์  ์ธ์‚ฌ์ดํŠธ ์ œ๊ณต

๋ฐฐํฌ

Systemd ์„œ๋น„์Šค (Linux)

FastAPI์™€ ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์„ ๋ณ„๋„ ์„œ๋น„์Šค๋กœ ์‹คํ–‰:

# ์„œ๋น„์Šค ํŒŒ์ผ ๋ณต์‚ฌ
sudo cp backend/systemd/*.service /etc/systemd/system/

# ์„œ๋น„์Šค ํ™œ์„ฑํ™” ๋ฐ ์‹œ์ž‘
sudo systemctl daemon-reload
sudo systemctl enable myapi mybot
sudo systemctl start myapi mybot

# ์ƒํƒœ ํ™•์ธ
sudo systemctl status myapi
sudo systemctl status mybot

Nginx ํ”„๋ก์‹œ (์„ ํƒ์‚ฌํ•ญ)

backend/nginx_example.conf๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ Nginx ์„ค์ • ๊ฐ€๋Šฅ


๋ผ์ด์„ ์Šค

Copyright ยฉ 2024 Hyperliquid Wallet Scoring System


๊ธฐ์—ฌํ•˜๊ธฐ

์ด์Šˆ ๋ฐ ๊ฐœ์„  ์ œ์•ˆ์€ GitHub Issues๋ฅผ ํ†ตํ•ด ์ œ์ถœํ•ด์ฃผ์„ธ์š”.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages