Skip to main content
Preconfirmations에 대한 구독을 시작하세요 — 거래는 항목에 수집되어 조각으로 변환되기 전에 전달됩니다. 이것은 Helius가 제공하는 가장 낮은 대기 시간의 거래 신호입니다. 한 번의 구독으로 거래를 실행할 때 즉시 실행 상태를 포함하여 전송되는 Helius 사전 확인과 검증자가 이를 실행하기로 결정할 때 전송되는 BAM 사전 확인을 모두 스트리밍합니다. Helius 사전 확인만 받으려면 includeBam: false를 설정하세요.

엔드포인트

preconfSubscribe는 Helius Gatekeeper 엔드포인트에서 제공됩니다:
  • wss://beta.helius-rpc.com/?api-key=<API_KEY>
beta 호스트 이름은 Preconfirmations의 성숙도가 아닌 Gatekeeper 출시를 나타냅니다 — 트래픽이 Gatekeeper로 이동됨에 따라 표준 엔드포인트가 될 것입니다.
스트림은 연속적이지 않습니다. 커버리지는 Helius에 전달하거나 BAM을 실행 중인 네트워크 스테이크의 비율에 따라 확장되므로 메시지가 없는 슬롯을 예상하십시오 — 이러한 빈틈을 우아하게 처리하십시오. 커버리지를 참조하십시오.

권한

string
필수
api-key 쿼리 매개변수로 전달되는 Helius API 키입니다. 프로페셔널 플랜 이상이 필요합니다.

본문

array
선택 사항입니다. params를 생략하면 Helius와 BAM의 모든 거래를 받을 수 있습니다. 스트림을 좁히려면 첫 번째 요소로 필터 객체를 전달하세요 — 필터링은 서버 측에서 이루어지므로 원하고 필요한 거래에만 비용이 청구됩니다.
유효하지 않은 계정 값이나 인식할 수 없는 지역 코드는 JSON-RPC 오류 -32602 (유효하지 않은 매개변수)를 반환합니다. 계정 필터는 트랜잭션의 정적 계정 키 이상과 일치합니다 — Helius는 v0 주소 조회 테이블을 서버 측에서 해석하므로 accountInclude, accountExclude, accountRequired도 ALT를 통해 로드하는 계정과 일치합니다.

지역 코드

Helius 사전 확인의 경우 지역은 Helius가 트랜잭션을 수집한 곳입니다. BAM 사전 확인의 경우 사전 확인을 발행한 지역 BAM 엔드포인트이며 Helius가 이를 수집한 곳이 아닙니다. BAM의 싱가포르 및 댈러스 엔드포인트는 sgpdal에 매핑됩니다.

응답

integer
구독 ID (구독 해지 필요)

알림

JSON 승인 후, 알림은 바이너리 WebSocket 프레임으로 전달됩니다 (JSON이 아님). Helius와 BAM 사전 확인은 동일한 레이아웃을 공유합니다. 각 프레임은 단일 거래를 전달하는 압축된 바이트 레이아웃입니다: 페이로드에는 소스 필드가 없습니다. Helius Preconfirmations도 동일한 값을 전달할 수 있으므로 tx_index = 0에서 BAM 소스라고 추론하지 마세요.
항상 version 바이트를 먼저 읽고 확인하세요. 현재 값은 1입니다. Helius가 페이로드 형식을 업데이트해야 하는 경우 버전이 증가합니다. 스키마가 변경되어도 디코더가 계속 작동하도록 버전에 따라 분기하세요.
Preconfirmation은 조기 신호일 뿐 보장된 결과가 아닙니다. 트랜잭션은 아직 온체인에 반영되지 않았으며 실패하거나 삭제될 수 있습니다. 최종 결과로 간주하기 전에 일반적인 커밋먼트 확인을 통해 반영 여부를 확인하세요.

트랜잭션 디코딩

트랜잭션 바이트는 검증자가 직렬화한 그대로, 해당 트랜잭션 버전의 표준 와이어 인코딩으로 전달됩니다. 레거시 및 v0 트랜잭션은 bincode에서 생성하는 서명 우선 레이아웃을 사용합니다. 트랜잭션 v1(SIMD-0385)은 끝에 서명이 배치된 메시지 우선 레이아웃을 사용하므로 bincode는 v1 페이로드에서 실패합니다. 모든 버전을 처리하는 디코더를 사용하세요. Rust에서는 agave-transaction-view가 레거시, v0 및 v1 트랜잭션을 인플레이스 방식으로 파싱하므로 권장됩니다. 최신 Solana SDK VersionedTransaction와 함께 wincode를 사용해도 됩니다. JavaScript에서는 라이브러리 버전이 트랜잭션 v1을 지원하는지 확인하세요. Rust 예제는 가이드를 참조하세요.

중복 알림

Helius 및 BAM Preconfirmations는 소스별로 중복 제거되며, 여러 소스에 걸쳐 중복 제거되지는 않습니다. 일부 트랜잭션은 두 소스를 통해 Helius에 도달하므로 동일한 서명을 두 번 수신할 수 있으며, 두 사본에서 서로 다른 슬롯을 보고할 수도 있습니다. 클라이언트에서 서명을 기준으로 중복을 제거하고 트랜잭션으로 트리거되는 작업을 멱등성 있게 만드세요. 가이드를 참조하세요.

요금

Preconfirmations를 사용하려면 Professional 플랜 이상이 필요하며, 스트리밍된 트랜잭션당 메시지 하나에 해당하는 메시지당 10크레딧이 부과됩니다. 자세한 내용은 크레딧을 참조하세요. 요금은 고유 서명당이 아니라 메시지당 부과됩니다. Helius와 BAM 모두에서 전송된 트랜잭션은 두 번 계산됩니다. Helius Preconfirmations만 수신하려면 includeBam: false를 설정하세요.

관련 항목

Preconfirmations Overview

Preconfirmations의 정의와 검증자 파이프라인에서의 위치를 설명합니다.

preconfUnsubscribe

ID로 구독을 중지합니다.