<!-- source: https://secondlayer.tools/docs/api-reference#index-event-object -->

## The Index event object

One decoded event, flat. The universal columns are always there; the rest depend on `event_type`, and a type's own columns are always set for its rows.

| Field | Type | Description |
| --- | --- | --- |
| `cursor` | string | `<block_height>:<event_index>`. Pass as `cursor`. |
| `block_height` | integer | Stacks block the row landed in. |
| `block_time` | string · date-time · nullable | That block's timestamp, ISO 8601 UTC. |
| `tx_id` | string | Transaction id, `0x`-prefixed hex. |
| `tx_index` | integer | The transaction's position in its block. |
| `event_index` | integer | The event's position in the block. With `block_height`, the cursor. |
| `event_type` | enum | The event type. Decides which columns are set. Values: `ft_transfer`, `nft_transfer`, `stx_transfer`, `stx_mint`, `stx_burn`, `stx_lock`, `ft_mint`, `ft_burn`, `nft_mint`, `nft_burn`, `print`. |
| `contract_id` | string · nullable | Contract that emitted the event. `null` for STX transfers, mints, burns and locks. |
| `asset_identifier` | string · nullable | `<contract>::<asset>`, on ft and nft types. |
| `sender` | string · nullable | Sending principal. The locked address on `stx_lock`. |
| `recipient` | string · nullable | Receiving principal. |
| `amount` | string · nullable | Amount as a decimal string (bigint-safe). microSTX on STX types. |
| `value` | string · nullable | NFT id as hex-encoded Clarity, on nft types. |
| `memo` | string · nullable | Transfer memo, on `stx_transfer`. |
| `payload` | object | Decoded print payload on `print`; `{ unlock_height }` on `stx_lock`. |
| `tx_sender` | string · nullable | Submitting transaction's sender. Only with `tx_context=true`. |
| `tx_type` | string · nullable | Submitting transaction's type. Only with `tx_context=true`. |
| `tx_status` | string · nullable | Submitting transaction's status. Only with `tx_context=true`. |
| `tx_contract_id` | string · nullable | Contract the submitting transaction called or deployed. Only with `tx_context=true`. |
| `tx_function_name` | string · nullable | Function the submitting transaction called. Only with `tx_context=true`. |

```json
{
  "cursor": "9048921:2",
  "block_height": 9048921,
  "block_time": "2026-09-23T15:09:05.000Z",
  "tx_id": "0x55249ff4ec221ff6852b7fa37cf3729c7c50bc63f0da760f96e6886e2e8a911e",
  "tx_index": 4,
  "event_index": 2,
  "event_type": "stx_transfer",
  "contract_id": null,
  "sender": "SPX4KR3G5Z1SZT4RVF4ATHV4ZP4KXPWSZ4424W6K",
  "recipient": "SP2Z2CBMGWB9MQZAF5Z8X56KS69XRV3SJF4WKJ7J9",
  "amount": "50",
  "memo": null
}
```
