---
title: Events
sidebar_label: Events
sidebar_position: 5
slug: /contract-api/events
---

# Events

The `cw-ica-controller` contract emits events upon various channel and packet lifecycle events.
I haven't really thought about what events should be emitted, so this is a work in progress and feel free to open
an issue if you have any suggestions. Changes in events will not be considered breaking changes as they are not
stored on the blockchain, thus, can be included in patch releases.

Core IBC already emits events for channel and packet lifecycle events, so we keep the events to a minimum.

The only events emitted by the contract are when an acknowledgement packet is received, so that an external
indexer can index the result of the packet execution.

## Attributes

Whether or not the result of the packet execution was successful, the following attributes are emitted:

|   **Attribute Key**  | **Attribute Value** |
|:--------------------:|:-------------------:|
|   `packet_sequence`  |        String       |
|   `packet_src_port`  |        String       |
| `packet_src_channel` |        String       |

If the packet execution was successful, then the following attributes are also emitted:

|  **Attribute Key**  | **Attribute Value** |
|:-------------------:|:-------------------:|
| `packet_ack_base64` |   Base64 (String)   |

If the packet execution was unsuccessful, then the following attributes are also emitted:

| **Attribute Key** | **Attribute Value** |
|:-----------------:|:-------------------:|
|      `error`      |        String       |
