---
title: CommandService
description: CommandService defines transactional RPCs that mutate state or perform
source_url:
  html: https://thru.org/docs/api-ref/grpc/services/command-service/
  md: https://thru.org/docs/api-ref/grpc/services/command-service.md
---

# CommandService

CommandService defines transactional RPCs that mutate state or perform expensive computations.

**Package:** `thru.services.v1`

## RPCs

### `SendTransaction`

Submit a new transaction to the cluster.

- **Request:** [`SendTransactionRequest`](https://thru.org/docs/api-ref/grpc/messages/thru/services/v1/send-transaction-request.md)
- **Response:** [`SendTransactionResponse`](https://thru.org/docs/api-ref/grpc/messages/thru/services/v1/send-transaction-response.md)

**Try it live:** gRPC-Web `POST https://grpc-web.alphanet.thruput.org` (`thru.services.v1.CommandService/SendTransaction`) with request body:

```json
{
"transaction": "<base64-encoded signed transaction bytes>"
}
```

### `BatchSendTransactions`

Submit multiple transactions to the cluster in batch.

- **Request:** [`BatchSendTransactionsRequest`](https://thru.org/docs/api-ref/grpc/messages/thru/services/v1/batch-send-transactions-request.md)
- **Response:** [`BatchSendTransactionsResponse`](https://thru.org/docs/api-ref/grpc/messages/thru/services/v1/batch-send-transactions-response.md)

**Try it live:** gRPC-Web `POST https://grpc-web.alphanet.thruput.org` (`thru.services.v1.CommandService/BatchSendTransactions`) with request body:

```json
{
"transactions": [
  "<base64-encoded signed transaction bytes>"
]
}
```

### `SendAndTrackTxn` *(server-stream)*

Submit a transaction and track its execution status. Returns a stream of status updates starting with RECEIVED, then ACCEPTED, followed by consensus and execution updates, closing after the transaction is executed.

- **Request:** [`SendAndTrackTxnRequest`](https://thru.org/docs/api-ref/grpc/messages/thru/services/v1/send-and-track-txn-request.md)
- **Response:** [`SendAndTrackTxnResponse`](https://thru.org/docs/api-ref/grpc/messages/thru/services/v1/send-and-track-txn-response.md)

**Try it live:** gRPC-Web `POST https://grpc-web.alphanet.thruput.org` (`thru.services.v1.CommandService/SendAndTrackTxn`) with request body:

```json
{
"transaction": "<base64-encoded signed transaction bytes>"
}
```
