---
title: "Send Transactions"
method: POST
path: "/v1/transactions"
tags: ["Wallets"]
---

# Send Transactions

`POST /v1/transactions`

Submits pre-encoded blockchain transactions with custom data payloads. This endpoint is for low-level transaction submission where you have already encoded the transaction data. For smart contract method calls, use /v1/contracts/write. For native token transfers, use /v1/wallets/send.

**Authentication**: This endpoint requires project authentication and wallet authentication. For backend usage, use `x-secret-key` header. For frontend usage, use `x-client-id` + `Authorization: Bearer <jwt>` headers.

## Request body

- object — Request object containing an array of encoded blockchain transactions to execute. All transactions must use the same from address and chainId. For contract calls, use /v1/contracts/write. For native token transfers, use /v1/wallets/send.
  - `chainId` integer, required — The blockchain network identifier where all transactions will be executed.
  - `from` string — The wallet address or ENS name that will send the transaction. If omitted, the project wallet will be used if available.
  - `transactions` object[], required — Array of encoded blockchain transactions to execute. All transactions will use the same from address and chainId.
    - `data` string, required — Transaction data in hexadecimal format for contract interactions or custom payloads.
    - `to` string, required — The target address or ENS name for the transaction.
    - `value` string — Amount of native token to send in wei (smallest unit). Use '0' or omit for non-value transactions.

## Response `200`

Encoded transactions submitted successfully. Returns the transaction IDs for tracking and monitoring.

- object
  - `result` object, required
    - `transactionIds` string[], required — Array of unique identifiers for the submitted transactions. Use these to track transaction status.

## Other responses

- `400` — Invalid request parameters. This occurs when transaction data is malformed, insufficient balance, or invalid encoded data.
- `401` — Authentication required. For backend usage, include `x-secret-key` header. For frontend usage, include `x-client-id` + `Authorization: Bearer <jwt>` headers.
- `402` — Payment required. Insufficient wallet balance to complete the purchase.
- `500` — Internal server error. This may occur due to blockchain connectivity issues, gas estimation failures, or unexpected server errors.

---

[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)
