# Auth Kit

The [Auth Kit](https://github.com/safe-global/safe-core-sdk/tree/main/packages/auth-kit) creates or retrieves an Ethereum address and authenticates a blockchain account using an email address, a social media platform or a crypto wallet address.

## Install dependencies

To add the Auth Kit to your project, run:

```bash
yarn add @safe-global/auth-kit
```

The Auth Kit can integrate several providers in the form of **"packs"**. A pack is a piece of code that works with the chosen provider to give Safe users access to new services.

To use each pack, the right package needs to be installed:

- [Web3Auth](./Web3AuthModalPack.md#install)

## How to use a pack

To start working with the packs, instantiate the main class and call the `init()` method afterwards.

```typescript
const pack = new Web3AuthModalPack(packConfig)
await pack.init(packInitOptions)
```

After the initialization, use the methods in the pack to interact with the chosen provider.

There are some common methods (`signIn()`, `signOut()`, etc.) that can be called regardless of the package being used.

The kit creates a common interface that any pack should implement. Check the [`AuthKitBasePack`](./AuthKitBasePack.md) abstract class to get more details.