메인 콘텐츠로 건너뛰기
POST
이 페이지의 요청 본문, 응답 스키마 및 예시는 OpenAPI 정의에서 생성됩니다. 스캔은 한 주소의 기록을 탐색하고 match 기준과 일치하는 트랜잭션만 유지한 후 해당 트랜잭션만 파싱합니다. 파싱된 트랜잭션 기록을 페이지별로 조회하고 클라이언트 측에서 필터링하는 대신 사용하세요. 기본적으로 data의 각 항목은 트랜잭션 파싱이 반환하는 것과 동일한 TransactionResult 형식을 사용합니다. 일치하는 서명만 가져오거나 개수만 가져오려면 returnShape을 설정하세요. 응답에는 스캔이 어디까지 진행되었고 왜 중지되었는지 알려 주는 scan 요약도 포함됩니다.

스캔 작동 방식

  1. 스캔은 설정한 slot, time 및 서명 범위 내에서 주소 기록을 sortOrder 순서로 페이지당 최대 1,000개의 트랜잭션씩 가져옵니다.
  2. match에 설정된 모든 기준과 일치하는 트랜잭션을 유지합니다.
  3. 다음 중 하나에 먼저 도달하면 중지합니다. limit개의 일치 항목 발견(기본 transactions 형식만 해당), budget.maxScannedTransactions개 스캔, 기록 또는 범위의 끝, 요청 시간 제한.
일찍 중지된 스캔도 여전히 200입니다. paginationToken이 존재하는 동안에는 data이 비어 있더라도 반환된 값을 사용하여 다시 호출하세요.

일치 기준

match은 필수입니다. programs, mints 또는 둘 다 설정하세요. 둘 다 설정하면 트랜잭션이 두 조건 모두와 일치해야 합니다.

프로그램별 일치

programs에는 최대 20개의 프로그램을 나열할 수 있으며, 각 프로그램은 한 번만 지정할 수 있습니다. 트랜잭션에 해당 프로그램 중 하나의 최상위 또는 내부(CPI) 명령어가 프로그램의 scope 내에 있으면 일치합니다. 각 프로그램에 대해 일치 범위를 좁힐 수 있습니다.
  • instructions: 프로그램의 모든 IDL 버전에 있는 명령어 이름입니다. IDL에 표기된 형태나 snake_case를 사용할 수 있습니다. 프로그램의 IDL에 없는 이름을 지정하면 400이 반환됩니다.
  • discriminators: 각각 1~8개의 16진수 인코딩 바이트로 이루어진 명령어 데이터 접두사이며 선택적으로 0x 접두사를 사용할 수 있습니다. IDL이 없는 프로그램에 사용하세요.
  • 두 목록 중 하나 또는 둘 다 설정하세요. 둘 다 설정하면 명령어가 지정된 명령어 중 하나이거나 데이터가 판별자 중 하나로 시작할 때 일치합니다. 프로그램의 모든 명령어와 일치시키려면 둘 다 생략하세요.
  • 각 목록에는 프로그램당 최대 50개의 항목을 지정할 수 있습니다.
프로그램의 디코딩된 명령어 이름을 확인하려면 Parsed Streams의 describeProgram 메서드를 사용하세요.

민트별 일치

mints에는 { "mint": "...", "scope": "address" } 형식의 객체를 최대 20개까지 나열할 수 있으며, 각 민트는 한 번만 지정할 수 있습니다. 트랜잭션의 사전 또는 사후 토큰 잔액 중 하나가 해당 민트의 scope 내에서 지정된 민트 중 하나에 해당하면 일치합니다. 민트에 대해 지갑을 스캔할 때는 tokenAccounts을 balanceChanged으로 설정하세요. 기본적으로 기록에서는 지갑 자체가 아닌 지갑의 토큰 계정만 건드리는 트랜잭션을 제외하며, 여기에는 많은 수신 토큰 전송이 포함됩니다.

네이티브 SOL 일치

