---
title: "Process Transactions"
method: POST
path: "/api/{portalId}/transactions/process"
tags: ["Token"]
---

# Process Transactions

`POST /api/{portalId}/transactions/process`

## Request

- Base URL: `https://portal-api.magna.so`
- URL: `https://portal-api.magna.so/api/{portalId}/transactions/process`
- Auth: none declared

Processes a list of signed transactions. Applicable for chains where the transaction is process by the dApp and not the wallet - e.g. Solana

## Path parameters

- `portalId` string, uuid, required

## Request body

- object
  - `wallet` string, required: wallet address of the signer
  - `signedTransactionsData` string[], required: signed transaction data
  - `metadata` union: optional metadata for the transaction
    - object
      - `type` 'STAKE', required
      - `stakeId` string, uuid, required: stake id
      - `poolId` string, uuid, required: staking pool id
      - `amount` string, required: amount of tokens to stake
    - object
      - `type` 'CLAIM', required
      - `distributionId` string, uuid, required: distribution id
    - object
      - `type` 'CLAIM_STAKE_REWARDS', required
      - `stakeId` string, uuid, required: stake id
      - `poolId` string, uuid, required: staking pool id
      - `amount` string, required: amount of tokens to claim
    - object
      - `type` 'UNSTAKE', required
      - `stakeId` string, uuid, required: stake id
      - `poolId` string, uuid, required: staking pool id
      - `amount` string, required: amount of tokens to unstake
    - object
      - `type` 'STAKING_WITHDRAW', required
      - `stakeId` string, uuid, required: stake id
      - `poolId` string, uuid, required: staking pool id
      - `amount` string, required: amount of tokens to withdraw

## Response `200`

Ok

- object[]: Ok
  - `hash` string, nullable, required: hash of the transaction; set only when the broadcast settled successfully
  - `errorMessage` string, nullable, required: error message
  - `status` 'CONFIRMED' | 'PENDING_VERIFICATION' | 'FAILED', required: CONFIRMED: the transaction settled successfully on-chain. PENDING_VERIFICATION: the broadcast result was lost but the transaction may have landed; it is being verified on-chain server-side and will be reflected once verified — do not resubmit, a resubmission of the same intent will revert on-chain if the original landed. FAILED: the transaction was not processed and can be resubmitted.
  - `unconfirmedHash` string, nullable, required: transaction hash derived locally from the signed bytes; set only for PENDING_VERIFICATION

## Other responses

- `400`: Client Error
- `500`: Server Error
- `502`: Upstream Error — the portal configuration service could not be reached. Safe to retry.

---

[API](https://skmtc.dev/magna/apis/magna-portal-api.md) - [All operations](https://skmtc.dev/magna/apis/magna-portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/magna/apis/magna-portal-api/revisions/50f736d73198?raw)
