getTransaction

POSTTransactionsAll plans

Returns full details for a single confirmed transaction by signature.

Try itSends a real request from your browser to the selected region.
POST
/

getTransaction looks up one transaction by signature and returns everything recorded about it: the compiled message, account keys, before/after balances, log messages, compute units consumed, and any error.

Mainnet carries three transaction formats — legacy, version 0 (Address Lookup Tables) and version 1 — decoded together by maxSupportedTransactionVersion: 1; omitting it fails on anything newer than legacy. See Transaction v1.

Plans & rate limitsAll plans
Free2/s
Operator5/s
Blade Runner50/s
Nexus100/s

Parameters

params is a JSON array, with values in this order: signature, config.

1signaturestringrequired

Transaction signature to look up, as a base-58 encoded string.

2configobject

Optional configuration.

Show propertiesProperties
commitmentstringdefault: "finalized"

Bank state to read the transaction from. processed is not accepted here.

Allowed values:confirmedfinalized
encodingstringdefault: "json"

Encoding for the transaction field. jsonParsed decodes known program instructions into structured objects; unrecognized programs fall back to raw account/data form even when jsonParsed is requested.

Allowed values:jsonjsonParsedbase58base64
maxSupportedTransactionVersioninteger

Highest transaction version the caller can decode, as a ceiling rather than a filter: 1 returns legacy, version 0 and version 1 transactions alike. The value must be the JSON integer 1, not the string "1" (-32602); omitting it returns legacy only and fails with -32015 on a versioned signature. Raising it before the client can decode the format just moves the failure elsewhere.

Minimum: 0Maximum: 1
Example:1

Result

resultobject | null

The transaction record, or null if the signature isn't known to this node at the requested commitment.

Show one ofOne of
Option 1object
Show propertiesProperties
slotinteger

Slot this transaction was processed in.

blockTimeinteger | null

Estimated production time of the containing block, as Unix seconds.

transactionIndexinteger | null

Index of this transaction within its block.

versionany

"legacy", or the integer version number 0 or 1.

transactionobject
Show propertiesProperties
signaturesstring[]

All signatures on the transaction, fee payer's first.

messageobject
Show propertiesProperties
accountKeysarray

Every account the transaction reads or writes, including ones resolved via address lookup tables.

addressTableLookupsarray

Address Lookup Table references used to extend the account list. Version 0 only: legacy and version 1 transactions cannot use lookup tables, so the field is absent.

instructionsarray

Top-level instructions, in execution order.

recentBlockhashstring
transactionConfigobject

Present on version 1 transactions only: the fee and resource requests encoded in the message itself, in place of ComputeBudget instructions. Every field is present; null means the sender left it unset. See Transaction v1.

Show propertiesProperties
priorityFeeinteger | null

Priority fee for the whole transaction, as a total in lamports — not micro-lamports per compute unit, and not a price. null means no priority fee was requested (treated as 0).

computeUnitLimitinteger | null

Requested compute unit limit, in compute units. null means unset, which is treated as 0 — not as the legacy per-instruction default.

loadedAccountsDataSizeLimitinteger | null

Requested cap on loaded account data, in bytes. null means unset, which is treated as 0 — not as the 64 MiB default a legacy or version 0 transaction gets.

heapSizeinteger | null

Requested heap size, in bytes: a multiple of 1 KiB between 32 KiB and 256 KiB. null means unset, which is the 32 KiB minimum.

metaobject
Show propertiesProperties
errobject | null

Null on success; a TransactionError variant object on failure.

feeinteger

Total fee charged, in lamports.

computeUnitsConsumedinteger

Compute units actually consumed while executing the transaction.

costUnitsinteger

What this transaction charged against the block's cost limits, usually larger than computeUnitsConsumed since the cost model adds signatures, write locks, size and loaded account data on top of execution. It measures block space, while computeUnitsConsumed measures the compute budget; absent when the node recorded no cost figure.

preBalancesinteger[]

Lamport balance of every account in accountKeys, before the transaction.

postBalancesinteger[]

Lamport balance of every account in accountKeys, after the transaction.

preTokenBalancesarray

Token balances for any SPL token accounts referenced, before the transaction.

postTokenBalancesarray

Token balances for any SPL token accounts referenced, after the transaction.

logMessagesstring[]

Program log output, in emission order.

innerInstructionsarray

Instructions invoked via cross-program invocation (CPI), grouped by the top-level instruction index that triggered them.

rewardsarray

Any rewards paid out as a side effect of this transaction (rare outside vote/stake-related transactions).

loadedAddressesobject

Writable/readonly account addresses resolved via address lookup tables. Version 0 only: legacy and version 1 transactions carry their whole account list in the message.

Option 2null

Notes

  • The example is trimmed: the real transaction has 63 account keys (mostly resolved via 6 address lookup tables), 5 top-level instructions and 10 pre/post token balance entries, reflected by truncated: true.
  • maxSupportedTransactionVersion: 1, unless there is a specific reason to omit it, covers both version 0 and version 1 transactions, a large share of mainnet traffic; without it, this call fails on either.
  • The example is a version 0 transaction fetched with a ceiling of 1. A version 1 transaction instead carries a transactionConfig object in transaction.message with no address lookup tables, so code that scans instructions for ComputeBudget111111111111111111111111111111 to read a priority fee silently reports zero. See Transaction v1.
  • encoding: "base58" works with maxSupportedTransactionVersion: 1, the same as the other encodings.
  • constant-k keeps a rolling window of ledger history, not a full archive; a signature older than the retention window returns null even though it is valid. minimumLedgerSlot or getFirstAvailableBlock, compared against the transaction's slot, confirms whether it is in range.