네이티브 SOL에는 토큰 잔액이 없으므로 스캔은 lamport를 기준으로 일치 여부를 판단합니다. 네이티브 SOL 민트 So11111111111111111111111111111111111111111을 사용하세요(래핑된 SOL은 So11111111111111111111111111111111111111112입니다).
  • address 범위에서는 스캔한 주소의 lamport가 변경되면 트랜잭션이 일치합니다.
  • transaction 범위에서는 어느 계정이든 lamport가 변경되면 일치합니다.
수수료 납부자에게 부과된 수수료는 포함되지 않습니다. 각 계정을 개별적으로 비교하므로 한 계정에서 나갔다가 동일한 트랜잭션에서 다시 돌아온 lamport는 포함되지 않습니다. 네이티브 SOL 일치는 Pump.fun 판매처럼 프로그램이 전송 명령어 없이 지급한 SOL을 감지합니다. 또한 Jito 팁이나 계정에 지불되거나 계정에서 환불된 임대료와 같은 부수적인 이동도 감지합니다.

일치 범위

각 프로그램과 각 민트에는 scope가 적용됩니다. 스캔한 주소가 트랜잭션에는 있지만 일치시킬 명령어나 잔액에는 없는 경우 transaction 범위를 사용하세요. 예를 들어 주소가 수수료만 지불하거나, 다중 서명 트랜잭션을 실행하거나, Anchor 이벤트 CPI에서 누락된 경우입니다. USDC도 보유한 트랜잭션을 찾기 위해 토큰 민트를 스캔하려면 USDC 항목에 transaction 범위를 사용해야 합니다. 토큰 계정 소유권은 각 토큰 잔액에 기록된 owner에서 가져옵니다. 이를 기록하지 않은 이전 트랜잭션은 address 자체에 대해서만 address 범위와 일치합니다.

반환 형식

returnShape은 응답에서 일치 항목에 대해 반환할 내용을 설정합니다. signatures과 count은 limit 및 rawTransaction을 무시합니다. 요청이 스캔하는 범위의 모든 일치 항목을 반환하므로 windowEnd, budget 또는 deadline에서만 중지합니다. 전체 기록의 개수를 계산하려면 paginationToken을 사용해 계속 호출하고 scan.matchedTransactions을 합산하세요. returnShape: "signatures"을 사용하는 data의 각 항목은 다음과 같습니다.
크레딧은 반환되는 내용이 아니라 스캔한 기록 페이지에 따라 결정되므로 세 형식의 비용은 모두 같습니다.

요청 예시

Pump.fun 매수 및 매도

Pump.fun 프로그램의 기록에서 buy 및 sell 명령어를 스캔합니다.
Pump.fun에는 buy_exact_sol_in, buy_v2 및 sell_v2 같은 변형도 있습니다. 일치시킬 모든 명령어 이름을 나열하세요.

한 토큰의 매수 및 매도

한 토큰의 Pump.fun 거래를 가져오려면 프로그램 대신 토큰의 민트 주소를 스캔하세요. 민트 기록에는 해당 토큰의 활동만 포함되며, 각 매수 또는 매도 명령어는 민트를 계정으로 나열하므로 기본 address 범위와 일치합니다.
USDC 토큰 계정도 관련된 토큰 트랜잭션만 유지하려면 transaction 범위로 USDC를 추가하세요. 기본 address 범위를 사용하면 USDC 잔액이 민트 주소에 속해야 하므로 어떤 항목도 일치하지 않습니다.

두 프로그램에 걸친 지갑 거래

여러 프로그램 중 하나에 대한 호출과 일치시키려면 여러 프로그램을 나열하세요. 이 요청은 지갑의 Pump.fun 및 PumpSwap 거래를 서명으로만 반환합니다.

특정 시간 범위의 지갑 USDC 활동

