> For the complete documentation index, see [llms.txt](https://hyperdrive.squads.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hyperdrive.squads.so/development/pdas-read-data-from-the-program/transaction-account-info.md).

# Transaction Account Info

To fetch the Account Information for a transaction, you will need its Public Key. The Public Key can be derived with the underlying Multisig Public Key and the transaction index, which is an incrementing counter keeping track of the number of total transactions.

#### Let's set the code up

```typescript
import * as multisig from "@sqds/multisig";

const {
    Transaction
} = multisig.accounts;

// Public Key of the Multisig PDA, head to the Multisig Account Info tab to leanrn more
const multisigPda = new PublicKey("MyAmazingMultisig");

// Unique index of the transaction you are creating
const transactionIndex = 1n;


const [transactionPda] = multisig.getTransactionPda({
    multisigPda,
    index: transactionIndex,
});

// Log out the multisig's members
console.log("Members", multisigAccount.members);
```

### Different transaction Types

On Squads V4 there are two kind of transactions, the one you will probably need the most is the vault transaction, used to manage pretty much everything that is not configuration related to your Multisig (Asset management, validator withdraw authority management, program upgrade authority management...).\
The second one is the config transaction, which is used to manage configurations (spending limits, members, time-locks...) on your Multisig.

#### Fetch Vault Transaction Info

```typescript
      let transactionAccount = await VaultTransaction.fromAccountAddress(
        connection,
        transactionPda
      );
      
      // Log the transactions underlying multisig address
      console.log("The transactions multisig: ", transactionAccount.multisig.toBase58());
```

#### Fetch Config Transaction Info

```typescript
const configTransactionAccount =
        await ConfigTransaction.fromAccountAddress(connection, transactionPda);
        
// Log the transactions underlying multisig address
console.log("The transaction multisig: ", configTransactionAccount.multisig.toBase58());
```

For more information on the structure of the different Transaction accounts, head to their [reference](/reference/accounts.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hyperdrive.squads.so/development/pdas-read-data-from-the-program/transaction-account-info.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
