권한 부여
메시지
gRPC API는 여러 구독 유형을 지원하며 단일 요청으로 결합할 수 있습니다.object
계정 업데이트를 구독합니다. 지정된 계정이 수정되면 데이터를 반환합니다.
숨기기 속성
숨기기 속성
array
모니터링할 계정 pubkey 배열입니다.
array
모니터링할 소유자 pubkey 배열입니다 (이 프로그램이 소유한 모든 계정).
object
적용할 선택적 필터입니다.
표시 필터 옵션
표시 필터 옵션
object
integer
바이트 단위의 정확한 계정 데이터 크기로 필터링합니다.
boolean
토큰 계정만 필터링합니다.
boolean
만약
true, 거래로 인해 발생한 업데이트만 포함합니다. 만약 false, 거래로 인해 발생하지 않은 업데이트만 포함합니다. 만약 undefined, 모든 업데이트를 포함합니다.object
object
거래 업데이트를 구독합니다.
숨기기 속성
숨기기 속성
boolean
투표 거래를 포함합니다.
boolean
실패한 거래를 포함합니다.
string
특정 거래 서명을 모니터링합니다.
array
이러한 계정에 영향을 미치는 거래만 포함합니다.
array
이러한 계정에 영향을 미치는 거래를 제외합니다.
array
거래는 반드시 이 모든 계정에 영향을 미쳐야 합니다.
enum
선택적 ATA(Associated Token Account) 확장 (필드 태그 30,
TokenAccountExpansionControlFlag). 설정 시, account_include 지갑은 SPL 토큰 잔액을 소유하는 거래도 매칭됩니다 — 예를 들어 지갑의 토큰 계정을 만지는 인바운드 토큰 전송. 두 가지 변형:ALL(0) — 지갑이 소유한 토큰 잔액을 참조하는 모든 거래와 일치, 심지어 변경되지 않아도. 높은 볼륨.BALANCE_CHANGED(1) — 지갑이 소유한 토큰 잔액이 변경된 (또는 토큰 계정이 닫힌) 거래와 일치합니다.
None) — “off” 열거값이 없습니다. 범위를 초과한 정수는 구성 빌드에서 거부됩니다: Invalid token_accounts value, expected ALL (0) or BALANCE_CHANGED (1).ALL은 0 값입니다. “기본값/꺼짐”을 기대하고 열거형을 0으로 설정한 클라이언트는 가장 광범위하고 볼륨이 가장 큰 모드인 ALL을 사용하게 됩니다. “확장 없음”을 나타내는 유일한 방법은 필드를 완전히 생략하는 것입니다.boolean
기본값:"false"
트랜잭션의 토큰 잔액 변경 전후에 있는 민트(필드 태그 32)를 대상으로
account_include, account_exclude, account_required도 일치시킵니다. account_include에 민트를 넣으면 계정 키에서 민트를 참조하지 않는 일반 SPL 전송을 포함하여 해당 토큰과 관련된 모든 트랜잭션을 수신합니다. 토큰 잔액이 없는 트랜잭션에는 키 전용 일치 방식이 적용됩니다. match_mints만으로는 스트림이 제한되지 않습니다. 하나 이상의 목록에 키 또는 민트가 있어야 합니다. token_accounts과 함께 사용할 수 있습니다. 과거 데이터를 재생할 때도 적용됩니다. 토큰 민트 필터링을 참조하세요.object
object
object
object
enum
integer
업데이트 수신을 시작할 슬롯입니다. 이 값보다 이전 슬롯의 업데이트는
제외됩니다.
{
"slots": {
"slots": {}
},
"accounts": {
"user-defined-label": {
"account": [
"DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu",
"5U3bH5b6XtG99aVCE9ycvDgBKQx3fVT8WwTNbMToFuEr"
],
"owner": [
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
],
"filter": {
"memcmp": {
"offset": 0,
"bytes": "0102030405"
},
"datasize": 165,
"token_account_state": true,
"lamports": {
"gt": 100000000
}
},
"nonempty_txn_signature": true
}
},
"transactions": {},
"blocks": {},
"blocks_meta": {},
"accounts_data_slice": [],
"commitment": 1
}
{
"slots": {
"incoming_slots": {}
},
"commitment": 1
}
{
"transactions": {
"vote": false,
"failed": true,
"signature": "4RPMxKBhCBubFmZ1r9BC52ztjG3qBTW9Gp1PXfufUSATQaLKTW3Dj6vQBYyVrhfjgJ4PjZLzwYs4Z92KDCPw8Qym",
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"account_exclude": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],
"account_required": ["11111111111111111111111111111111"]
},
"commitment": 2
}
{
"transactions": {
"wallet": {
"vote": false,
"failed": false,
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"account_exclude": [],
"account_required": [],
"token_accounts": 1
}
},
"commitment": 1
}
{
"transactions": {
"usdc": {
"vote": false,
"failed": false,
"account_include": ["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"],
"account_exclude": [],
"account_required": [],
"match_mints": true
}
},
"commitment": 1
}
{
"transactions_status": {
"vote": false,
"failed": true,
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"account_exclude": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],
"account_required": ["11111111111111111111111111111111"]
},
"commitment": 2
}
{
"blocks": {
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"include_transactions": 1,
"include_accounts": 1,
"include_entries": 0
},
"commitment": 2
}
{
"blocks_meta": {},
"commitment": 2,
"from_slot": 139000000
}
{
"entry": {},
"commitment": 1
}
{
"accounts": {
"account": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"]
},
"accounts_data_slice": [
{
"offset": 0,
"length": 64
},
{
"offset": 128,
"length": 32
}
],
"commitment": 2
}
{
"ping": {
"id": 1
}
}
{
"accounts": {
"account": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"nonempty_txn_signature": true
},
"slots": {
"filter_by_commitment": 1,
"interslot_updates": 1
},
"commitment": 2,
"from_slot": 139000000,
"ping": {
"id": 123
}
}
커밋먼트 수준
모든 구독은 다음 커밋먼트 수준을 지원합니다.PROCESSED: 현재 노드에서 처리됨(0)CONFIRMED: 클러스터의 압도적 다수에 의해 확인됨(1)FINALIZED: 클러스터에서 최종 확정됨(2)
응답 구조
구독 응답에는 다음 항목이 포함됩니다.filters: 이 업데이트와 일치한 필터 이름- 다음 업데이트 유형 중 하나:
account: 계정 데이터, 소유자, lamport, 실행 가능 상태 등slot: 슬롯 정보 및 상태 업데이트transaction: 전체 트랜잭션 세부 정보, 서명 및 메타데이터transaction_status: 트랜잭션 실행 상태(성공/오류)block: 트랜잭션, 계정, 보상 등이 포함된 전체 블록 데이터block_meta: 전체 트랜잭션 세부 정보가 없는 경량 블록 메타데이터entry: 블록 내 엔트리 세부 정보ping/pong: 연결 상태 확인 메시지
created_at: 업데이트가 생성된 타임스탬프
{
"filters": ["accounts"],
"account": {
"account": {
"pubkey": "BASE58_ENCODED_PUBKEY",
"lamports": 12345678,
"owner": "BASE58_ENCODED_OWNER",
"executable": false,
"rent_epoch": 361,
"data": "BASE64_ENCODED_DATA",
"write_version": 123,
"txn_signature": "BASE58_ENCODED_SIGNATURE"
},
"slot": 189554321,
"is_startup": false
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["slots"],
"slot": {
"slot": 189554321,
"parent": 189554320,
"status": 2,
"dead_error": null
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["transactions"],
"transaction": {
"transaction": {
"signature": "BASE58_ENCODED_SIGNATURE",
"is_vote": false,
"transaction": {
"signatures": ["BASE58_ENCODED_SIGNATURE"],
"message": {
"header": {
"num_required_signatures": 1,
"num_readonly_signed_accounts": 0,
"num_readonly_unsigned_accounts": 1
},
"account_keys": ["BASE58_ENCODED_PUBKEY1", "BASE58_ENCODED_PUBKEY2"],
"recent_blockhash": "BASE58_ENCODED_BLOCKHASH",
"instructions": [
{
"program_id_index": 1,
"accounts": [0],
"data": "BASE64_ENCODED_INSTRUCTION_DATA"
}
]
}
},
"meta": {
"err": null,
"fee": 5000,
"pre_balances": [10000000, 1],
"post_balances": [9995000, 1],
"pre_token_balances": [],
"post_token_balances": [],
"log_messages": ["Program log: Instruction executed"],
"rewards": []
},
"index": 2
},
"slot": 189554321
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["blocks_meta"],
"block_meta": {
"slot": 189554321,
"blockhash": "BASE58_ENCODED_BLOCKHASH",
"rewards": [
{
"pubkey": "BASE58_ENCODED_PUBKEY",
"lamports": 1785000,
"post_balance": 48589432109,
"reward_type": 0,
"commission": 10
}
],
"block_time": 1682684096,
"block_height": 185432109,
"parent_slot": 189554320,
"parent_blockhash": "BASE58_ENCODED_PARENT_BLOCKHASH",
"executed_transaction_count": 2576,
"entries_count": 16
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["entry"],
"entry": {
"slot": 189554321,
"index": 5,
"num_hashes": 8765432,
"hash": "BASE58_ENCODED_HASH",
"executed_transaction_count": 128,
"starting_transaction_index": 1024
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": [],
"pong": {
"id": 1
},
"created_at": "2023-04-28T12:34:56.789Z"
}