> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bluvo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# transaction.broadcasted

> Sent when a withdrawal is confirmed on-chain

## transaction.broadcasted

Fired when Bluvo's on-chain monitoring (via Ankr) confirms that a withdrawal transaction has been broadcast and confirmed on the blockchain.

### When this event is sent

* The withdrawal transaction appears on-chain with a confirmed hash
* Ankr's blockchain monitoring detects the transaction

### Payload

```json Example payload theme={null}
{
  "event": "transaction.broadcasted",
  "eventId": "txn_ghi789",
  "timestamp": "2026-04-21T12:00:00.000Z",
  "data": {
    "transaction": {
      "id": "txn_ghi789",
      "recordId": "3f2a1b4c-5d6e-4f70-8a9b-0c1d2e3f4a5b",
      "walletId": "wal_abc123",
      "quoteId": "quot_def456",
      "exchange": "coinbase",
      "asset": "BTC",
      "amount": "0.1",
      "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
      "network": "Bitcoin"
    },
    "onChain": {
      "hash": "0xabc123def456...",
      "addressFrom": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18",
      "contractAddress": null,
      "confirmedAt": "2026-04-21T12:03:00.000Z"
    }
  }
}
```

### Fields

| Field                          | Type                  | Description                                                                          |
| ------------------------------ | --------------------- | ------------------------------------------------------------------------------------ |
| `data.transaction.id`          | `string`              | Bluvo transaction identifier                                                         |
| `data.transaction.recordId`    | `string`              | Bluvo record identifier — matches the `id` returned by the withdraw execute endpoint |
| `data.transaction.walletId`    | `string`              | Source wallet                                                                        |
| `data.transaction.quoteId`     | `string`              | Quote this transaction was created from                                              |
| `data.transaction.exchange`    | `string`              | Exchange identifier                                                                  |
| `data.transaction.asset`       | `string`              | Asset ticker                                                                         |
| `data.transaction.amount`      | `string`              | Withdrawal amount                                                                    |
| `data.transaction.address`     | `string`              | Destination address                                                                  |
| `data.transaction.network`     | `string \| undefined` | Blockchain network                                                                   |
| `data.onChain.hash`            | `string`              | On-chain transaction hash                                                            |
| `data.onChain.addressFrom`     | `string`              | Sender address on-chain                                                              |
| `data.onChain.contractAddress` | `string \| null`      | Contract address (for token transfers, `null` for native transfers)                  |
| `data.onChain.confirmedAt`     | `string`              | ISO 8601 timestamp of on-chain confirmation                                          |

<Info>
  This event confirms the withdrawal has landed on-chain. Use the `onChain.hash` to link to a block explorer for your users.
</Info>

<Info>
  If on-chain verification times out (e.g., exchange delays broadcast), an `error.fatal` event is sent instead.
</Info>
