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

# Handlers Introduction

<Card title="Recommended: JavaScript SDK with React Hooks" icon="react" color="#4779FE">
  For new React apps, we recommend the JavaScript SDK with React Hooks (`@dynamic-labs-sdk/react-hooks`) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the [React quickstart (JavaScript SDK)](/javascript/reference/react-quickstart) to get started.
</Card>

Handlers is a way to programmatically customize synchronous behaviors in the SDK.
They allow running code synchronously and wait until completion, unlike [**Events**](/react/reference/events/events-introduction) that run a-synchronous and do not block the authentication flow.

Handlers are configured in the DynamicContextProvider:

```tsx theme={"system"}
<DynamicContextProvider
  settings={{
    handlers: {
      // handles callbacks go here
    },
  }}
>
  ...
</DynamicContextProvider>
```

[**handleConnectedWallet**](/react/reference/handlers/handleconnectedwallet): Handler that runs before Dynamic establishes a wallet connection (Connect wallet before the authentication step).
For example This is a good place to run compliance checks.

[**handleAuthenticatedUser**](/react/reference/handlers/handleauthenticateduser): Handler that runs after the user authenticated but before Dynamic's finished the authentication flow.
For example: It is a good place to perform blocking actions with the user on your backend before Dynamic's SDK finished the authentication flow.
