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

# Transactions

## Synopsis

Learn about Interchain Accounts transaction execution

## Executing a transaction

As described in [Authentication Modules](/ibc/v5.4.x/apps/interchain-accounts/auth-modules#trysendtx) transactions are executed using the interchain accounts controller API and require a `Base Application` as outlined in [ICS30 IBC Middleware](https://github.com/cosmos/ibc/tree/master/spec/app/ics-030-middleware) to facilitate authentication. The method of authentication remains unspecified to provide flexibility for the authentication module developer.

Transactions are executed via the ICS27 [`SendTx` API](/ibc/v5.4.x/apps/interchain-accounts/auth-modules#trysendtx). This must be invoked through an Interchain Accounts authentication module and follows the outlined path of execution below. Packet relaying semantics provided by the IBC core transport, authentication, and ordering (IBC/TAO) layer are omitted for brevity.

<img src="https://mintcdn.com/cosmos-docs/NPg7EzVmaG87QbbB/ibc/images/02-apps/02-interchain-accounts/images/send-interchain-tx.png?fit=max&auto=format&n=NPg7EzVmaG87QbbB&q=85&s=e9a47bbecacbce89455df9032c35965b" alt="send-interchain-tx.png" width="1921" height="949" data-path="ibc/images/02-apps/02-interchain-accounts/images/send-interchain-tx.png" />

## Atomicity

As the Interchain Accounts module supports the execution of multiple transactions using the Cosmos SDK `Msg` interface, it provides the same atomicity guarantees as Cosmos SDK-based applications, leveraging the [`CacheMultiStore`](/sdk/v0.53/learn/advanced/store#cachemultistore) architecture provided by the [`Context`](/sdk/v0.53/learn/advanced/context) type.

This provides atomic execution of transactions when using Interchain Accounts, where state changes are only committed if all `Msg`s succeed.
