> **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.

# Uninstall Filter \[filter.uninstall]

Destroys a filter and returns whether it was uninstalled.

## Usage

This example destroys a filter and returns whether it was uninstalled.

:::code-group
```ts twoslash [example.ts]
import { Actions } from 'viem'
import { client } from './viem.config'

const filter = await client.block.createFilter()

const uninstalled = await client.filter.uninstall({ filter })
// @log: true
```

```ts twoslash [viem.config.ts] filename="viem.config.ts"
import { Client, http, publicActions } from 'viem'
import { mainnet } from 'viem/chains'

export const client = Client.create({
  chain: mainnet,
  transport: http(),
}).extend(publicActions())
```
:::

### Standalone Action

Call `Actions.filter.uninstall` directly by passing the Client as the first argument.

:::code-group
```ts twoslash [example.ts]
import { Actions } from 'viem'
import { client } from './viem.config'

const filter = await Actions.block.createFilter(client)

const uninstalled = await Actions.filter.uninstall(client, { filter })
// @log: true
```

```ts twoslash [viem.config.ts] filename="viem.config.ts"
import { Client, http } from 'viem'
import { mainnet } from 'viem/chains'

export const client = Client.create({
  chain: mainnet,
  transport: http(),
})
```
:::

## Return Value

`boolean`

Whether the filter was uninstalled.

## Parameters

### filter

* **Type:** `Actions.filter.Filter`

The filter to destroy. Its `request` function must use the transport that created the filter ID.

```ts twoslash
import { Actions, Client, http } from 'viem'
import { mainnet } from 'viem/chains'

const client = Client.create({ chain: mainnet, transport: http() })
// ---cut---
const filter = await Actions.block.createFilter(client) // [!code focus]

const uninstalled = await Actions.filter.uninstall(client, { filter })
```
