Skip to main content

Service definition

Messages

ParseRequest

The main request for parsing transactions.
Fields:

Chain enum

Supported blockchain networks:

ChainMetadata

Chain-specific metadata for enhanced parsing:

ParseResponse

The parsed transaction response:

Signature

Cryptographic signature for attestation:

Response structure

The parsed_payload field contains a JSON string with the following structure:
See Field Types for details on the available field types.

Usage examples

Basic transaction parsing

With contract ABI

Solana with Anchor IDL

Solana with a max fee

Every Solana payload carries a top-level fee cap row right after the header rows: the caller’s max_fee_lamports when the request sets one, labelled “Max Fee”, otherwise the parser’s default cap of 0.1 SOL (100000000 lamports), labelled “Max Fee (default)”. The parser rejects the request when the transaction commits to more than the cap in force: 5000 lamports per signature, counting the ones precompile instructions verify, plus the compute budget’s priority fee. That fee is the unit price times the requested unit limit, or, with no limit, times the runtime’s default limit for the message (3000 units for each builtin instruction, 200000 for any other, at most 1400000). Compute budget requests are decoded as the runtime decodes them, so trailing bytes are ignored. A request the runtime rejects is rejected here too: one that does not decode, a repeated price, limit, heap frame, or loaded accounts data size, a heap frame size out of range, a zero loaded accounts data size, or the unused variant. With include_intermediate_output, the cap in force is also the trailing max_fee_lamports field of the Solana intermediate output. That output is at schema version 5, which also adds a native_instruction_decoder tag right after the version. A consumer that rewrites the compute budget instructions after parsing, for example to re-price at signing time, changes the fee the cap bounds and must re-check the final fee against max_fee_lamports itself.

Response format

Successful response

Error response

Errors follow the standard gRPC status codes:
Common error codes:

Health check API

The service also implements the standard gRPC health check:
Check service health:
Response:

Client libraries

Go

Python

JavaScript/TypeScript

Rate limits

The parser service enforces the following limits:
  • Request size: Max 1MB per transaction
  • Timeout: 30 seconds per request
  • Concurrent requests: 100 per client

Security

TLS configuration

In production, always use TLS:

Authentication

The service supports mTLS for authentication: