# Introduction

The Expo SDK, `@onefootprint/footprint-expo`, runs the Footprint onboarding flow inside your Expo app. It works like the web integration, but opens the flow in an in-app browser (webview) instead of an iframe.

This package cannot run in the Expo Go app because it requires custom native code. Rebuild your app with `npx expo prebuild`, as described in the Expo guide [Adding custom native code](https://docs.expo.dev/workflow/customizing/).

## Minimum version requirements

Check your environment against these versions before installing:

| Dependency | Minimum version       |
| ---------- | --------------------- |
| Expo       | Last 3 major versions |

The flow opens in the device browser and does not load on versions older than those listed under [Browser support](/articles/sdks/javascript-typescript-introduction#browser-support).

## Installation

1. Install `@onefootprint/footprint-expo` version 3 or higher.

```bash
npm install @onefootprint/footprint-expo
```

2. Install the required peer dependencies.

```bash
npm install expo-linking expo-web-browser @fingerprintjs/fingerprintjs-pro-react-native
```

3. On iOS, install the pods.

```bash
npx pod-install
```

4. On Android, add the Fingerprint Pro Maven repository to the `allprojects` block in `android/build.gradle`.

```groovy
allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://www.jitpack.io' }
        maven { url 'https://maven.fpregistry.io/releases' }
    }
}
```

`@fingerprintjs/fingerprintjs-pro-react-native` hosts its Android SDK on a custom Maven repository. Without this repository, the Android build fails with dependency resolution errors.

## Next steps

* [Onboarding (KYC/KYB)](/articles/sdks/expo-onboarding) starts an onboarding from your app and handles the validation token it returns.
* [WebView integration](/articles/sdks/expo-webview) renders the flow in a native sheet you control instead of an in-app browser.