Mobile (WalletConnect)
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. |
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 builds this link for you:
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.