---
title: "Send Solana Transaction"
method: POST
path: "/v1/solana/transactions"
tags: ["Solana"]
---

# Send Solana Transaction

`POST /v1/solana/transactions`

Submit a Solana transaction composed of one or more instructions. Transactions are queued and processed asynchronously.

**Authentication**: This endpoint requires backend authentication using the x-secret-key header. The secret key should never be exposed publicly.

## Request body

- object — Submit a Solana transaction made up of one or more instructions.
  - `from` string, required — Solana wallet address that will sign and submit the transaction.
  - `chainId` string, required — Solana network identifier in CAIP-2 format. Use "solana:mainnet" or "solana:devnet" for convenience, or full CAIP-2 format.
  - `instructions` object[], required — Set of instructions executed sequentially in a single transaction.
    - `programId` string, required — Program address to invoke for this instruction.
    - `accounts` object[], required — Ordered list of accounts consumed by the instruction.
      - `address` string, required — Public key for the account.
      - `isSigner` boolean, required — Whether this account must sign the transaction.
      - `isWritable` boolean, required — Whether this account can be modified by the instruction.
    - `data` string, required — Instruction data encoded using the provided encoding.
    - `encoding` 'hex' | 'base64' — Encoding used for the instruction data payload.
  - `priorityFee` union — Priority fee configuration applied via the compute budget program.
    - object
      - `type` 'auto', required
    - object
      - `type` 'manual', required
      - `microLamportsPerUnit` integer, nullable, required — Explicit micro-lamports per compute unit for priority fees.
    - object
      - `type` 'percentile', required
      - `percentile` integer, nullable, required — Percentile to pull from recent priority fee estimates (0-100).
  - `computeUnitLimit` integer, nullable — Override the compute unit limit via the compute budget program.

## Response `200`

Transaction queued successfully. Returns the transaction identifier for status polling.

- object
  - `result` object, required
    - `transactionId` string, required — Idempotency key assigned to the queued transaction.

## Other responses

- `202` — Transaction accepted for asynchronous processing. Returns the transaction identifier for status polling.
- `401` — Authentication required. Include x-secret-key or Authorization headers.
- `500` — Internal server error occurred while processing the transaction.

---

[API](https://skmtc.net/thirdweb/apis/thirdweb-api.md) · [All operations](https://skmtc.net/thirdweb/apis/thirdweb-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/thirdweb/thirdweb-api/revisions/fb4cb67da1c7/schema)
