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

# Transaction Signing Parameters

This endpoint is used to obtain the transaction parameters needed to start and fund allocations on-chain. After starting and funding transactions, trigger indexing on the Magna platform.

Example request:

```sh theme={null}
curl -X POST https://app.magna.so/api/external/v1/transactions/params \
-H 'Content-Type: application/json' \
-H 'x-magna-api-token: magna_project_api_token' \
-d '{
  "tokenId": "your_token_id",
  "sender": "0xYourWalletAddress",
  "allocationId": "optional_allocation_id",
  "type": "admin",
  "cursor": "cursor",
  "limit": 100
}'
```

* `magna_project_api_token` (required) - replace with your actual Magna API token
* `tokenId` (required) - your project's token id
* `sender` (required) - the wallet address that will sign and submit the transaction
* `allocationId` (optional) - filter to a specific allocation
* `type` (optional) - filter by transaction type: "stakeholder" (withdrawals) or "admin" (non-withdrawal operations like start/fund)
* `cursor` (optional) - the last transactionGroupId for pagination
* `limit` (optional) - is the maximum number of items in the query, with a maximum of 100 items per query.

Solana Response example:

```jsx theme={null}
{
  "isProcessed": true,
  "result": {
    "items": [
      {
        "transactionGroupId": "8fccd856-ebd2-466b-be1c-e76fbb6963ee",
        "parameters": [
          {
            "instructions": [...],
            "transactionId": "9f7beee1-00c7-41df-a1ba-0654a98a9a06"
          }
        ]
      }
    ],
    "cursor": "8fccd856-ebd2-466b-be1c-e76fbb6963ee",
    "total": 1
  }
}
```

EVM Response example:

```jsx theme={null}
{
  "isProcessed": true,
  "result": {
    "items": [
      {
        "transactionGroupId": "8fccd856-ebd2-466b-be1c-e76fbb6963ee",
        "parameters": [
          {
            "to": "0xContractAddress",
            "data": "0x...",
            "value": "0"
          }
        ]
      }
    ],
    "cursor": "8fccd856-ebd2-466b-be1c-e76fbb6963ee",
    "total": 1
  }
}
```

Next, you'll use the returned parameters and include them in the a transaction to be signed and submitted on-chain. Parameters include the contract address to send the transaction to along with data to submit. For example:<br />

```jsx theme={null}
const executedTransactionHash = await signerWallet.sendTransaction({
    chain: connectedChain,
    to: parameters.to,
    data: parameters.data,
});
```

You can find additional examples of submitting transactions here if using [Viem TypeScript Interface for Ethereum](https://viem.sh/docs/actions/wallet/sendTransaction.html).

Note: Be sure to use the same admin wallet that you selected during creation of allocations. You can find the wallet by going to settings in the app: [https://app.magna.so/\\\[your-project\]/settings/wallets\\](https://app.magna.so/\\\[your-project]/settings/wallets\\)
\
Once the transaction is successfully submitted, use the returned transaction hash in the next step to trigger indexing so that the correct state can be reflected in the app.
