# TransactionBuilder · FT4 TypeScript client · Chromia Docs (concept)

> type TransactionBuilder = { add : (
        operation: Operation,
        config?: OperationConfig ,
    ) => TransactionBuilder ; addSigners : (...keyStor

Source: https://docs.chromia.com/pages/ft4-ts-client/types/transaction-builder.TransactionBuilder/

Type Alias

# TransactionBuilder

On this page

* [Properties](#properties)
* [add](#add)
* [addSigners](#addsigners)
* [build](#build)
* [buildAndSend](#buildandsend)
* [buildAndSendWithAnchoring](#buildandsendwithanchoring)
* [session](#session)

```signature
type TransactionBuilder = {
    add: (
        operation: Operation,
        config?: OperationConfig,
    ) => TransactionBuilder;
    addSigners: (...keyStores: FtKeyStore[]) => TransactionBuilder;
    build: () => Promise<SignedTransaction>;
    buildAndSend: () => Web3PromiEvent<
        TransactionWithReceipt,
        { built: SignedTransaction; sent: Buffer },
    >;
    buildAndSendWithAnchoring: () => Web3PromiEvent<
        AnchoringTransactionWithReceipt,
        { built: SignedTransaction; confirmed: TransactionReceipt; sent: Buffer },
    >;
    session: IClient;
}
```

## Properties

### add

```signature
add: (operation: Operation, config?: OperationConfig) => TransactionBuilder
```

Adds an operation to include in the final transaction

#### Type Declaration

* ```signature
  (operation: Operation, config?: OperationConfig): TransactionBuilder
  ```

  + #### Parameters

    - operation: Operation

      the operation to add to the transaction
    - `Optional`config: [OperationConfig](https://docs.chromia.com/pages/ft4-ts-client/types/transaction-builder.OperationConfig/)

      a configuration object that will be used for this operation when building the transaction

    #### Returns [TransactionBuilder](https://docs.chromia.com/pages/ft4-ts-client/types/transaction-builder.TransactionBuilder/)

    an instance of the transaction builder object

### addSigners

```signature
addSigners: (...keyStores: FtKeyStore[]) => TransactionBuilder
```

Add key stores that will also be included as signers to this transaction.
If `build` is called, the key stores will also be used to sign the transaction

#### Type Declaration

* ```signature
  (...keyStores: FtKeyStore[]): TransactionBuilder
  ```

  + #### Parameters

    - ...keyStores: [FtKeyStore](https://docs.chromia.com/pages/ft4-ts-client/interfaces/authentication.FtKeyStore/)[]

      the key stores to use for signing

    #### Returns [TransactionBuilder](https://docs.chromia.com/pages/ft4-ts-client/types/transaction-builder.TransactionBuilder/)

    an instance of the transaction builder object

### build

```signature
build: () => Promise<SignedTransaction>
```

Builds a transaction containing the previously added transactions, as well
as any authorization operations as needed, and signs it using the same key
handlers that were used to authorize the operations, as well as any
explicitly added key handlers.

#### Type Declaration

* ```signature
  (): Promise<SignedTransaction>
  ```

  + #### Returns Promise<SignedTransaction>

    A promised containing the signed transaction

### buildAndSend

```signature
buildAndSend: () => Web3PromiEvent<
    TransactionWithReceipt,
    { built: SignedTransaction; sent: Buffer },
>
```

Build the transaction and submits it to the blockchain.

Will emit events when the transaction is built, and when it is sent
(containing the transaction RID).

Will return when transaction is included in a block (confirmed), or is rejected.

#### Type Declaration

* ```signature
  (): Web3PromiEvent<
      TransactionWithReceipt,
      { built: SignedTransaction; sent: Buffer },
  >
  ```

  + #### Returns Web3PromiEvent<     [TransactionWithReceipt](https://docs.chromia.com/pages/ft4-ts-client/types/transaction-builder.TransactionWithReceipt/),     { built: SignedTransaction; sent: Buffer }, >

    an object containing the signed transaction and its receipt

### buildAndSendWithAnchoring

```signature
buildAndSendWithAnchoring: () => Web3PromiEvent<
    AnchoringTransactionWithReceipt,
    { built: SignedTransaction; confirmed: TransactionReceipt; sent: Buffer },
>
```

Build the transaction, submits it to the blockchain and wait until it
has been anchored in cluster and system anchoring chains.

Will emit events when the transaction is built, when it is sent
(containing the transaction RID), and when it is included in a
block (confirmed).

Will trigger any registered `OnAnchoredHandler`s before returning.

#### Type Declaration

* ```signature
  (): Web3PromiEvent<
      AnchoringTransactionWithReceipt,
      { built: SignedTransaction; confirmed: TransactionReceipt; sent: Buffer },
  >
  ```

  + #### Returns Web3PromiEvent<     [AnchoringTransactionWithReceipt](https://docs.chromia.com/pages/ft4-ts-client/types/transaction-builder.AnchoringTransactionWithReceipt/),     { built: SignedTransaction; confirmed: TransactionReceipt; sent: Buffer }, >

    an object containing the signed transaction and its receipt

### session

```signature
session: IClient
```

[View this page on docs.chromia.com](https://docs.chromia.com/pages/ft4-ts-client/types/transaction-builder.TransactionBuilder.html)Generated API reference, mirrored from the live docs
