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

# Parsed Events Quickstart

> Parse your first transaction, fetch parsed address history, and page through results. Plus the REST reference for both endpoints.

> [!TIP]
>
> New to Parsed Events? Read the Parsed Streams [mental model](https://www.helius.dev/docs/parsed-streams.md#the-mental-model) first — Parsed Events returns the same decoded instructions over REST.

## Quickstart

**1. Get Access**

Parsed Events is available on all plans at 10 credits per request. Get your API key from the [Helius Dashboard](https://dashboard.helius.dev) and send requests to `https://mainnet.helius-rpc.com`.

Authenticate with your project's API key, passed as the `api-key` query parameter.

**2. Parse a Transaction**

Pass signatures in the `transactions` body field of `POST /v1/parsed-events/transactions`:

> [tab] JavaScript
>
> ```javascript theme={"system"}
> const parseTransactions = async () => {
>   const url = "https://mainnet.helius-rpc.com/v1/parsed-events/transactions?api-key=YOUR_API_KEY";
>
>   const response = await fetch(url, {
>     method: "POST",
>     headers: {
>       "Content-Type": "application/json",
>     },
>     body: JSON.stringify({
>       transactions: [
>         "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
>       ],
>       rawTransaction: "none",
>     }),
>   });
>
>   const data = await response.json();
>   console.log(data);
> };
>
> parseTransactions();
> ```

> [tab] cURL
>
> ```bash theme={"system"}
> curl -X POST "https://mainnet.helius-rpc.com/v1/parsed-events/transactions?api-key=YOUR_API_KEY" \
>   -H "content-type: application/json" \
>   -d '{
>     "transactions": [
>       "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH"
>     ],
>     "rawTransaction": "none"
>   }'
> ```

**3. Read the Result**

The response contains one result per requested signature, in input order. Each result includes `signature`, `parserStatus`, and either `parsed` or `parserError`:

```json [expandable] theme={"system"}
[
  {
    "signature": "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
    "parserStatus": "OK",
    "parsed": {
      "slot": 433950192,
      "blockTime": 1784487060,
      "fee": 2005000,
      "feePayer": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
      "transactionStatus": "OK",
      "nativeTransfers": [
        {
          "fromUserAccount": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
          "toUserAccount": "teBPkZtsnaKDpGHTy1KUZeh1PbVtbrKXhzruYpRiUUs",
          "amount": 1500000000000
        }
      ],
      "tokenTransfers": [
        {
          "fromUserAccount": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
          "toUserAccount": "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE",
          "fromTokenAccount": "teBPkZtsnaKDpGHTy1KUZeh1PbVtbrKXhzruYpRiUUs",
          "toTokenAccount": "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
          "rawTokenAmount": 1498500000000,
          "decimals": 9,
          "tokenStandard": "Fungible",
          "mint": "So11111111111111111111111111111111111111112"
        }
      ],
      "summary": {
        "type": "swap",
        "description": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52 swapped 1500 SOL for 64672839.26195 pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn via Jupiter",
        "parsedData": {
          "type": "swap",
          "protocol": "jupiter",
          "kind": "swap",
          "in_amount": "1500000000000",
          "actual_out_amount": "64672839261950",
          "input_mint": "So11111111111111111111111111111111111111112",
          "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn",
          "inner_swaps": [
            {
              "amm_program_id": "",
              "amm_program_name": null,
              "input_amount": "470229300000",
              "output_amount": "35579021038",
              "input_mint": "So11111111111111111111111111111111111111112",
              "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
            },
            {
              "amm_program_id": "",
              "amm_program_name": null,
              "input_amount": "1028270700000",
              "output_amount": "77798063361",
              "input_mint": "So11111111111111111111111111111111111111112",
              "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
            },
            {
              "amm_program_id": "",
              "amm_program_name": null,
              "input_amount": "14625643887",
              "output_amount": "8348494812168",
              "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
              "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
            },
            {
              "amm_program_id": "",
              "amm_program_name": null,
              "input_amount": "35566391375",
              "output_amount": "20283004384731",
              "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
              "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
            },
            {
              "amm_program_id": "",
              "amm_program_name": null,
              "input_amount": "63185049137",
              "output_amount": "36041340065051",
              "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
              "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
            }
          ]
        }
      },
      "instructions": [
        {
          "instructionIndex": 5,
          "innerInstructionIndex": 2,
          "stackHeight": 3,
          "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
          "rawAccounts": [
            "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
            "ATRsNGv2nDw7hSMfkUTBoVUDsFDwN7po7KbecyiGWNB4",
            "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE"
          ],
          "rawData": "3JvpRSxKFyKV",
          "summary": {
            "type": "transfer",
            "description": "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE transferred 470.2293 SOL from 7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE to 8FnX3xo2yYw3EUE6w3nQA4GfXGS9wpK6oj3veJpbFzLo",
            "parsedData": null
          },
          "programName": "token",
          "instructionName": "transfer",
          "decoded": {
            "args": {
              "amount": "470229300000"
            },
            "accounts": [
              {
                "name": "source_account",
                "pubkey": "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
                "isSigner": false,
                "isWritable": true
              },
              {
                "name": "destination_account",
                "pubkey": "ATRsNGv2nDw7hSMfkUTBoVUDsFDwN7po7KbecyiGWNB4",
                "isSigner": false,
                "isWritable": true
              },
              {
                "name": "owner_or_delegate",
                "pubkey": "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE",
                "isSigner": true,
                "isWritable": false
              }
            ]
          }
        },
        {
          "instructionIndex": 5,
          "innerInstructionIndex": 1,
          "stackHeight": 2,
          "programId": "BiSoNHVpsVZW2F7rx2eQ59yQwKxzU5NvBcmKshCSUypi",
          "rawAccounts": [
            "7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE",
            "8FnX3xo2yYw3EUE6w3nQA4GfXGS9wpK6oj3veJpbFzLo",
            "ATRsNGv2nDw7hSMfkUTBoVUDsFDwN7po7KbecyiGWNB4",
            "2Y7HATmn9aJBcxCskE5V2U2epmjvkZmB51zTJBbhj4cU",
            "2oL6my4QDDCfpgJZX1bZV1NgbmuNptKdgcE8wJm6efgk",
            "EpdaePzdqRkMtdZJquVPUWgyoJ5YEEpYALki6dv9VBrt",
            "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
            "Sysvar1nstructions1111111111111111111111111",
            "J1to1yufRnoWn81KYg1XkTWzmKjnYSnmE2VY8DGUJ9Qv"
          ],
          "rawData": "67t827t7UwAMHa6U18HnBBLj",
          "summary": null,
          "programName": "bison_fi",
          "instructionName": null,
          "decoded": null
        }
      ]
    }
  }
]
```

The example is trimmed to two instructions: a decoded token transfer inside the route, and an AMM instruction whose program the catalog knows but cannot decode, which leaves `instructionName` as `null` while `rawData` and `rawAccounts` remain available. See [Parsed Response](https://www.helius.dev/docs/parsed-events/parsed-response.md) for every field and a full example response.

**4. Fetch Address History**

`POST /v1/parsed-events/transaction-history` returns the same parsed results as above, for every transaction that touched an address, newest first by default:

> [tab] JavaScript
>
> ```javascript theme={"system"}
> const fetchTransactionHistory = async () => {
>   const url = "https://mainnet.helius-rpc.com/v1/parsed-events/transaction-history?api-key=YOUR_API_KEY";
>
>   const response = await fetch(url, {
>     method: "POST",
>     headers: {
>       "Content-Type": "application/json",
>     },
>     body: JSON.stringify({
>       address: "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
>       limit: 100,
>       sortOrder: "desc",
>       commitment: "confirmed",
>     }),
>   });
>
>   const page = await response.json();
>   console.log(page.data);
>   console.log(page.paginationToken);
> };
>
> fetchTransactionHistory();
> ```

> [tab] cURL
>
> ```bash theme={"system"}
> curl -X POST "https://mainnet.helius-rpc.com/v1/parsed-events/transaction-history?api-key=YOUR_API_KEY" \
>   -H "content-type: application/json" \
>   -d '{
>       "address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
>       "limit": 100,
>       "sortOrder": "desc",
>       "commitment": "confirmed"
>     }'
> ```

**5. Paginate**

History responses wrap results in a page object. Pass `paginationToken` back in the next request to continue. If `paginationToken` is missing, the service reached the end of the available page range.

## Guides

> [card] [Fetch Pump.fun Mints](https://www.helius.dev/docs/parsed-events/guides/fetch-pumpfun-mints.md)
>
> Page through every token a wallet has deployed on Pump.fun.

> [card] [Migrate from Enhanced Transactions](https://www.helius.dev/docs/parsed-events/guides/migrate-from-enhanced-transactions.md)
>
> Endpoint, parameter, and response mapping from the legacy API.

## REST Reference

Both REST methods accept a JSON body via `POST` under `/v1/parsed-events/` at `https://mainnet.helius-rpc.com`, authenticated with the `api-key` query parameter. Request bodies reject unknown fields, so typos fail loudly instead of being silently ignored.

### Parse Transactions

`POST /v1/parsed-events/transactions` fetches full Solana transactions by signature, decodes them with the same IDL-based instruction decoder that powers [Parsed Streams](https://www.helius.dev/docs/parsed-streams.md), and returns one `TransactionResult` per requested signature.

The response order matches the input order, including duplicate signatures. Missing transactions and per-item parser failures are returned as item-level `parserStatus: "ERROR"` results:

```json theme={"system"}
[
  {
    "signature": "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
    "parserStatus": "ERROR",
    "parserError": {
      "code": "transaction_not_found",
      "message": "transaction was not found"
    }
  }
]
```

#### Request body

**transactions** `string[]` *required*

Transaction signatures to parse. The maximum batch size is 100.

**commitment** `string` (default: confirmed)

Commitment level used when fetching transactions.

* `confirmed`
* `finalized`

**rawTransaction** `string` (default: none)

Encoding of the raw Solana transaction returned as `rawTransaction` on each result, in the `getTransaction` shape.

* `none`
* `json`
* `jsonParsed`
* `base64`

#### Notes

* `processed` commitment is not supported.
* `rawTransaction` is omitted unless you set the `rawTransaction` request field to `json`, `jsonParsed`, or `base64`. The older `includeRawTransaction: true` still works as an alias for `json`.
* Transaction execution failures can still parse. In that case `parsed.transactionStatus` is `ERROR`, and the transaction error is exposed on `parsed.error` when available.
* Request-level validation errors return an error response instead of item-level results.

### Parsed Transaction History

`POST /v1/parsed-events/transaction-history` returns parsed transaction history for an address. It supports pagination, signature bounds, slot bounds, block-time bounds, sort order, and optional raw transactions.

Unlike the legacy [Enhanced Transactions](https://www.helius.dev/docs/enhanced-transactions/transaction-history.md) address endpoint, request parameters are sent in a JSON body rather than query string parameters.

#### Request body

**address** `string` *required*

Address whose transaction history should be fetched.

**limit** `number` (default: 100)

Number of transactions to return. Must be between `1` and `100`.

**beforeSignature** `string`

Return transactions before this signature.

**afterSignature** `string`

Return transactions after this signature.

**paginationToken** `string`

Cursor returned by the previous response.

**sortOrder** `string` (default: desc)

Sort order for returned transactions.

* `asc`
* `desc`

**commitment** `string` (default: confirmed)

Commitment level used for the history fetch.

* `confirmed`
* `finalized`

**status** `string` (default: succeeded)

Execution result to include.

* `succeeded`
* `failed`
* `any`

**tokenAccounts** `string` (default: none)

Whether to include transactions that reference only a token account owned by `address`, not `address` itself. Many incoming token transfers touch only the recipient's token account.

* `none`
* `balanceChanged`
* `all`

**rawTransaction** `string` (default: none)

Encoding of the raw Solana transaction returned as `rawTransaction` on each result, in the `getTransaction` shape.

* `none`
* `json`
* `jsonParsed`
* `base64`

**slot** `object`

Slot comparison bounds. Each bound is optional: `gt`, `gte`, `lt`, `lte`.

**time** `object`

Block-time comparison bounds in Unix seconds. Each bound is optional: `gt`, `gte`, `lt`, `lte`.

#### Pagination

Responses have this shape. Each `data` item uses the same `TransactionResult` format returned by Parse Transactions:

```json [expandable] theme={"system"}
{
  "data": [
    {
      "signature": "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
      "parserStatus": "OK",
      "parsed": {
        "slot": 433950192,
        "blockTime": 1784487060,
        "fee": 2005000,
        "feePayer": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
        "transactionStatus": "OK",
        "nativeTransfers": [],
        "tokenTransfers": [],
        "summary": {
          "type": "swap",
          "description": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52 swapped 1500 SOL for 64672839.26195 pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn via Jupiter",
          "parsedData": {
            "type": "swap",
            "protocol": "jupiter",
            "kind": "swap",
            "in_amount": "1500000000000",
            "actual_out_amount": "64672839261950",
            "input_mint": "So11111111111111111111111111111111111111112",
            "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn",
            "inner_swaps": [
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "470229300000",
                "output_amount": "35579021038",
                "input_mint": "So11111111111111111111111111111111111111112",
                "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "1028270700000",
                "output_amount": "77798063361",
                "input_mint": "So11111111111111111111111111111111111111112",
                "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "14625643887",
                "output_amount": "8348494812168",
                "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "35566391375",
                "output_amount": "20283004384731",
                "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
              },
              {
                "amm_program_id": "",
                "amm_program_name": null,
                "input_amount": "63185049137",
                "output_amount": "36041340065051",
                "input_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
              }
            ]
          }
        },
        "instructions": []
      }
    }
  ],
  "paginationToken": "433950192:0"
}
```

Pass `paginationToken` back in the next request to continue. If `paginationToken` is missing, the service reached the end of the available page range.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.