# ITransactionAgent.StartTransaction(bool, TimeSpan)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.itransactionagent/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.transactions.itransactionagent/methods/)

```csharp
public abstract Task<TransactionInfo> StartTransaction(bool readOnly, TimeSpan timeout)
```

Starts a new transaction

### Parameters

- `readOnly` (`bool`): Whether it is a read-only transaction
- `timeout` (`TimeSpan`): Transaction is automatically aborted if it does not complete within this time

### Returns

Info of the new transaction