2025년에 USDC와 상호작용한 트랜잭션을 찾기 위해 지갑 기록을 스캔합니다. tokenAccounts: "balanceChanged"에는 지갑의 USDC 토큰 계정만 건드린 전송도 포함됩니다.
일치하는 트랜잭션 수만 가져오려면 "returnShape": "count"을 추가하세요.

지갑의 SOL 이동

2025년에 지갑이 지불한 수수료 외에 SOL 잔액을 변경한 트랜잭션을 찾기 위해 지갑을 스캔합니다. 여기에는 프로그램이 전송 명령어 없이 지급한 SOL도 포함됩니다.

페이지네이션 및 중지 이유

scan.stoppedOn은 요청이 종료된 이유를 알려 줍니다. scan.scannedThrough은 마지막으로 스캔한 트랜잭션의 슬롯과 블록 시간을 제공하므로 긴 기록의 진행 상황을 보고할 수 있습니다. 드문 명령어를 찾는 스캔은 일치 항목을 찾지 못한 채 예산을 모두 사용할 수 있습니다. 이 경우 응답의 data 배열은 비어 있지만 paginationToken은 계속 반환되므로 스캔을 계속하세요.
이 루프는 기록을 모두 탐색할 때까지 스캔을 계속합니다.
scan-pumpfun-trades.js
가능한 한 가장 좁은 범위의 주소를 스캔하세요. 주소 기록의 모든 트랜잭션이 예산에 포함되므로 관련 없는 트랜잭션이 적은 주소일수록 각 요청에서 더 많은 일치 항목을 찾을 수 있습니다.

크레딧

각 스캔에는 10크레딧과 스캔한 기록 페이지당 1크레딧이 필요합니다. 한 페이지에는 최대 1,000개의 트랜잭션이 포함되므로 기본 예산인 10,000개의 트랜잭션을 사용하는 스캔의 비용은 최대 20크레딧입니다. 기한으로 인해 중간에 중단된 페이지는 스캔되지 않으며 요금도 부과되지 않습니다. 각 응답은 scan.creditsCharged에 청구 금액을 표시합니다. 플랜 가격은 크레딧을 참조하세요.

오류

요청 수준 오류는 {"error": "limit must be between 1 and 100"}과 같은 error 메시지가 포함된 JSON 본문을 반환합니다. includeRawTransaction 같은 알 수 없는 필드가 있는 본문(rawTransaction 사용)이나 mints을 { "mint": "..." } 객체 대신 일반 문자열로 지정한 본문은 {"error": "invalid request payload"}을 반환합니다.

요청 매개변수

string
필수
기록을 스캔할 주소입니다.
object
필수
트랜잭션이 일치해야 하는 대상입니다. programs, mints 또는 둘 다 설정하세요. 둘 다 설정하면 트랜잭션이 두 조건 모두와 일치해야 합니다.
array
일치시킬 프로그램입니다. 최대 20개이며 각 프로그램은 한 번만 지정할 수 있습니다. 트랜잭션에 해당 프로그램 중 하나의 최상위 또는 내부(CPI) 명령어가 프로그램의 scope 내에 있으면 일치합니다.
string
필수
프로그램 주소입니다.
array
프로그램의 모든 IDL 버전에 있는 명령어 이름입니다. IDL에 표기된 형태나 snake_case를 사용할 수 있습니다. 최대 50개입니다. discriminators과 함께 사용할 수 있습니다.
array
명령어 데이터 접두사입니다. 각각 1~8개의 16진수 인코딩 바이트이며 선택적으로 0x 접두사를 사용할 수 있습니다. 최대 50개입니다. instructions과 함께 사용할 수 있습니다.
string
기본값:"address"
포함할 프로그램 명령어를 지정합니다. address은 계정이 address이거나, address이 소유한 토큰 계정이거나, 민트가 address인 토큰 계정인 명령어만 포함합니다. address이 프로그램인 경우에는 모든 명령어를 포함합니다. transaction은 트랜잭션에 포함된 해당 프로그램의 모든 명령어를 포함합니다.
  • address
  • transaction
