# Classic Transaction

<figure><img src="/files/rocTDXAE6EfrzKihQs7K" alt=""><figcaption></figcaption></figure>

The ClassicTransaction pipeline is a multi-belt pipeline that covers the entire lifecycle process of a Classic Transaction. It implements the following inner pipelines in sequence:

1. Build Transaction
2. Classic Signing Requirements
3. Sign Transaction
4. Submit Transaction

## Input

```typescript
type SorobanTransactionPipelineInput = {
  txInvocation: TransactionInvocation
  operations: xdr.Operation[]
  options?: {
    executionPlugins?: SupportedInnerPlugins[]
  }
}
```

* **txInvocation**: A Transaction Invocation object containing the core parameters to build the transaction, such as fee, source account, signers, etc.
* **operations**:  An array of operations.
* **options**: An optional 'options' object with parameters to customize this transaction's execution. Refer to the 'Options' section down below for further details.

## Options

The options object provided in the input parameter for a Classic Transaction pipeline execution can be used to customize this execution's behavior accordingly.

* **executionsPlugins**: Accepts an array of plugins supported by the Classic Transaction pipeline and its inner pipelines to be used in this single transaction execution. This allows for a single-use customization to be used on target transactions and specific scenarios.

## Supported Plugins

As Classic Transaction is composed of inner pipelines, it supports a more robust plugin integration with three possible ways of customizing the pipeline behavior:

**Classic Pipeline plugin:**

Provided when instantiating the pipeline, plugins that are of type `ClassicTransactionPipelineType` pipeline or `Generic` can be used to modify the main pipeline during the `preProcess`, `postProcess` or `processError` phases.

**Classic Pipeline Supported plugins:**

Provided when instantiating the pipeline, plugins that are of the type of one of the inner pipelines will be included in the inner pipeline during execution.

**Execution Plugins:**

Provided in the input options, plugins that are of the type of one of the inner pipelines will be included in the inner pipeline only during this single execution.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cheesecakelabs.com/stellar-plus/reference/core/pipelines/classic-transaction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
