> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hedera.com/llms.txt
> Use this file to discover all available pages before exploring further.

# TransactionBody

A single transaction. All transaction types are possible here.

| Field                       | Type                                  | Description                                                                                                                                                                               |
| --------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `transactionID`             | TransactionID                         | The ID for this transaction, which includes the payer's account (the account paying the transaction fee). If two transactions have the same transactionID, they won't both have an effect |
| `nodeAccountID`             | AccountID                             | The account of the node that submits the client's transaction to the network                                                                                                              |
| `transactionFee`            | uint64                                | The maximum transaction fee the client is willing to pay                                                                                                                                  |
| `transactionValidDuration`  | Duration                              | The transaction is invalid if consensusTimestamp > transactionID.transactionValidStart + transactionValidDuration                                                                         |
| `generateRecord`            | bool                                  | Should a record of this transaction be generated? (A receipt is always generated, but the record is optional)                                                                             |
| `memo`                      | string                                | Any notes or descriptions that should be put into the record (max length 100)                                                                                                             |
| `contractCall`              | ContractCallTransactionBody           | Calls a function of a contract instance                                                                                                                                                   |
| `contractCreateInstance`    | ContractCreateTransactionBody         | Creates a contract instance                                                                                                                                                               |
| `contractUpdateInstance`    | ContractUpdateTransactionBody         | Updates a contract                                                                                                                                                                        |
| `contractDeleteInstance`    | ContractDeleteTransactionBody         | Delete contract and transfer remaining balance into specified account                                                                                                                     |
| `cryptoAddLiveHash`         | CryptoAddLiveHashTransactionBody      | Attach a new livehash to an account                                                                                                                                                       |
| `cryptoApproveAllowance`    | CryptoApproveAllowanceTransactionBody | Adds one or more approved allowances for spenders to transfer the paying account's hbar or tokens.                                                                                        |
| `cryptoDeleteAllowance`     | CryptoDeleteAllowanceTransactionBody  | Deletes one or more approved hbar or token allowances from an owner's account                                                                                                             |
| `cryptoCreateAccount`       | CryptoCreateTransactionBody           | Create a new cryptocurrency account                                                                                                                                                       |
| `cryptoDelete`              | CryptoDeleteTransactionBody           | Delete a cryptocurrency account (mark as deleted, and transfer hbars out)                                                                                                                 |
| `cryptoDeleteLiveHash`      | CryptoDeleteLiveHashTransactionBody   | Remove a livehash from an account                                                                                                                                                         |
| `cryptoTransfer`            | CryptoTransferTransactionBody         | Transfer amount between accounts                                                                                                                                                          |
| `cryptoUpdateAccount`       | CryptoUpdateTransactionBody           | Modify information such as the expiration date for an account                                                                                                                             |
| `fileAppend`                | FileAppendTransactionBody             | Add bytes to the end of the contents of a file                                                                                                                                            |
| `fileCreate`                | FileCreateTransactionBody             | Create a new file                                                                                                                                                                         |
| `fileDelete`                | FileDeleteTransactionBody             | Delete a file (remove contents and mark as deleted until it expires)                                                                                                                      |
| `fileUpdate`                | FileUpdateTransactionBody             | Modify information such as the expiration date for a file                                                                                                                                 |
| `systemDelete`              | SystemDeleteTransactionBody           | Hedera administrative deletion of a file or smart contract                                                                                                                                |
| `systemUndelete`            | SystemUndeleteTransactionBody         | To undelete an entity deleted by SystemDelete                                                                                                                                             |
| `freeze`                    | FreezeTransactionBody                 | Freeze the nodes                                                                                                                                                                          |
| `consensusCreateTopic`      | ConsensusCreateTopicTransactionBody   | Creates a topic                                                                                                                                                                           |
| `consensusUpdateTopic`      | ConsensusUpdateTopicTransactionBody   | Updates a topic                                                                                                                                                                           |
| `consensusDeleteTopic`      | ConsensusDeleteTopicTransactionBody   | Deletes a topic                                                                                                                                                                           |
| `consensusSubmitMessage`    | ConsensusSubmitMessageTransactionBody | Submits message to a topic                                                                                                                                                                |
| `uncheckedSubmit`           | UncheckedSubmitBody                   |                                                                                                                                                                                           |
| `tokenCreation`             | TokenCreateTransactionBody            | Creates a token instance                                                                                                                                                                  |
| `tokenTransfers`            | TokenTransfersTransactionBody         | Transfers tokens between accounts                                                                                                                                                         |
| `tokenFreeze`               | TokenFreezeAccountTransactionBody     | Freezes account not to be able to transact with a token                                                                                                                                   |
| `tokenUnfreeze`             | TokenUnfreezeAccountTransactionBody   | Unfreezes account for a token                                                                                                                                                             |
| `tokenGrantKyc`             | TokenGrantKycTransactionBody          | Grants KYC to an account for a token                                                                                                                                                      |
| `tokenRevokeKyc`            | TokenRevokeKycTransactionBody         | Revokes KYC of an account for a token                                                                                                                                                     |
| `tokenDeletion`             | TokenDeleteTransactionBody            | Deletes a token instance                                                                                                                                                                  |
| `tokenUpdate`               | TokenUpdateTransactionBody            | Updates a token instance                                                                                                                                                                  |
| `tokenMint`                 | TokenMintTransactionBody              | Mints new tokens to a token's treasury account                                                                                                                                            |
| `tokenBurn`                 | TokenBurnTransactionBody              | Burns tokens from a token's treasury account                                                                                                                                              |
| `tokenWipe`                 | TokenWipeAccountTransactionBody       | Wipes amount of tokens from an account                                                                                                                                                    |
| `tokenAssociate`            | TokenAssociateTransactionBody         | Associate tokens to an account                                                                                                                                                            |
| `tokenDissociate`           | TokenDissociateTransactionBody        | Dissociate tokens from an account                                                                                                                                                         |
| `token_fee_schedule_update` | TokenFeeScheduleUpdateTransactionBody | Updates a token's custom fee schedule                                                                                                                                                     |
| `token_pause`               | TokenPauseTransactionBody             | Pauses the Token                                                                                                                                                                          |
| `token_unpause`             | TokenUnpauseTransactionBody           | Unpauses the Token                                                                                                                                                                        |
| `scheduleCreate`            | ScheduleCreateTransactionBody         | Creates a scheduled transaction instance                                                                                                                                                  |
| `scheduleDelete`            | ScheduleDeleteTransactionBody         | Deletes a scheduled transaction instance                                                                                                                                                  |
| `scheduleSign`              | ScheduleSignTransactionBody           | Signs a scheduled transaction instance                                                                                                                                                    |
| `cryptoAdjustAllowance`     | CryptoAdjustAllowanceTransactionBody  | Adjusts the approved allowance for a spender to transfer the paying account's hbar or tokens                                                                                              |
| `cryptoApproveAllowance`    | CryptoApproveAllowanceTransactionBody | Adds one or more approved allowances for spenders to transfer the paying account's hbar or tokens                                                                                         |