array
일치시킬 민트입니다. 최대 20개이며 각 민트는 한 번만 지정할 수 있습니다. 트랜잭션의 사전 또는 사후 토큰 잔액 중 하나가 민트의 scope 내에서 해당 민트 중 하나에 속하면 일치합니다.
string
필수
토큰 민트 주소입니다. 네이티브 SOL 민트 So11111111111111111111111111111111111111111은 토큰 잔액 대신 lamport 변경을 기준으로 일치 여부를 판단하며 수수료는 포함하지 않습니다.
string
기본값:"address"
포함할 민트의 토큰 잔액을 지정합니다. address은 토큰 계정이 address이거나 해당 주소가 소유한 경우 또는 민트가 address인 잔액만 포함합니다. 네이티브 SOL의 경우 address의 lamport 변경만 포함합니다. transaction은 트랜잭션에 있는 해당 민트의 모든 잔액을 포함합니다. 네이티브 SOL의 경우 모든 계정의 lamport 변경을 포함합니다.
  • address
  • transaction
string
기본값:"transactions"
응답에서 일치 항목에 대해 반환할 내용을 지정합니다. transactions(data에 최대 limit개의 파싱된 일치 항목), signatures(data의 각 일치 항목에 signature, slot, transactionIndex 및 blockTime), 또는 count(data 없음, scan.matchedTransactions은 일치 항목 수)입니다. signatures과 count은 limit 및 rawTransaction을 무시합니다.
  • transactions
  • signatures
  • count
number
기본값:"100"
transactions 형식으로 반환할 최대 일치 항목 수입니다. 범위는 1~100입니다.
object
한 요청에서 스캔할 기록의 양을 제한합니다.
number
기본값:"10000"
이 요청에서 스캔할 최대 트랜잭션 수입니다. 범위는 1~10,000입니다.
string
이 서명 이전의 트랜잭션을 스캔합니다.
string
이 서명 이후의 트랜잭션을 스캔합니다.
string
이전 스캔에서 반환된 커서입니다. 형식은 slot:transactionIndex입니다.
string
기본값:"desc"
기록을 스캔하고 일치 항목을 반환하는 순서입니다.
  • asc
  • desc
string
기본값:"confirmed"
기록을 가져올 때 사용하는 커밋먼트 수준입니다. processed은 지원되지 않습니다.
  • confirmed
  • finalized
string
기본값:"succeeded"
포함할 실행 결과입니다. 일치 여부를 판단하기 전에 필터링하므로 제외된 트랜잭션은 예산에 포함되지 않습니다.
  • succeeded
  • failed
  • any
string
기본값:"none"
address 자체가 아니라 address이 소유한 토큰 계정만 참조하는 트랜잭션을 포함할지 지정합니다. none은 제외하고, balanceChanged은 토큰 계정 잔액을 변경하는 트랜잭션을 포함하며, all은 모두 포함합니다. 민트별로 지갑을 스캔할 때는 balanceChanged을 사용하세요.
  • none
  • balanceChanged
  • all
number
요청을 평가할 수 있는 최소 슬롯입니다.
string
기본값:"none"
성공한 각 결과에서 getTransaction 형식의 rawTransaction으로 반환되는 원본 Solana 트랜잭션의 인코딩입니다. transactions 형식에만 적용됩니다.
  • none
  • json
  • jsonParsed
  • base64
object
슬롯 비교 범위입니다. 각 경계값은 선택 사항입니다.
number
이 값보다 큰 값과 일치합니다.
number
이 값보다 크거나 같은 값과 일치합니다.
number
이 값보다 작은 값과 일치합니다.
number
이 값보다 작거나 같은 값과 일치합니다.
object
Unix 초 단위의 블록 시간 비교 범위입니다. 각 경계값은 선택 사항입니다.
number
이 값보다 큰 값과 일치합니다.
number
이 값보다 크거나 같은 값과 일치합니다.
number
이 값보다 작은 값과 일치합니다.
number
이 값보다 작거나 같은 값과 일치합니다.

