# Events

The bank module emits the following events:

### Handlers <a href="#handlers" id="handlers"></a>

#### MsgSend <a href="#msgsend" id="msgsend"></a>

| Type     | Attribute Key | Attribute Value |
| -------- | ------------- | --------------- |
| transfer | recipient     |                 |
| transfer | amount        |                 |
| message  | module        | bank            |
| message  | sender        | send            |
| message  | action        |                 |

#### MsgMultiSend <a href="#msgmultisend" id="msgmultisend"></a>

| Type     | Attribute Key | Attribute Value |
| -------- | ------------- | --------------- |
| transfer | recipient     |                 |
| transfer | amount        |                 |
| message  | module        | bank            |
| message  | sender        | multisend       |
| message  | action        |                 |

### Keeper events <a href="#keeper-events" id="keeper-events"></a>

In addition to handlers events, the bank keeper will produce events when the following methods are called (or any method which ends up calling them)

#### MintCoins <a href="#mintcoins" id="mintcoins"></a>

```json
{
  "type": "coinbase",
  "attributes": [
    {
      "key": "minter",
      "value": "{{sdk.AccAddress of the module minting coins}}",
      "index": true
    },
    {
      "key": "amount",
      "value": "{{sdk.Coins being minted}}",
      "index": true
    }
  ]
}
```

```json
{
  "type": "coin_received",
  "attributes": [
    {
      "key": "receiver",
      "value": "{{sdk.AccAddress of the module minting coins}}",
      "index": true
    },
    {
      "key": "amount",
      "value": "{{sdk.Coins being received}}",
      "index": true
    }
  ]
}
```

#### BurnCoins

```json
{
  "type": "burn",
  "attributes": [
    {
      "key": "burner",
      "value": "{{sdk.AccAddress of the module burning coins}}",
      "index": true
    },
    {
      "key": "amount",
      "value": "{{sdk.Coins being burned}}",
      "index": true
    }
  ]
}
```

```json5
{
  "type": "coin_spent",
  "attributes": [
    {
      "key": "spender",
      "value": "{{sdk.AccAddress of the module burning coins}}",
      "index": true
    },
    {
      "key": "amount",
      "value": "{{sdk.Coins being burned}}",
      "index": true
    }
  ]
}
```

#### addCoins

```json
{
  "type": "coin_received",
  "attributes": [
    {
      "key": "receiver",
      "value": "{{sdk.AccAddress of the address beneficiary of the coins}}",
      "index": true
    },
    {
      "key": "amount",
      "value": "{{sdk.Coins being received}}",
      "index": true
    }
  ]
}
```

#### subUnlockedCoins/DelegateCoins <a href="#subunlockedcoins-delegatecoins" id="subunlockedcoins-delegatecoins"></a>

```json
{
  "type": "coin_spent",
  "attributes": [
    {
      "key": "spender",
      "value": "{{sdk.AccAddress of the address which is spending coins}}",
      "index": true
    },
    {
      "key": "amount",
      "value": "{{sdk.Coins being spent}}",
      "index": true
    }
  ]
}
```
