# useSetPrimaryName

Sets an account's forward address record, L2 reverse name, and L1 reverse name.

## Import

```ts
import { useSetPrimaryName } from "@thenamespace/ens-components-v2/hooks";
```

## Usage

```tsx
const primaryName = useSetPrimaryName();
primaryName.mutate({
  account,
  input: "example.eth",
  resolverAddress,
  execution: { strategy: "auto" },
});
```

## Parameters

```ts
interface UseSetPrimaryNameParameters {
  l1ReverseRegistrarAddress?: Address;
  l2ReverseRegistrarAddress?: Address;
  mutation?: UseMutationOptions;
}
```

Reverse registrar addresses default to the provider configuration.

## Mutation Variables

```ts
interface SetPrimaryNameVariables {
  account: Address;
  input: string | null | undefined;
  owner?: Address;
  resolverAddress: Address;
  execution?: PreparedWriteExecutionOptions;
}
```

`owner` defaults to `account`.

## Return Type

`UseMutationResult<ExecuteContractWritesResult, SetPrimaryNameError, SetPrimaryNameVariables>`

With `strategy: "auto"`, supported wallets submit all three writes atomically;
other wallets submit them in dependency order.

## Actions

Uses `prepareSetAddressRecordWrite`, `prepareSetL2PrimaryNameWrite`,
`prepareSetL1PrimaryNameWrite`, and `useExecuteContractWrites`.
