# useSignIn()

The `useSignIn()` hook provides access to the [SignInFuture](https://clerk.com/docs/nextjs/reference/objects/sign-in-future.md) object, which allows you to check the current state of a sign-in attempt and manage the sign-in flow. You can use this to create a custom sign-in flow.

## Returns

| Name          | Type                                                                                      | Description                                                                                                         |
| ------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `errors`      | [SignInErrors](https://clerk.com/docs/nextjs/reference/types/errors.md)                   | The errors that occurred during the last fetch of the underlying `SignInFuture` resource.                           |
| `fetchStatus` | `"idle" | "fetching"`                                                          | The fetch status of the underlying `SignInFuture` resource.                                                         |
| `signIn`      | [SignInFutureResource](https://clerk.com/docs/nextjs/reference/objects/sign-in-future.md) | An instance representing the currently active `SignInFuture`, with new APIs designed specifically for custom flows. |

> The `SignInFuture` instance referenced by `signIn` does not have a stable identity, and will change as the sign-in flow progresses. Make sure you provide it in dependency arrays when using hooks such as `useEffect`, `useCallback`, or `useMemo`.

## Examples

For example usage of the `useSignIn()` hook, see the [Build your own UI](https://clerk.com/docs/guides/development/custom-flows/overview.md?sdk=nextjs) guides.

---

## Sitemap

[Overview of all docs pages](https://clerk.com/docs/llms.txt)