인증

api-key
string
query
필수

본문

application/json

주소 기록에서 일치하는 트랜잭션을 스캔하기 위한 요청 본문입니다.

address
string
필수

기록을 스캔할 주소입니다.

match
object
필수

트랜잭션이 충족해야 하는 일치 조건입니다. programs, mints 또는 둘 다 설정하세요. 둘 다 설정하면 트랜잭션이 두 조건을 모두 충족해야 합니다.

returnShape
enum<string>
기본값:transactions

응답에 포함할 일치 항목 형식입니다. transactions는 data에 파싱된 일치 항목을 최대 limit개까지 포함하고, signatures는 data의 각 일치 항목에 signature, slot, transactionIndex, blockTime을 포함하며, count는 data 없이 scan.matchedTransactions에 일치 항목 수를 포함합니다. signatures와 count는 limit 및 rawTransaction을 무시합니다.

사용 가능한 옵션:
transactions,
signatures,
count
limit
integer
기본값:100

transactions 형식으로 반환할 최대 일치 항목 수입니다. 범위는 1~100입니다.

필수 범위: 1 <= x <= 100
budget
object

한 요청에서 스캔할 기록의 양에 대한 제한입니다.

beforeSignature
string

이 서명 이전의 트랜잭션을 스캔합니다.

afterSignature
string

이 서명 이후의 트랜잭션을 스캔합니다.

paginationToken
string

이전 스캔에서 반환된 커서입니다. 형식은 slot:transactionIndex입니다.

sortOrder
enum<string>
기본값:desc

기록을 스캔하고 일치 항목을 반환하는 순서입니다.

사용 가능한 옵션:
asc,
desc
commitment
enum<string>
기본값:confirmed

기록을 가져올 때 사용하는 커밋먼트 수준입니다. processed는 지원되지 않습니다.

사용 가능한 옵션:
confirmed,
finalized
status
enum<string>
기본값:succeeded

포함할 실행 결과입니다. 일치 여부를 확인하기 전에 필터링하므로 제외된 트랜잭션은 예산에 포함되지 않습니다.

사용 가능한 옵션:
succeeded,
failed,
any
tokenAccounts
enum<string>
기본값:none

address 자체가 아니라 address가 소유한 토큰 계정만 참조하는 트랜잭션을 포함할지 여부입니다. none은 해당 트랜잭션을 제외하고, balanceChanged는 토큰 계정 잔액을 변경하는 트랜잭션을 포함하며, all은 모두 포함합니다. 민트별로 지갑을 스캔할 때는 balanceChanged를 사용하세요.

사용 가능한 옵션:
none,
balanceChanged,
all
minContextSlot
integer

요청을 평가할 수 있는 최소 슬롯입니다.

rawTransaction
enum<string>
기본값:none

성공한 각 결과에서 rawTransaction으로 반환되는 원본 Solana 트랜잭션의 인코딩입니다. getTransaction 형식을 사용합니다. transactions 형식에만 적용됩니다.

사용 가능한 옵션:
none,
json,
jsonParsed,
base64
slot
object

슬롯 비교 경계입니다. 각 경계는 선택 사항입니다.

time
object

Unix 초 단위의 블록 시간 비교 경계입니다. 각 경계는 선택 사항입니다.

응답

요청한 returnShape 형식의 일치 항목과 스캔 요약입니다. 부분 결과도 200으로 반환됩니다. paginationToken이 반환되는 동안에는 이를 사용하여 계속 진행하세요.

요청한 returnShape 형식의 일치 항목과 스캔 요약입니다.

data
object

Per-signature parser result.

paginationToken
string

다음 스캔을 계속할 위치를 나타내는 커서입니다. 스캔이 기록 또는 범위의 끝에 도달하면 이 필드가 없습니다.

scan
object

스캔이 어디까지 진행되었고 중단된 이유가 무엇인지 나타냅니다.