> For the complete documentation index, see [llms.txt](https://docs.triton.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.triton.one/solana/rpc-methods/historical-data/gettransaction.md).

# getTransaction

Returns a confirmed transaction by signature, or null if it is not found at the requested commitment.

## Request

{% tabs %}
{% tab title="cURL" %}

```bash
curl "https://<your-endpoint>.mainnet.rpcpool.com/<your-token>" -s -X POST \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransaction",
  "params": [
    "5FGNrMimtG7KdYoHTApVPKCjD4bFCfMtPm3q8DqocyaEyFsFUtcTVH6cXWhn29e54yMs2tkDCo3H6h7p5L14rVxA",
    {
      "commitment": "confirmed",
      "maxSupportedTransactionVersion": 1,
      "encoding": "json"
    }
  ]
}'
```

{% endtab %}

{% tab title="Kit" %}

```typescript
import { createSolanaRpc, type Signature } from "@solana/kit";

const rpc_url = "https://<your-endpoint>.mainnet.rpcpool.com/<your-token>";
const rpc = createSolanaRpc(rpc_url);

let signature =
  "5FGNrMimtG7KdYoHTApVPKCjD4bFCfMtPm3q8DqocyaEyFsFUtcTVH6cXWhn29e54yMs2tkDCo3H6h7p5L14rVxA";

let transaction = await rpc
  .getTransaction(signature as Signature, { encoding: "json", maxSupportedTransactionVersion: 1 })
  .send();

console.log(transaction);
```

{% endtab %}

{% tab title="web3.js" %}

```typescript
import {
  Connection,
  type GetVersionedTransactionConfig
} from "@solana/web3.js";

const connection = new Connection("https://<your-endpoint>.mainnet.rpcpool.com/<your-token>", "confirmed");

let signature =
  "5FGNrMimtG7KdYoHTApVPKCjD4bFCfMtPm3q8DqocyaEyFsFUtcTVH6cXWhn29e54yMs2tkDCo3H6h7p5L14rVxA";

let config: GetVersionedTransactionConfig = {
  commitment: "finalized",
  maxSupportedTransactionVersion: 1
};

let transaction = await connection.getTransaction(signature, config);

console.log(transaction);
```

{% endtab %}

{% tab title="Rust" %}

```rust
// Cargo.toml: anyhow = "1", solana-client = "~4.4", solana-commitment-config = "3",
// solana-sdk = "5", solana-transaction-status-client-types = "4",
// tokio = { version = "1", features = ["full"] }. solana-client 4.4 takes solana-sdk 5.x types.
// Requires Rust 1.98.1 or newer (solana-client 4.4).
use anyhow::Result;
use solana_client::{nonblocking::rpc_client::RpcClient, rpc_config::RpcTransactionConfig};
use solana_commitment_config::CommitmentConfig;
use solana_sdk::signature::Signature;
use solana_transaction_status_client_types::UiTransactionEncoding;
use std::str::FromStr;

#[tokio::main]
async fn main() -> Result<()> {
    let client = RpcClient::new_with_commitment(
        String::from("https://<your-endpoint>.mainnet.rpcpool.com/<your-token>"),
        CommitmentConfig::confirmed(),
    );

    let tx_sig = Signature::from_str(
        "5FGNrMimtG7KdYoHTApVPKCjD4bFCfMtPm3q8DqocyaEyFsFUtcTVH6cXWhn29e54yMs2tkDCo3H6h7p5L14rVxA",
    )?;

    let config = RpcTransactionConfig {
        commitment: CommitmentConfig::finalized().into(),
        encoding: UiTransactionEncoding::Json.into(),
        max_supported_transaction_version: Some(1),
        ..Default::default()
    };

    let transaction = client.get_transaction_with_config(&tx_sig, config).await?;

    println!("{:#?}", transaction);

    Ok(())
}
```

{% endtab %}
{% endtabs %}

## Parameters

**`signature`** · string · required

Transaction signature, as base-58 encoded string

**`config`** · string | object · optional

Either a configuration object or, for backwards compatibility, a bare encoding string. Prefer the object form.

{% hint style="info" %}
Passing a bare encoding string as the second positional parameter is deprecated. Use the configuration object instead.
{% endhint %}

When this parameter is an object, it may contain the following fields:

**`commitment`** · string · default `finalized`

Values: `confirmed`, `finalized`

Solana RPC uses the following commitment levels:

| Value       | Description                                                                                                                                                                        |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `processed` | Return data from the highest slot this node has processed on the fork it currently considers best. This is the newest view, but it can still change if the cluster switches forks. |
| `confirmed` | Return data from the highest slot the cluster has finalized. On Alpenglow, `confirmed` and `finalized` are the same level.                                                         |
| `finalized` | Return data from the highest slot that the cluster has finalized. On Alpenglow there are no vote towers or lockouts: a slot is finalized by certificates of aggregated votes.      |

Standard Solana RPC doesn't accept `processed` for this method. Triton's shared mainnet endpoints also accept it, served from Superbank's in-memory head cache; dedicated nodes may differ.

**`maxSupportedTransactionVersion`** · number

Values: `0`, `1`

Set this to the highest transaction version your client can parse. Transaction v1 has been active on mainnet since slot 447,120,000; set `1` to fetch any transaction, whether legacy, v0 or v1. `@solana/web3.js` parses v1 transactions from version 1.99.0; earlier releases fail on them. Current `@solana/kit`, Rust `solana-client` 4.3 and later, and `solana-py` releases parse them too. `solana-client` 4.0.0 returns v1 transactions but can't decode their `base64`/`base58` payload, and drops `message.transactionConfig` from `json` responses.

This parameter determines the maximum transaction version that will be returned in the response. If you request a transaction with a higher version than this value, the request fails with error `-32015`. If you omit this parameter, only legacy transactions will be returned; any versioned transaction will result in that error.

Agave 4.3 RPC nodes reject `base58` and `binary` encoding when this value is `1` or higher, with error `-32602`. Use `base64`, `json`, or `jsonParsed` instead.

**`encoding`** · string · default `json`

Values: `binary`, `base58`, `base64`, `json`, `jsonParsed`

Encoding for the returned transaction.

| Encoding     | Transaction format | Notes                                                                                                                                                              |
| ------------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `json`       | JSON object        | Default. Returns parsed transaction with `message` and `signatures`                                                                                                |
| `jsonParsed` | JSON object        | Uses program-specific parsers for `transaction.message.instructions`. Falls back to standard JSON fields (`accounts`, `data`, `programIdIndex`) if no parser found |
| `base64`     | `[data, "base64"]` | Base64 encoded binary transaction                                                                                                                                  |
| `base58`     | `[data, "base58"]` | Slow                                                                                                                                                               |
| `binary`     | `[data, "base58"]` | ⚠️ Deprecated. Legacy alias for `base58`, retained for backwards compatibility                                                                                     |

For `jsonParsed`, this page documents the stable outer shapes returned for parsed account keys and for parsed or partially decoded instructions. The nested `parsed` payload remains program-specific.

If you use the deprecated shorthand form for `config`, pass one of these encoding strings directly.

For the shared JSON structures used by `json` and `jsonParsed` responses, see [Transactions](https://solana.com/docs/rpc/json-structures#transactions), [Parsed Accounts](https://solana.com/docs/rpc/json-structures#parsed-accounts), [Inner Instructions](https://solana.com/docs/rpc/json-structures#inner-instructions), and [Address Table Lookups](https://solana.com/docs/rpc/json-structures#address-table-lookups).

**`slot`** · u64 · optional

Triton extension, passed in the `config` object. The slot that contains the transaction. Superbank reads that slot directly instead of searching the ledger for the signature. The response is `null` if the signature is not in that slot. A value that is not an unsigned integer fails with `-32602`; `null` is treated as omitted. Available on shared mainnet endpoints; dedicated nodes may differ.

## Response

```json
{
  "jsonrpc": "2.0",
  "result": {
    "blockTime": 1791469889,
    "meta": {
      "computeUnitsConsumed": 1215,
      "costUnits": 7024,
      "err": null,
      "fee": 5384,
      "innerInstructions": [],
      "loadedAddresses": {
        "readonly": [],
        "writable": []
      },
      "logMessages": [
        "Program 11111111111111111111111111111111 invoke [1]",
        "Program 11111111111111111111111111111111 success",
        "Program B72M6nyCLFgWiJtAN4naUTminMiTmyGcEqQHXwVeRdht invoke [1]",
        "Program B72M6nyCLFgWiJtAN4naUTminMiTmyGcEqQHXwVeRdht consumed 1065 of 1209 compute units",
        "Program B72M6nyCLFgWiJtAN4naUTminMiTmyGcEqQHXwVeRdht success"
      ],
      "postBalances": [
        4001083693,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        1447680,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        1,
        1169280,
        42706560,
        1141440
      ],
      "postTokenBalances": [],
      "preBalances": [
        4001089077,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        1447680,
        5526240,
        5526240,
        5526240,
        5526240,
        5526240,
        1,
        1169280,
        42706560,
        1141440
      ],
      "preTokenBalances": [],
      "rewards": [],
      "status": {
        "Ok": null
      }
    },
    "slot": 454572269,
    "transaction": {
      "message": {
        "accountKeys": [
          "HCarRs1TRYxDJiWaW2i1du9M5jPRRfDUhtA7MxVXc3fT",
          "XFWddpA74utWti2HR1Xh2mFThW88dD8tYd4Rh3yfZLC",
          "2aj3xRaEjXLJqTLSUMBsiYWRDqmeuC4Am2CAsx8oai8X",
          "5jFvgTuQYYyeqazha1RTx3WF2ku3GAi7oLLd9vTByTsN",
          "5kJtLvk873hfk47PHiTg9FErbZWGy3DKvENrtDyMWPZb",
          "6DNYco7E7Ri5wfoduPLo2ATbNo6rTagX6h1vHYHfS3nb",
          "7F83hQZ1McwansoZksUSkbwQornWDxzMht5gVmU9RfXU",
          "7iPvXtv3qJ6ZVJhB8nKh62xvgXqmbsJNzCDCCA7uitQ9",
          "7k7iPmeSYcvHf2qEg7c4CsDQxteHrsdKCLVaipQArU6k",
          "859koQwZh1twQBSZAZgerL73PBw91TNyxCeegG76koAH",
          "9PKHZircothN76Bz5qk9F1BxAniuZmLjZGVUw247BBDu",
          "9y1RP2Cqs6STvPsmyWiLaXqzAoKj86hdtsTnc9QDdiHZ",
          "CkdFr1eNPuCf1BkHrZKFizCCm9rLvBFhsRrfoMy39iER",
          "F7mQKBd1r7gj78KdqFucxbvfE83nX1EjDco9YcBCDEFv",
          "FTKzaEaMzZbmbYHS15rVaxswV8BTH6u8bz4kng7wh7nu",
          "GWqUcqoZtjq8K6H48YvcHJMEGq8CahNDGMuz3iqU4ESA",
          "11111111111111111111111111111111",
          "SysvarC1ock11111111111111111111111111111111",
          "SysvarRecentB1ockHashes11111111111111111111",
          "B72M6nyCLFgWiJtAN4naUTminMiTmyGcEqQHXwVeRdht"
        ],
        "header": {
          "numReadonlySignedAccounts": 0,
          "numReadonlyUnsignedAccounts": 4,
          "numRequiredSignatures": 1
        },
        "instructions": [
          {
            "accounts": [
              10,
              18,
              0
            ],
            "data": "6vx8P",
            "programIdIndex": 16,
            "stackHeight": 1
          },
          {
            "accounts": [
              0,
              17,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              11,
              12,
              13,
              14,
              15,
              1
            ],
            "data": "mVn3QhEWpcSgpvUfHDvedXMkHSKGjL87maH1JWKoEkCnmpZgwqU3pxVtawWmWs7Sd94VijFYjLzfipTwh4b4NobcKyrhNqtui1v1eChgKim26qSsKsBcBbjskx8a9Z4ztRH7jamnAXXTKoUEfxPtySDcsyv9oWqNjnnpbjJuteFrWZCKZKG6z2pvwEStSH7NvSgYM9Ki7srgC9SSD8j1JNnS4eMRKMRuDRujzNvPYgVts6Q8fYN3ShHXHnTrvV9jcKEVR6h6EPpf2nZ2XiTtq7oSJhJ7yqWptFK5btPzz945ZKYNYgGpkLWdGztb5agn9vYKikG6m59dneBPqfrrVhRJtkniWnZsEqiv1UxfvKP9wAbc7CJxdRCSv9MnyHgT9RH7vGHyL96CqNwkMnCPUefrstSERtReXQKgrAnWmXsFt883A1RoDvH8b1wqxnupiyXjQrHA45kfsQCivqtnLBRQegqYz5V41ggHoa9pBocbveD27QVty4T2NoMrpaCqa9L9JWC6NGL4noQ9gaxQtn4LfMYmETXgdAMQqVLu5VHnf6FUq2VuWD2oLzx5PdfJUNssi4EGkgjHNNZx6No1s8F3tnLSNAPc6cWHnDXT5kogXQirL36tKeoPA3QvZc2Vakv3XwyLjV3Hv4SM43t8pttW5Vr4LaVNDn4qsjmCgGTd8jURhAjTJ86S84Hctse1SkLswafjGRvayh9dW6muE5JC3wQzJHNeQZusfErR8seGKTvRmkoAnKbcM8jUoJ5tE7MUfbLNhgvyHj1vyPwc1iLdTP25DdQ4gEbMmHErpQK6LsQ1KyS7M9yrbnqJhCnnDp7Xo8XXXGJfjBM3z8MYd8DGobKdt2MLzgcVUb2vogpoeoNkH1PVUZyYaijv44CQfXJbHwyPvLaQJqVPigFUG7K9yGeotQrynCUzY9c9XvxNAfCXL4QQNNdB97UDt31PWstjvHvX3yZgfAjewBuiSLVcuEmLqHJ4wfxELQVLVA327JDRt1XPQypx8ffEXC2LKmBfz6DAWZaSH9U3M4MdTQa72m1aNUGCnxG5KBaUcotDFmPymUjjRyufGN54p911RHEVbT9vfvDKwC3q98HGyj4Eqb2nNDEDZkyXyubK4mot57Ks7m",
            "programIdIndex": 19,
            "stackHeight": 1
          }
        ],
        "recentBlockhash": "21PrYwE7QW5933cpXQ4yfcWu3Agom2HH7XsYJtLc2pq2",
        "transactionConfig": {
          "computeUnitLimit": 1359,
          "heapSize": null,
          "loadedAccountsDataSizeLimit": 314657,
          "priorityFee": 384
        }
      },
      "signatures": [
        "5FGNrMimtG7KdYoHTApVPKCjD4bFCfMtPm3q8DqocyaEyFsFUtcTVH6cXWhn29e54yMs2tkDCo3H6h7p5L14rVxA"
      ]
    },
    "transactionIndex": 12,
    "version": 1
  },
  "id": 1
}
```

## Result

Returns `null` if transaction is not found or not confirmed, otherwise returns an object containing:

This top-level response uses the shared [Confirmed Transaction Responses](https://solana.com/docs/rpc/json-structures#confirmed-transaction-responses) structure.

**`blockTime`** · i64 | null

Estimated production time, as Unix timestamp (seconds since the Unix epoch) of when the transaction was processed. `null` if not available.

**`meta`** · object | null

Transaction status metadata object, or `null` if the transaction metadata is not available.

For the shared field reference, see [Transaction Status Metadata](https://solana.com/docs/rpc/json-structures#transaction-status-metadata).

Source Type Definition: [UiTransactionStatusMeta](https://github.com/anza-xyz/agave/blob/v3.1.8/transaction-status-client-types/src/lib.rs#L332)

When present, this object may contain:

| Field                  | Type                       | Description                                                                                                  |
| ---------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `err`                  | `object \| string \| null` | Transaction error. `null` indicates success.                                                                 |
| `status`               | `object`                   | Deprecated status object that mirrors `err`. It is `"Ok": <null>` for success or `"Err": <ERR>` for failure. |
| `fee`                  | `u64`                      | Fee charged for the transaction, in lamports.                                                                |
| `preBalances`          | `array`                    | Lamport balances before execution, indexed to `transaction.message.accountKeys`.                             |
| `postBalances`         | `array`                    | Lamport balances after execution, indexed to `transaction.message.accountKeys`.                              |
| `innerInstructions`    | `array \| null`            | CPI instructions recorded during execution. This field may be `null` or omitted when unavailable.            |
| `logMessages`          | `array \| null`            | Program log output captured during execution. This field may be `null` or omitted when unavailable.          |
| `preTokenBalances`     | `array \| null`            | Token balances before execution. Each element uses the token-balance schema documented below.                |
| `postTokenBalances`    | `array \| null`            | Token balances after execution. Each element uses the token-balance schema documented below.                 |
| `rewards`              | `array \| null`            | Rewards applied while processing the transaction. Each element uses the reward schema documented below.      |
| `loadedAddresses`      | `object`                   | Addresses loaded from address lookup tables, when present.                                                   |
| `returnData`           | `object`                   | Most recent program return data, when present.                                                               |
| `computeUnitsConsumed` | `u64`                      | Total compute units consumed, when reported by the validator.                                                |
| `costUnits`            | `u64`                      | Total cost-model units charged, when reported by the validator.                                              |

**`err` object form**

| Field           | Type                                | Description                                                                                                                                     |
| --------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `<variantName>` | `array \| object \| string \| null` | Transaction error variant payload. Most variants serialize as strings. `InstructionError` serializes as `[instructionIndex, instructionError]`. |

**`status` fields**

| Field | Type               | Description                                                       |
| ----- | ------------------ | ----------------------------------------------------------------- |
| `Ok`  | `null`             | Deprecated success marker.                                        |
| `Err` | `object \| string` | Deprecated failure payload. Uses the same serialization as `err`. |

**`loadedAddresses` fields**

| Field      | Type    | Description                                                            |
| ---------- | ------- | ---------------------------------------------------------------------- |
| `writable` | `array` | Ordered list of writable loaded addresses, as base-58 encoded strings. |
| `readonly` | `array` | Ordered list of readonly loaded addresses, as base-58 encoded strings. |

**`returnData` fields**

| Field       | Type                 | Description                                                                              |
| ----------- | -------------------- | ---------------------------------------------------------------------------------------- |
| `programId` | `string`             | Program that generated the return data, as a base-58 encoded Pubkey.                     |
| `data`      | `[string, encoding]` | Return data payload and encoding. This field uses base-64 data with `"base64"` encoding. |

**`token balance` fields**

| Field           | Type     | Description                                                                                           |
| --------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| `accountIndex`  | `u8`     | Index into `transaction.message.accountKeys` for the token account whose balance is reported.         |
| `mint`          | `string` | Token mint pubkey, as a base-58 encoded string.                                                       |
| `uiTokenAmount` | `object` | Token amount object with raw and decimal-scaled representations.                                      |
| `owner`         | `string` | Token account owner pubkey, when the validator recorded it. This field may be omitted.                |
| `programId`     | `string` | SPL Token program pubkey for this account, when the validator recorded it. This field may be omitted. |

**`token balance.uiTokenAmount` fields**

| Field            | Type             | Description                                                                                |
| ---------------- | ---------------- | ------------------------------------------------------------------------------------------ |
| `uiAmount`       | `number \| null` | Decimal-scaled amount as a floating-point number. Deprecated in favor of `uiAmountString`. |
| `decimals`       | `u8`             | Number of decimal places configured on the mint.                                           |
| `amount`         | `string`         | Raw token amount, as a base-10 integer string.                                             |
| `uiAmountString` | `string`         | Decimal-scaled amount as a string.                                                         |

**`reward` fields**

| Field         | Type             | Description                                                                                     |
| ------------- | ---------------- | ----------------------------------------------------------------------------------------------- |
| `pubkey`      | `string`         | Rewarded account pubkey, as a base-58 encoded string.                                           |
| `lamports`    | `i64`            | Lamports credited or debited by this reward entry.                                              |
| `postBalance` | `u64`            | Account balance after the reward was applied.                                                   |
| `rewardType`  | `string \| null` | Reward category. When present, the value is `fee`, `rent`, `voting`, or `staking`.              |
| `commission`  | `u8 \| null`     | Vote-account commission at the time of the reward. Present only for voting and staking rewards. |

**`slot`** · u64

The slot this transaction was processed in

**`transactionIndex`** · u32 · optional

The transaction's position within its block. Omitted when the node doesn't report it.

**`transaction`** · object | string | \[string,encoding]

Transaction payload. The shape depends on the `encoding` parameter:

For the shared transaction object variants, see [Transactions](https://solana.com/docs/rpc/json-structures#transactions).

| Encoding                     | Returned Structure                                   |
| ---------------------------- | ---------------------------------------------------- |
| `json`                       | Object with `signatures` and raw `message` fields    |
| `jsonParsed`                 | Object with `signatures` and parsed `message` fields |
| `base64`, `base58`, `binary` | Encoded transaction data                             |

When `encoding` is `json`, the top-level transaction object may contain:

| Field        | Type     | Description                           |
| ------------ | -------- | ------------------------------------- |
| `signatures` | `array`  | Transaction signatures in wire order. |
| `message`    | `object` | Serialized message content.           |

**`message` fields**

| Field                 | Type            | Description                                                                                                              |
| --------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `header`              | `object`        | Message header object.                                                                                                   |
| `accountKeys`         | `array`         | Ordered list of account addresses referenced by the message, as base-58 encoded strings.                                 |
| `recentBlockhash`     | `string`        | Recent blockhash referenced by the message.                                                                              |
| `instructions`        | `array`         | Compiled instructions in the message.                                                                                    |
| `addressTableLookups` | `array \| null` | Address lookup table references for versioned transactions, when present.                                                |
| `transactionConfig`   | `object`        | v1 transactions only: `computeUnitLimit`, `heapSize`, `loadedAccountsDataSizeLimit`, `priorityFee` (each may be `null`). |

**`message.accountKeys[]` fields when `encoding` is `jsonParsed`**

| Field      | Type             | Description                                                                           |
| ---------- | ---------------- | ------------------------------------------------------------------------------------- |
| `pubkey`   | `string`         | Account address, as a base-58 encoded string.                                         |
| `signer`   | `bool`           | Whether this account signed the transaction.                                          |
| `writable` | `bool`           | Whether the message marks this account writable.                                      |
| `source`   | `string \| null` | Source of the account key. When present, the value is `transaction` or `lookupTable`. |

**`message.header` fields**

| Field                         | Type | Description                           |
| ----------------------------- | ---- | ------------------------------------- |
| `numRequiredSignatures`       | `u8` | Number of required signatures.        |
| `numReadonlySignedAccounts`   | `u8` | Number of readonly signer accounts.   |
| `numReadonlyUnsignedAccounts` | `u8` | Number of readonly unsigned accounts. |

**`message.instructions[]` fields**

| Field            | Type          | Description                                       |
| ---------------- | ------------- | ------------------------------------------------- |
| `programIdIndex` | `u8`          | Index into `accountKeys` for the invoked program. |
| `accounts`       | `array`       | Account indexes referenced by the instruction.    |
| `data`           | `string`      | Instruction data, base-58 encoded.                |
| `stackHeight`    | `u32 \| null` | Invocation stack height, when reported.           |

**`message.instructions[]` parsed form fields**

| Field         | Type          | Description                                                                           |
| ------------- | ------------- | ------------------------------------------------------------------------------------- |
| `program`     | `string`      | Parser name that decoded the instruction.                                             |
| `programId`   | `string`      | Invoked program pubkey, as a base-58 encoded string.                                  |
| `parsed`      | `object`      | Program-specific parsed instruction payload. The exact schema depends on the program. |
| `stackHeight` | `u32 \| null` | Invocation stack height, when reported.                                               |

**`message.instructions[]` partially decoded form fields**

| Field         | Type          | Description                                                |
| ------------- | ------------- | ---------------------------------------------------------- |
| `programId`   | `string`      | Invoked program pubkey, as a base-58 encoded string.       |
| `accounts`    | `array`       | Account addresses referenced by the instruction, in order. |
| `data`        | `string`      | Instruction data, base-58 encoded.                         |
| `stackHeight` | `u32 \| null` | Invocation stack height, when reported.                    |

**`message.addressTableLookups[]` fields**

| Field             | Type     | Description                                                       |
| ----------------- | -------- | ----------------------------------------------------------------- |
| `accountKey`      | `string` | Address lookup table account pubkey, as a base-58 encoded string. |
| `writableIndexes` | `array`  | Lookup-table indexes loaded as writable accounts.                 |
| `readonlyIndexes` | `array`  | Lookup-table indexes loaded as readonly accounts.                 |

When `message` is returned as the parsed form (`encoding: "jsonParsed"`), `accountKeys` is an array of objects containing the listed metadata and `instructions` is an array of parsed or partially decoded instruction objects. The nested `parsed` payload within those instruction objects remains program-specific.

**`version`** · "legacy" | number

Transaction version. This field is omitted if `maxSupportedTransactionVersion` is not set in the request params.

***

*Adapted from the* [*Solana `getTransaction` reference*](https://solana.com/docs/rpc/http/gettransaction)*, maintained by the Solana Foundation.*

***

<i class="fa-life-ring">:life-ring:</i> Contact support by clicking the chat icon in your [customer dashboard](https://customers.triton.one)\ <i class="fa-briefcase">:briefcase:</i> Sales questions? [Contact us](https://triton.one/contact)\ <i class="fa-sparkles">:sparkles:</i> AI agent? Read [llms.txt](https://docs.triton.one/llms.txt)\ <i class="fa-rss">:rss:</i> Follow updates: [Blog](https://blog.triton.one) · [X](https://x.com/triton_one) · [YouTube](https://www.youtube.com/@triton_one_ltd) · [Telegram](https://t.me/tritonone) · [GitHub](https://github.com/rpcpool)
