# Attributes

Arbitrary attributes can be sent with each message. Attributes support `string | number | boolean` values. These can be provided by using the `attributes` property when sending a message.

```typescript
await bus.send(
  new ChargeCreditCard(),
  {
    attributes: {
      ip: '229.40.202.156',
      attempt: 0,
      automatic: true
    }
  }
)
```

Attributes can be accessed as the second parameter of the handler.&#x20;

```typescript
import { MessageAttributes } from '@node-ts/bus-messages'

await Bus.configure()
  .withHandler(
    ChargeCreditCard,
    async (_: ChargeCreditCard, { attributes }: MessageAttributes) => console.log(attributes)
  )
  .initialize()
```
