> ## Documentation Index
> Fetch the complete documentation index at: https://goldrush.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# simulateTransaction on Solana

> Call simulateTransaction on Solana via GoldRush JSON-RPC. Simulates sending a transaction without submitting it. Endpoint, parameters, return values, and code examples.

<Card title="0.01 credits per call" icon="coins" />

`simulateTransaction` on **Solana**: Simulates sending a transaction without submitting it.

## Endpoint

```
https://rpc.goldrushdata.com/v1/solana-mainnet
```

Authenticate with `Authorization: Bearer <GOLDRUSH_API_KEY>`. See [authentication](/goldrush-json-rpc/authentication).

## Parameters

| Name          | Type     | Required | Description                                                                                                                                     | Example                                                                                                                                                                                                                                                                                                                                                                  |
| ------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `transaction` | `string` | yes      | Transaction to simulate, `base64` or `base58` encoded. May be unsigned when `sigVerify` is false.                                               | `"AR4KbO6uYPS5PKSh8u1ah2Jq1pHeXwaojuxdDGbSSumHcCM1bukbYaDt5/wiqiIwP156mLvzJxk3ILQocD3W8wcBAAIEwS6EMxyDU3PzY4L5Q52OIthyvkPczZiNOrY0kYo1V1oNwwgfIhv6odn2qTUu/gOisDtaeCW1qlwW/gx3ccr/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAACmNAYg3PP4Wwb6+EaGmhEew4gOOjQBZwBCR73i+EDMaAMDAAkDgNHwCAAAAAADAAUC9AEAAAICAAEMAgAAAKCGAQAAAAAA"` |
| `config`      | `object` | no       | `{encoding?, sigVerify?, replaceRecentBlockhash?, commitment?, accounts?, minContextSlot?}`. `accounts` requests post-simulation account state. | `{"encoding":"base64","sigVerify":false,"replaceRecentBlockhash":true,"commitment":"confirmed"}`                                                                                                                                                                                                                                                                         |

## Returns

`object`: `{context, value: {err, logs, accounts, unitsConsumed, returnData}}`.

```json theme={null}
{"context":{"slot":372877175},"value":{"err":null,"logs":["Program 11111111111111111111111111111111 invoke [1]"],"unitsConsumed":2100}}
```

## Examples

<CodeGroup>
  ```bash curl theme={null}
  curl https://rpc.goldrushdata.com/v1/solana-mainnet \
    -H "Authorization: Bearer $GOLDRUSH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "simulateTransaction",
      "params": ["AR4KbO6uYPS5PKSh8u1ah2Jq1pHeXwaojuxdDGbSSumHcCM1bukbYaDt5/wiqiIwP156mLvzJxk3ILQocD3W8wcBAAIEwS6EMxyDU3PzY4L5Q52OIthyvkPczZiNOrY0kYo1V1oNwwgfIhv6odn2qTUu/gOisDtaeCW1qlwW/gx3ccr/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAACmNAYg3PP4Wwb6+EaGmhEew4gOOjQBZwBCR73i+EDMaAMDAAkDgNHwCAAAAAADAAUC9AEAAAICAAEMAgAAAKCGAQAAAAAA", {"encoding":"base64","sigVerify":false,"replaceRecentBlockhash":true,"commitment":"confirmed"}]
    }'
  ```

  ```typescript @solana/kit theme={null}
  import {
    createDefaultRpcTransport,
    createSolanaRpcFromTransport,
  } from "@solana/kit";

  const transport = createDefaultRpcTransport({
    url: "https://rpc.goldrushdata.com/v1/solana-mainnet",
    headers: { Authorization: `Bearer ${process.env.GOLDRUSH_API_KEY}` },
  });
  const rpc = createSolanaRpcFromTransport(transport);

  const result = await rpc.simulateTransaction("AR4KbO6uYPS5PKSh8u1ah2Jq1pHeXwaojuxdDGbSSumHcCM1bukbYaDt5/wiqiIwP156mLvzJxk3ILQocD3W8wcBAAIEwS6EMxyDU3PzY4L5Q52OIthyvkPczZiNOrY0kYo1V1oNwwgfIhv6odn2qTUu/gOisDtaeCW1qlwW/gx3ccr/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAACmNAYg3PP4Wwb6+EaGmhEew4gOOjQBZwBCR73i+EDMaAMDAAkDgNHwCAAAAAADAAUC9AEAAAICAAEMAgAAAKCGAQAAAAAA", {"encoding":"base64","sigVerify":false,"replaceRecentBlockhash":true,"commitment":"confirmed"}).send();
  console.log(result);
  ```

  ```python python theme={null}
  import os
  import requests

  resp = requests.post(
      "https://rpc.goldrushdata.com/v1/solana-mainnet",
      headers={
          "Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}",
          "Content-Type": "application/json",
      },
      json={"jsonrpc": "2.0", "id": 1, "method": "simulateTransaction", "params": ["AR4KbO6uYPS5PKSh8u1ah2Jq1pHeXwaojuxdDGbSSumHcCM1bukbYaDt5/wiqiIwP156mLvzJxk3ILQocD3W8wcBAAIEwS6EMxyDU3PzY4L5Q52OIthyvkPczZiNOrY0kYo1V1oNwwgfIhv6odn2qTUu/gOisDtaeCW1qlwW/gx3ccr/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAACmNAYg3PP4Wwb6+EaGmhEew4gOOjQBZwBCR73i+EDMaAMDAAkDgNHwCAAAAAADAAUC9AEAAAICAAEMAgAAAKCGAQAAAAAA", {"encoding":"base64","sigVerify":false,"replaceRecentBlockhash":true,"commitment":"confirmed"}]},
  )
  print(resp.json()["result"])
  ```
</CodeGroup>

## Errors

Standard JSON-RPC errors: `-32600` invalid request, `-32601` method not found, `-32602` invalid params.

## Related Transactions info methods on Solana

* [`getTransaction` on Solana](/api-reference/json-rpc/solana/gettransaction)
* [`sendTransaction` on Solana](/api-reference/json-rpc/solana/sendtransaction)
* [`getSignaturesForAddress` on Solana](/api-reference/json-rpc/solana/getsignaturesforaddress)
* [`getSignatureStatuses` on Solana](/api-reference/json-rpc/solana/getsignaturestatuses)
* [`getTransactionCount` on Solana](/api-reference/json-rpc/solana/gettransactioncount)
