> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://v3.viem.sh/api/mcp` to find what you need.

# Provider.createEmitter

:::info
`Provider.createEmitter` is a re-export of ox's [`Provider.createEmitter`](https://oxlib.sh/api/Provider/createEmitter). Refer to the ox documentation for the full reference.
:::

Creates an EIP-1193 flavored event emitter to be injected onto a Provider.

## Imports

```ts
import { Provider } from 'viem/utils'
```

## Examples

```ts twoslash
// @noErrors
import { Provider, RpcRequest, RpcResponse } from 'viem/utils' // [!code focus]

// 1. Instantiate a Provider Emitter. // [!code focus]
const emitter = Provider.createEmitter() // [!code focus]

const store = RpcRequest.createStore()

const provider = Provider.from({
  // 2. Pass the Emitter to the Provider. // [!code focus]
  ...emitter, // [!code focus]
  async request(args) {
    return await fetch('https://1.rpc.thirdweb.com', {
      body: JSON.stringify(store.prepare(args)),
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      }
    })
      .then((res) => res.json())
      .then(RpcResponse.parse)
  }
})

// 3. Emit Provider Events. // [!code focus]
emitter.emit('accountsChanged', ['0x...']) // [!code focus]
```

## Definition

```ts
function createEmitter<eventMap>(): Emitter<eventMap>
```

## Return Type

An event emitter.

`Emitter<eventMap>`
