# Deeplinking

Open Joey mobile directly from your app with joey:// and wc: links.

Joey registers two custom URL schemes on iOS and Android: `joey://` and `wc:`. Joey doesn't currently support `https` universal links or Android App Links.

## Pairing links

| Link | Use |
|---|---|
| `joey://settings/wc?uri=<encoded wc URI>` | **Recommended.** Opens Joey and starts pairing. |
| `wc:<topic>@2?relay-protocol=irn&symKey=…` | A raw WalletConnect URI, opened through the `wc:` scheme. |
| `joey://settings/wc` | Opens Joey's WalletConnect screen. Useful to bring Joey to the front after sending a request. |

```ts
const deeplink = `joey://settings/wc?uri=${encodeURIComponent(uri)}`;
window.location.href = deeplink;
```

Always URL-encode the WalletConnect URI. Joey tolerates double-encoded and unencoded URIs, but encoding once is the reliable form.

With wc-client, [`generate`](/docs/integration/actions/generate) builds this link for you:

```ts
import core from '@joey-wallet/wc-client/core';

const { data } = await actions.generate({ walletId: core.constants.wallets.joey.projectId });
if (data) window.location.href = data.deeplink;
```

## Requests after pairing

Requests travel over the WalletConnect relay, not through links. On mobile, after sending a request, you can open `joey://settings/wc` to bring Joey to the front so the user sees it. Joey also accepts WalletConnect's request "wake-up" links and ignores their contents.

## Returning to your app

Set `metadata.redirect` (`native` and/or `universal`) in your WalletConnect metadata. After a sign-in that started in an external browser, Joey uses it to send the user back.

## Joey's built-in browser

Inside Joey's built-in dApp browser (the Explore tab), `wc:` links, `joey://settings/wc?uri=` links and WalletConnect pop-ups are caught and paired directly, so the user stays in the browser. The built-in browser doesn't inject a wallet provider, so dApps connect over WalletConnect there too.

## Notes

- Watch-only accounts can't connect.
- Any link Joey doesn't recognise shows an "invalid link" message and opens the home screen.
