> ## Documentation Index
> Fetch the complete documentation index at: https://injectivelabs-docs-ai-sdk.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Injective Trader

# Injective Trader

Injective Trader는 Injective 블록체인에서 알고리즘 트레이딩 전략을 개발하고 배포하기 위한 고성능, 안정적인 기반을 제공하는 전문가급 프레임워크입니다. 알고리즘 트레이딩 전략과 블록체인 실행 사이의 간격을 메우며 기술적 장벽을 제거합니다. 이 프레임워크는 실시간 데이터 스트리밍, 주문 실행, 재연결/복구, 트랜잭션 배칭, 분석 등의 무거운 작업을 처리합니다. 이를 통해 트레이더는 블록체인의 복잡성보다 전략 개발에만 집중할 수 있습니다.

이를 사용하여 기존 전략을 가져오거나 다음과 같은 새로운 전략을 만들 수 있습니다:

* **자동으로 주문 배치** - 여러분의 로직에 따라
* **24/7 마켓 모니터링** - 가격 변동에 대응
* **리스크 관리** - 내장된 제한 및 안전 기능 포함
* **다중 마켓 처리** - 동시에
* **상세한 로그 제공** - 모든 거래 활동에 대해

### 핵심 기능

**간소화된 전략 개발**

* SDK 전문 지식 불필요 - 순수하게 트레이딩 로직에만 집중
* 최소한의 기술적 오버헤드로 빠른 전략 배포
* 직관적인 전략 구현을 가능하게 하는 이벤트 기반 아키텍처

**내장된 안정성**

* 자동화된 재연결 및 복구 메커니즘
* 실행 전 트랜잭션 검증
* 포괄적인 오류 처리 및 재시도 로직

**성능 최적화**

* 비용 절감을 위한 지능형 트랜잭션 배칭
* 자동 수수료 관리 및 최적화
* 확장을 위한 다중 계정 지원

**엔터프라이즈 지원 기능**

* 완전한 포지션 및 PnL 추적
* 리스크 관리 기능
* 상세한 성능 분석

