<!-- source: https://secondlayer.tools/docs/api-reference#list-sbtc-events -->

## Decoded sBTC peg events

`GET /v1/index/sbtc/events`

Every decoded `sbtc-registry` print, all topics, one row per event, oldest first: deposits, withdrawal create/accept/reject, signer key rotations and protocol-contract updates. With no cursor or `from_height`, the read covers the last day.

### Filters

| Name | Type | Description |
| --- | --- | --- |
| `topic` | enum | One print topic. Omit for all of them; an unknown topic is refused. Values: `completed-deposit`, `withdrawal-create`, `withdrawal-accept`, `withdrawal-reject`, `key-rotation`, `update-protocol-contract`. |
| `sender` | string | Stacks principal on the event (the withdrawal requester on `withdrawal-create`). Exact match. |
| `request_id` | integer | Withdrawal request id. Exact match. |
| `bitcoin_txid` | string | Bitcoin txid on the event, `0x`-prefixed hex. Exact match. |

### Range and paging

| Name | Type | Description |
| --- | --- | --- |
| `limit` | integer · 1 to 1000 | Page size; capped at 1000. |
| `cursor` | string | `<block_height>:<event_index>` from a previous page's `next_cursor`. Resumes after it. |
| `from_cursor` | string | Same as `cursor`. Mutually exclusive with it and with `from_height`. |
| `from_height` | integer | First block height to read. Mutually exclusive with a cursor. With neither, the read starts one day behind the tip. |
| `to_height` | integer | Last block height to read, inclusive. |
| `confirmed` | boolean | `true` stops the page at the finality boundary, so every row is past the reorg margin. |

### Returns

A cursor envelope; `events` holds `SbtcEvent` objects.

### Responses

- `200` Cursor-paginated envelope
- `304` The page is past finality and matches your `If-None-Match` ETag.
- `400` A parameter, filter, cursor or body field was refused; `code` says which
- `401` This bind requires the instance token, and it was missing or wrong
- `429` Rate limited; retry after `Retry-After` seconds

### Example

```bash
curl https://api.secondlayer.tools/v1/index/sbtc/events \
  -H "Authorization: Bearer $SECONDLAYER_API_KEY"
```

```json
{
  "events": [
    {
      "cursor": "9048486:2",
      "block_height": 9048486,
      "block_time": "2026-09-23T13:10:19.000Z",
      "tx_id": "0x0e09fd3cf7628a2cc81083aa9dbb7eebc7bae5cbe277c370e0f8bfc3d1fe00a9",
      "tx_index": 2,
      "event_index": 2,
      "topic": "withdrawal-create",
      "request_id": 3406,
      "amount": "3127",
      "sender": "SP2ADCJ6606CFHERS3HKABWB6PF5XBANXBQ4GSE86",
      "recipient_btc_version": 4,
      "recipient_btc_hashbytes": "0x9c32e45a19cf9c028bccf12816e62bbfc8eb5fb8",
      "bitcoin_txid": null,
      "output_index": null,
      "sweep_txid": null,
      "burn_hash": null,
      "burn_height": null,
      "signer_bitmap": null,
      "max_fee": "1500",
      "fee": null,
      "governance_contract_type": null,
      "governance_new_contract": null,
      "signer_aggregate_pubkey": null,
      "signer_threshold": null,
      "signer_address": null,
      "signer_keys_count": null
    }
  ],
  "next_cursor": "7960000:42",
  "tip": {
    "block_height": 9048690,
    "finalized_height": 9048457,
    "lag_seconds": 4,
    "source_block_height": 9048692
  },
  "reorgs": [
    {
      "id": "3f16c2c5-9551-4ae9-adb0-923668e5c65e",
      "detected_at": "2026-09-15T15:39:38.129Z",
      "fork_point_height": 8996511,
      "old_index_block_hash": "0x45ba0195071488eda13afa66d8ce8612558a739f781be5a032d96332797c4174",
      "new_index_block_hash": "0xa686ff58e7c5ccb26c850a7eaffa7e7274fcbc081c706344eb6f1e1446023df0",
      "orphaned_range": {
        "from": "8996511:0",
        "to": "8996512:2701"
      },
      "new_canonical_tip": "8996511:0"
    }
  ]
}
```
