transactionSubscribe란 무엇인가요?
transactionSubscribe WebSocket 메서드(표준 Solana WebSocket API에 대한 Helius 확장)는 실시간 거래 이벤트를 가능하게 합니다.
사용하려면 TransactionSubscribeFilter을 제공하고 선택적으로 추가 맞춤화를 위해 TransactionSubscribeOptions을 포함할 수 있습니다.
transactionSubscribe는 표준 Solana 구독 메서드와 동일한 통합 wss://mainnet.helius-rpc.com 및 wss://devnet.helius-rpc.com 엔드포인트에 있습니다.
TransactionSubscribeFilter
vote: 투표 관련 거래 포함/제외 여부를 나타내는 불리언 플래그failed: 실패한 거래 포함/제외 여부를 나타내는 불리언 플래그signature: 서명을 기준으로 특정 거래에 대한 업데이트 필터링accountInclude: 거래 업데이트를 받고 싶은 계정 목록. 계정 중 하나만 거래 업데이트에 포함되어 있으면 됩니다(예: 계정 1 또는 2).accountExclude: 거래 업데이트에서 제외하려는 계정 목록accountRequired: 지정된 모든 계정이 업데이트에 포함되도록 거래에 포함되어야 함(예: 계정 1 및 2)tokenAccounts: 선택적 연결된 토큰 계정(ATA) 확장(balanceChanged,all또는none). 아래 지갑 감시, 토큰 전송 포함을 참조하세요.
TransactionSubscribeOptions (선택 사항)
commitment: 데이터를 가져오기 위한 커밋 수준 (processed,confirmed, 또는finalized)encoding: 반환되는 데이터의 인코딩 형식 (base58,base64, 또는jsonParsed)transactionDetails: 반환되는 데이터의 세부 수준 (full,signatures,accounts및none)showRewards: 보상 데이터를 업데이트에 포함할지 여부를 나타내는 불리언 플래그maxSupportedTransactionVersion: 업데이트를 받고자 하는 거래의 가장 높은 버전을 지정합니다. 값을1로 설정하여 레거시, v0 및 v1 거래를 수신합니다. 거래 v1 지원 참조.
maxSupportedTransactionVersion는 지정된 거래의 계정 및 전체 수준의 세부 정보를 반환하는 데 필요합니다(즉, transactionDetails: "accounts" | "full").Transaction Subscribe 예제
이 예제에서는 Raydium 계정675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8을 포함하는 거래를 구독하고 있습니다.
675k...1Mp8 계정을 거래의 accountKeys에 포함하는 거래가 발생하면 WSS 알림을 받게 됩니다.
구독 옵션에 따라 거래 알림은 processed 커밋 수준, jsonParsed 인코딩, full 거래 세부 정보로 전송되며 보상이 표시됩니다.
예제 알림
지갑 감시, 토큰 전송 포함
accountInclude를 사용하여 지갑을 감시하면 지갑 공개키가 계정 키에 직접 나타나는 거래만 일치합니다. 일반적인 경우는 누락됩니다: 누군가가 지갑에 SPL 토큰(예: USDC)을 보낼 때 전송은 지갑의 **연결된 토큰 계정 (ATA)**에 접근하며 지갑 공개키에는 나타나지 않습니다. 따라서 단순 accountInclude: [wallet] 구독으로는 이를 볼 수 없습니다.
일치 확장을 위해 tokenAccounts 필드를 설정하여 감시 계정이 토큰 잔액을 소유하는 거래도 일치하도록 설정하세요:
balanceChanged: 지갑이 소유한 토큰 잔액의 금액이 변경된 경우(또는 토큰 계정이 닫힌 경우) 일치합니다. “실제로 돈이 움직였을 때 알려줘”라는 목적으로 사용합니다. 이는 더 좁고, 낮은 볼륨이며 가장 일반적인 선택입니다.all: 지갑이 소유한 토큰 잔액을 참조하는 모든 거래에 일치합니다, 비록 변경되지 않았더라도. 더 많은 볼륨.none: 확장 없음. 필드를 생략한 것과 동일(기본값).
-32602을 반환합니다. tokenAccounts을 생략한 구독은 이전과 정확히 동일하게 작동합니다. ATA 확장이 어떻게 작동하는지에 대한 자세한 개요는 Token Account (ATA) Filtering over WebSocket를 참조하세요.
새로운 Jupiter DCA 모니터링
Jupiter DCA 또는 Dollar Cost Averaging은 Solana에서 반복 거래를 예약하는 방법입니다. 이러한 예약된 매수/매도 주문은 온체인에 기록되므로 트레이더는transactionSubscribe 메서드 및 getAsset를 사용하여 새로운 주문을 감지할 수 있습니다.
예제 알림

새로운 pump.fun 토큰 모니터링
예제 알림

구독 관리
구독 ID
transactionSubscribe가 성공하면 서버는 result 필드에 구독 ID를 반환합니다. 이는 해당 구독에서 발생하는 모든 알림의 params.subscription에 나타나는 동일한 번호입니다:
구독 취소
알림 수신을 중지하려면 구독 ID로transactionUnsubscribe를 호출하세요. 같은 연결에서 transactionSubscribe 호출마다 별도의 구독이 생성되며 각 구독에는 고유한 ID가 있습니다. 중복 알림 수신을 피하려면 재구독 전 구독을 취소하세요.
transactionUnsubscribe 호출 후 잠시 동안 여전히 도착할 수 있습니다. 이는 예상된 동작입니다.