# useRevokeResolverRootRoles

Hook for revoking resolver root roles.

## Import

```tsx
import { useRevokeResolverRootRoles } from "@ensforge/react";
```

## Usage

```tsx
function Component() {
  const mutation = useRevokeResolverRootRoles();

  return (
    <button
      disabled={mutation.isWaiting}
      onClick={() =>
        mutation.mutate({
          name: "example.eth",
          account: "value",
          roles: 1n,
        })
      }
    >
      Submit
    </button>
  );
}
```

## Parameters

```ts
import type { EnsMutationOptions } from "@ensforge/react";
```

The hook accepts an optional `EnsMutationOptions` object.

### retry

`false | Schedule<unknown, Failure> | undefined`

An Effect schedule used to retry typed failures. It defaults to `false`. Only retry writes that are
known to be safe and idempotent.

### onExit

`(exit: Exit<Success, Failure>, parameters: Parameters) => void`

Receives the complete Effect `Exit` and the exact mutation parameters after execution. Use
`Exit.match` or `Exit.isSuccess` to handle both outcomes without losing typed failures.

See [Mutation Options](/react/api/mutation-options) for schedules, provider defaults, and per-call
`onExit` handlers.

## Mutation Parameters

### name

`string`

ENS name used by the query or mutation.

### account

`string`

Account used for authorization and execution.

### roles

`bigint`

Role bitmask to inspect, grant, or revoke.

## Return Type

Returns [`EnsMutationResult`](/react/api/mutation-result) with `mutate`, `mutateAsync`, `mutateEffect`, native `AsyncResult` state, data, cause, interruption, and reset.

```ts
type Result = ReturnType<typeof useRevokeResolverRootRoles>;
```

## Effect Atom

```ts
import { createRevokeResolverRootRolesMutationAtom } from "@ensforge/react/atoms";

const atom = createRevokeResolverRootRolesMutationAtom(sdk);
```

The hook uses this atom with the SDK and registry from `EnsforgeProvider`.

## Action

* [`revokeResolverRootRoles`](/core/api/actions/permissions/revoke-resolver-root-roles)
* [`sdk.permissions.revokeResolverRootRoles`](/sdk/api/permissions/revoke-resolver-root-roles)