<Callout icon="warning" color="#07C1FF" iconType="regular">
  Injective trader는 실제 가치가 있는 자산을 거래하므로 보안이 가장 중요합니다. 다음을 보안 기준으로 사용하고 자산을 보호하기 위한 추가 조치를 취하세요.

  * **개인 키를 절대 공유하지 마세요** 또는 Git에 커밋하지 마세요.
  * 로컬 **`.env` 파일**에 비밀을 저장하고 환경 변수를 통해 로드하세요.
  * 추가 안전을 위해
    [**AuthZ**](https://github.com/InjectiveLabs/injective-trader/tree/master?tab=readme-ov-file#authorization-trading-authz)를
    사용하여 메인 계정을 노출하지 않고 거래 권한을 부여하는 것을 고려하세요.
</Callout>

## 빠른 시작 (5분)

### 1. Injective 계정 준비 (및 펀딩)

1. Keplr 또는 `injectived`를 사용하여 Injective에서 **계정을 생성**하세요.
2. Keplr를 사용하는 경우 `.env` 파일용으로 **개인 키를 내보내세요**.
   * *팁: AuthZ를 사용하면 더 나은 보안을 위해 트레이딩 계정에 제한된 권한을 부여할 수 있습니다.*
3. 다른 Injective 주소에서 보내거나 [bridge.injective.network](http://bridge.injective.network/)를 통해 **USDT로 계정에 펀딩**하세요.
   * *EVM 팁: TS SDK로 `inj` 주소를 도출하고 Injective 계정을 설정하지 않고도 Ethereum에서 Injective로 USDT를 브릿지할 수 있습니다.*

### 2. 다운로드 및 설정

```bash theme={null}
git clone https://github.com/InjectiveLabs/injective-trader.git
cd injective-trader

# 가상 환경 생성 (권장)
python3 -m venv .venv
source .venv/bin/activate    # Windows: .venv\Scripts\Activate.ps1

pip install -r requirements.txt
pip install "injective-py==1.9"
```

*참고: `injective-trader`는 아직 `injective-py` v1.11과 호환되지 않습니다.*

### 3. 전략 구성

기존 `config.yaml` 편집:

```yaml theme={null}
Exchange: Helix
ConsoleLevel: INFO
FileLevel: DEBUG

Components:
  Initializer:
    Network: mainnet
    BotName: MyBot
    MarketTickers:
      - INJ/USDT PERP
      - BTC/USDT PERP
      - ETH/USDT PERP

Strategies:
  MyMarketMaker:
    Name: "MyMarketMaker"
    Class: "SimpleStrategy"
    MarketIds:
      - "0x17ef48032..."  # INJ/USDT PERP
      - "0x4ca0f92f..."  # BTC/USDT PERP
      - "0x9b998016..."  # ETH/USDT PERP
    AccountAddresses:
      - "inj1your_account_address_here"
    TradingAccount: "inj1your_account_address_here"
    CIDPrefix: "my_mm"
    Parameters:
      OrderSize: 0.1
      MaxPosition: 1.0
      SpreadThreshold: 0.005
```

### 4. 개인 키 설정

단일 `INJECTIVE_PRIVATE_KEY` 대신 `.env`에서 **bot-scoped 환경 변수**를 사용하세요 (프레임워크 기본값과 일치):

```
# "MyBot"이라는 이름의 봇용
MyBot_GRANTER_INJECTIVE_PRIVATE_KEY=your_granter_private_key_here
MyBot_GRANTEE_0_INJECTIVE_PRIVATE_KEY=your_first_grantee_private_key_here
```

세션에 로드:

```bash theme={null}
export $(grep -v '^#' .env | xargs)
```

### 5. 전략 실행

```bash theme={null}
python main.py MyBot config.yaml --log_path logs/my_bot.log --network mainnet
```

완료 - 이제 봇이 실행 중입니다!

## IDE 설정

VS code 또는 호환 가능한 IDE(예: Cursor)를 사용하는 경우 쉬운 디버깅을 위해 다음 구성을 추가하는 것을 고려하세요.

`.vscode/launch.json`:

```json theme={null}
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Run MyBot (mainnet)",
      "type": "python",
      "request": "launch",
      "program": "${workspaceFolder}/main.py",
      "console": "integratedTerminal",
      "args": ["MyBot", "config.yaml", "--log_path", "logs/strategy.log", "--network", "mainnet"],
      "envFile": "${workspaceFolder}/.env"
    },
    {
      "name": "Run MyBot (testnet, debug)",
      "type": "python",
      "request": "launch",
      "program": "${workspaceFolder}/main.py",
      "console": "integratedTerminal",
      "args": ["MyBot", "config.yaml", "--log_path", "logs/debug.log", "--network", "testnet", "--debug"],
      "envFile": "${workspaceFolder}/.env"
    }
  ]
}
```

이제 IDE에서 **Run → Start Debugging**을 수행할 수 있습니다.

## 아키텍처

### 시스템 아키텍처 다이어그램

<figure>
  <img src="https://mintcdn.com/injectivelabs-docs-ai-sdk/bmaVY3axK6tiwhnK/img/injective-trader-network-architecture-diagram.png?fit=max&auto=format&n=bmaVY3axK6tiwhnK&q=85&s=85016ec8826bfe02895344225ae6d393" alt="Injective Trader Network Architecture Diagram" width="563" data-path="img/injective-trader-network-architecture-diagram.png" />

  <figcaption><p>Injective Trader Network Architecture Diagram</p></figcaption>
</figure>

### 핵심 디자인 패턴

* **Mediator Pattern**: 컴포넌트 간 통신을 중앙화하여 컴포넌트가 직접적인 의존성 없이 상호작용할 수 있는 분리된 아키텍처를 가능하게 합니다.
* **Component Pattern**: 모든 시스템 컴포넌트에 대해 라이프사이클 관리(initialize, run, terminate)를 표준화하여 일관된 동작을 보장합니다.
* **State Pattern**: 잘 정의된 상태(Idle, Running, Terminated)를 통해 컴포넌트 라이프사이클을 관리하여 예측 가능한 전환과 오류 처리를 제공합니다.
* **Task Management Pattern**: 자동화된 모니터링 및 복구를 통해 비동기 작업을 조율하여 이벤트 기반 환경에서 안정적인 실행을 보장합니다.
* **Observer Pattern**: 전문화된 이벤트 핸들러를 통해 전략이 특정 업데이트 이벤트에 반응할 수 있도록 하여 유연한 전략 개발 접근 방식을 만듭니다.

### 주요 컴포넌트

**Exchange-Specific Agents**

* **Initializer**: 거래소 연결, 계정 및 마켓 설정
* **ChainListener**: 자동 재연결을 통한 실시간 블록체인 데이터 스트리밍
* **MessageBroadcaster**: 재시도 로직을 통한 트랜잭션 생성 및 브로드캐스팅 처리
* **Liquidator**: 담보 부족 포지션에 대한 청산 모니터링 및 실행

**Managers**

* **MarketManager**: 마켓 데이터 처리 및 orderbook 무결성 유지
* **AccountManager**: 잔액, 포지션 및 주문 상태 추적
* **StrategyManager**: 마켓 이벤트를 적절한 전략 구현으로 라우팅
* **RiskManager**: 포지션 제한 및 리스크 제어 적용
* **TaskManager**: 비동기 작업 실행 조율 및 모니터링

**Data-Level Domains**

* **Market**: orderbook 및 메타데이터가 있는 거래 쌍 표현
* **Account**: 계정 잔액, 입금 및 subaccount 관리
* **Positions**: P\&L 계산이 포함된 파생상품 포지션 추적
* **Order**: 실행 이력이 있는 주문 상태 추적
* **Oracle Prices**: 타임스탬프 추적이 있는 실시간 가격 피드

**Strategy-Level Plugins**

* **Strategy Base**: 커스텀 전략 구현을 위한 템플릿
* **Update Handlers**: 마켓 데이터 이벤트에 대한 이벤트별 프로세서
* **Performance Metrics**: 통계 및 P\&L 추적
* **Risk Models**: 커스터마이징 가능한 리스크 관리 규칙

## 다음

코드베이스에 익숙해지기 위해 Injective Trader와 함께 제공되는 [simple strategy](/developers-defi/injective-trader/simple-strategy)에 대해 자세히 알아보세요.
