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

# offEvent

# offEvent

Removes an event listener from Dynamic client events. This function unsubscribes a previously registered event listener from the specified Dynamic client event.

## Usage

```javascript theme={"system"}
import { offEvent, onEvent } from '@dynamic-labs-sdk/client';

// Create listener function
const handleLogout = () => {
  console.log('User logged out');
};

// Add listener
onEvent({ event: 'logout', listener: handleLogout });

// Later, remove the listener
offEvent({ event: 'logout', listener: handleLogout });
```

## Parameters

| Parameter  | Type                       | Description                                                             |
| ---------- | -------------------------- | ----------------------------------------------------------------------- |
| `event`    | `string`                   | The event name to remove the listener from.                             |
| `listener` | `Function`                 | The callback function to remove.                                        |
| `client`   | `DynamicClient` (optional) | The Dynamic client instance. Only required when using multiple clients. |

## Returns

`void`

## Important Notes

* The `listener` parameter must be the exact same function reference that was used when adding the listener
* Anonymous functions cannot be removed with `offEvent` - store a reference to the function first

## Examples

### Basic event cleanup

```javascript theme={"system"}
import { onEvent, offEvent } from '@dynamic-labs-sdk/client';

const logoutHandler = () => {
  console.log('User logged out');
  // Clean up resources
};

// Subscribe to event
onEvent({ event: 'logout', listener: logoutHandler });

// Unsubscribe when no longer needed
const cleanup = () => {
  offEvent({ event: 'logout', listener: logoutHandler });
};
```

### Using returned cleanup function from onEvent

```javascript theme={"system"}
import { onEvent } from '@dynamic-labs-sdk/client';

// onEvent returns a cleanup function, which is often more convenient
const unsubscribe = onEvent({
  event: 'logout',
  listener: () => console.log('Logout!'),
});

// Later, call the returned function to unsubscribe
unsubscribe();
```

## React

Use [`useOnEvent`](/javascript/reference/client/on-event#react-patterns) from [`@dynamic-labs-sdk/react-hooks`](/javascript/reference/react-hooks) to subscribe in components — it handles cleanup for you. See [onEvent — React patterns](/javascript/reference/client/on-event#react-patterns) for examples.

You can also return the unsubscribe function from `onEvent` as the `useEffect` cleanup (no `offEvent` needed for that case). Use `offEvent` when you must remove a listener by reference outside a `useEffect` (for example, a class component or imperative code).

## Related functions

* [onEvent](/javascript/reference/client/on-event) - Subscribe to events
