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

# Deeplink URLs

> Set up and whitelist mobile deeplink URLs for your React Native app using Dynamic, with Expo configuration and testing steps.

In order to use some of our React Native features (such as social connections), you will first
have to set up the list of mobile deeplink URLs Dynamic may use to redirect back to your app.

For security reasons, when deeplinking back to your app, we must verify whether the app's deeplink URL
is included in this list. If it isn't, Dynamic will not perform the deeplink.

## How to set up your app for deeplinking

### Configuring your app's custom scheme

First, you should follow Expo's guide on enabling deeplinking for your app
[here](https://docs.expo.dev/guides/linking/#linking-to-your-app).

### Registering your app's deeplink URL with Dynamic

Afterwards, head to your Dynamic dashboard's
[Security page](https://app.dynamic.xyz/dashboard/security) and enable "Whitelist Mobile Deeplink".
Click "Save changes".

Next, click the cog in this same section to open up the
[Mobile Deeplink URL page](https://app.dynamic.xyz/dashboard/security#mobile-deeplink-urls), and there
you must add your app's deeplink URL with the same custom scheme you configured in the previous step.
It might look something like this: `myappcustomscheme://`.

<Frame>
  <img src="https://mintcdn.com/dynamic-docs/DXbjtpFZjzIwv2VQ/images/dashboard/dashboard-whitelist-deeplink.png?fit=max&auto=format&n=DXbjtpFZjzIwv2VQ&q=85&s=defc3a8f547251f542658143e10d895f" alt="Whitelist deeplink" width="2396" height="260" data-path="images/dashboard/dashboard-whitelist-deeplink.png" />
</Frame>

### Creating a new app bundle

After configuring the deeplink URL, you need to create a new app bundle that includes the deeplink configuration. This is necessary because the native modules and configurations need to be properly set up in the app bundle.

For Expo projects, you have two options:

1. Use [expo prebuild](https://docs.expo.dev/guides/adopting-prebuild/) to generate the native code and then build your app
2. Use [EAS (Expo Application Services)](https://expo.dev/easg) to build your app bundle

## Configuration

Configure your `app.json` or `app.config.js`:

```json theme={"system"}
{
  "expo": {
    "scheme": "myappcustomscheme",
    "slug": "my-app",
    "ios": {
      "bundleIdentifier": "com.mycompany.myapp"
    },
    "android": {
      "package": "com.mycompany.myapp"
    }
  }
}
```

## Testing Deeplinks

### Expo GO (Development Testing)

For development and testing purposes, you can use Expo GO:

1. Add `exp://*` to your deeplink whitelist in the Dynamic dashboard
2. Run your app with `expo start` or `expo start --dev-client`
3. Open the Expo Go app and scan the QR code
4. Test deeplinks by pasting your deeplink URL in a browser

**Note:** This is only for development. For production, you'll need a custom app bundle.

## Next Steps

Once your deeplinks are working correctly, you can:

* [Set up social authentication](/react-native/reference/signup-login/social)
* [Configure embedded wallets](/react-native/wallets/embedded-wallets)
* [Implement custom authentication flows](/overview/authentication/bring-your-own-auth)
