사전 준비
시작하기 전에 다음을 준비하세요:
- 등록된 ChainStream 계정 (여기서 등록)
- API Key (
cs_live_...로 시작)
GraphQL API는 REST Data API와 동일한 API Key를 공유합니다. REST API용 키가 이미 있다면 여기서 재사용할 수 있습니다.
1단계: API Key 발급
- ChainStream Dashboard에 로그인
- Applications으로 이동
- Create New App 클릭 (또는 기존 앱 선택)
- API Key 복사
2단계: GraphQL IDE 열기
ChainStream GraphQL IDE를 방문하세요:
IDE는 자동 완성, 구문 강조, 인라인 문서, 쿼리 히스토리를 제공하여 스키마를 탐색하고 쿼리를 작성하는 가장 빠른 방법입니다.
3단계: 인증 설정
IDE에서 Headers 패널(하단 왼쪽)을 열고 API Key를 추가하세요:
{
"X-API-KEY": "your_api_key"
}
4단계: 샘플 쿼리 실행
다음 쿼리를 에디터에 붙여넣으세요. Solana의 최근 DEX 트레이드 10건을 조회하며, 블록 시간, 트랜잭션 해시, 매수/매도 토큰 정보, 금액, USD 가격, DEX 프로토콜 이름이 포함됩니다.
query {
DEXTrades(
network: sol
limit: {count: 10}
orderBy: Block_Time_DESC
) {
Block {
Time
Slot
}
Transaction {
Hash
}
Trade {
Buy {
Currency { MintAddress }
Amount
PriceInUSD
}
Sell {
Currency { MintAddress }
Amount
}
Dex { ProtocolName }
}
}
}
Play 버튼을 클릭하거나 Ctrl+Enter / Cmd+Enter를 눌러 실행하세요.
cURL 동일 예제
터미널에서 동일한 쿼리를 실행할 수 있습니다:
curl -X POST "https://graphql.chainstream.io/graphql" \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-d '{
"query": "{ DEXTrades(network: sol, limit: {count: 10}, orderBy: Block_Time_DESC) { Block { Time Slot } Transaction { Hash } Trade { Buy { Currency { MintAddress } Amount PriceInUSD } Sell { Currency { MintAddress } Amount } Dex { ProtocolName } } } }"
}'
응답 예제
성공적인 응답은 다음과 같습니다:
{
"data": {
"DEXTrades": [
{
"Block": {
"Time": "2025-03-27T10:32:18Z",
"Slot": 325847291
},
"Transaction": {
"Hash": "4vKzR8g...x9bQ"
},
"Trade": {
"Buy": {
"Currency": { "MintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" },
"Amount": 1523.45,
"PriceInUSD": 1.0001
},
"Sell": {
"Currency": { "MintAddress": "So11111111111111111111111111111111111111112" },
"Amount": 10.237
},
"Dex": { "ProtocolName": "Raydium" }
}
},
{
"Block": {
"Time": "2025-03-27T10:32:17Z",
"Slot": 325847289
},
"Transaction": {
"Hash": "3mPqW7n...kR2J"
},
"Trade": {
"Buy": {
"Currency": { "MintAddress": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" },
"Amount": 48291037.12,
"PriceInUSD": 0.00003152
},
"Sell": {
"Currency": { "MintAddress": "So11111111111111111111111111111111111111112" },
"Amount": 10.5
},
"Dex": { "ProtocolName": "Orca" }
}
}
]
},
"extensions": {
"credits": {
"total": 50,
"cubes": [
{ "cube": "DEXTrades", "credits": 50, "row_count": 10 }
]
}
}
}
응답 이해하기
응답은 쿼리의 구조를 그대로 반영합니다:
| 경로 | 설명 |
|---|
Block.Time | ISO 8601 형식의 블록 타임스탬프 |
Block.Slot | Solana 슬롯 번호 (Solana 전용) |
Transaction.Hash | 온체인 트랜잭션 해시 |
Trade.Buy.Currency.MintAddress | 매수한 자산의 토큰 주소 |
Trade.Buy.Amount | 매수한 토큰 수량 |
Trade.Buy.PriceInUSD | 거래 시점의 매수 토큰 USD 가격 |
Trade.Sell.Currency.MintAddress | 매도한 자산의 토큰 주소 |
Trade.Sell.Amount | 매도한 토큰 수량 |
Trade.Dex.ProtocolName | 거래를 실행한 DEX 프로토콜 (예: Raydium, Orca, PancakeSwap) |
extensions.credits 객체는 이 쿼리에서 소비된 빌링 크레딧과 남은 잔액을 보여줍니다. 자세한 내용은 빌링 & 크레딧을 참조하세요.
쿼리 수정해 보기
이제 동작하는 쿼리가 있으니 다음과 같이 수정해 보세요:
network: sol을 network: eth로 변경하여 Ethereum DEX 트레이드(Uniswap, SushiSwap 등)를 조회합니다.
다음 단계
스키마 & 데이터 모델
25개 Cube, 필드 타입, 필터링 연산자, 집계 함수를 살펴보세요.
쿼리 예제
DEX 트레이드, 전송, OHLC, 홀더 등을 위한 실제 쿼리 예제를 찾아보세요.
GraphQL IDE 가이드
IDE를 마스터하세요 — 쿼리 템플릿, 저장된 쿼리, 변수 패널, 코드 내보내기.
빌링 & 크레딧
쿼리 크레딧 계산 방법과 비용 최적화 방법을 알아보세요.