diff --git a/apps/mobile/src/app/(home)/_layout.tsx b/apps/mobile/src/app/(home)/_layout.tsx
index 22370e0bc..04ba90983 100644
--- a/apps/mobile/src/app/(home)/_layout.tsx
+++ b/apps/mobile/src/app/(home)/_layout.tsx
@@ -163,6 +163,8 @@ export default function StackLayout() {
options={{ header: () => NavigationDeveloperConsole }}
/>
+ NavigationBackSimple }} />
+ NavigationBackSimple }} />
);
}
diff --git a/apps/mobile/src/app/(home)/hardware-wallets.tsx b/apps/mobile/src/app/(home)/hardware-wallets.tsx
new file mode 100644
index 000000000..cfb620d18
--- /dev/null
+++ b/apps/mobile/src/app/(home)/hardware-wallets.tsx
@@ -0,0 +1,107 @@
+import { useRef, useState } from 'react';
+import { ScrollView } from 'react-native-gesture-handler';
+import { useSafeAreaInsets } from 'react-native-safe-area-context';
+
+import { NotifyUserSheet, OptionData } from '@/components/sheets/notify-user-sheet.layout';
+import { Trans, t } from '@lingui/macro';
+import { useTheme } from '@shopify/restyle';
+
+import {
+ Box,
+ Cell,
+ LogoHardwareBitkey,
+ LogoHardwareFoundation,
+ LogoHardwareLedger,
+ LogoHardwareOnekey,
+ LogoHardwareRyder,
+ LogoHardwareTrezor,
+ QuestionCircleIcon,
+ SheetRef,
+ Text,
+ Theme,
+ TouchableOpacity,
+} from '@leather.io/ui/native';
+
+export default function HardwareWalletsScreen() {
+ const { bottom } = useSafeAreaInsets();
+ const theme = useTheme();
+ const notifyUserSheetRef = useRef(null);
+ const [optionData, setOptionData] = useState(null);
+ function onOpenNotificationsSheet(option: OptionData) {
+ setOptionData(option);
+ notifyUserSheetRef.current?.present();
+ }
+ function onCloseNotificationsSheet() {
+ setOptionData(null);
+ }
+ function getUnavailableFeatures() {
+ const UNAVAILABLE_FEATURES = {
+ bitgo: { title: t`Bitkey`, Icon: LogoHardwareBitkey },
+ capsule: { title: t`Ledger`, Icon: LogoHardwareLedger },
+ copper: { title: t`OneKey`, Icon: LogoHardwareOnekey },
+ fireblocks: { title: t`Passport`, Icon: LogoHardwareFoundation },
+ foredefi: { title: t`Ryder`, Icon: LogoHardwareRyder },
+ portal: { title: t`Trezor`, Icon: LogoHardwareTrezor },
+ };
+
+ return UNAVAILABLE_FEATURES;
+ }
+ return (
+ <>
+
+
+
+ {
+ // TODO: show some kind of a helper here
+ }}
+ p="5"
+ position="absolute"
+ right={-theme.spacing['5']}
+ zIndex={10}
+ top={theme.spacing['1']}
+ >
+
+
+
+
+ CONNECT
+ HARDWARE DEVICE
+
+
+
+ {Object.entries(getUnavailableFeatures()).map(featureEntry => {
+ const [featureKey, feature] = featureEntry;
+ const hardwareWalletName = feature.title;
+ function onPress() {
+ onOpenNotificationsSheet({
+ title: t`Connect hardware wallet: ${hardwareWalletName}`,
+ id: featureKey,
+ });
+ }
+ return (
+ |
+ );
+ })}
+
+
+
+
+
+ >
+ );
+}
diff --git a/apps/mobile/src/app/(home)/mpc-wallets.tsx b/apps/mobile/src/app/(home)/mpc-wallets.tsx
new file mode 100644
index 000000000..2231a6023
--- /dev/null
+++ b/apps/mobile/src/app/(home)/mpc-wallets.tsx
@@ -0,0 +1,111 @@
+import { useRef, useState } from 'react';
+import { ScrollView } from 'react-native-gesture-handler';
+import { useSafeAreaInsets } from 'react-native-safe-area-context';
+
+import { NotifyUserSheet, OptionData } from '@/components/sheets/notify-user-sheet.layout';
+import { Trans, t } from '@lingui/macro';
+import { useTheme } from '@shopify/restyle';
+
+import {
+ Box,
+ Cell,
+ LogoMPCBitgo,
+ LogoMPCCapsule,
+ LogoMPCCopper,
+ LogoMPCFireblocks,
+ LogoMPCFordefi,
+ LogoMPCPortal,
+ LogoMPCPrivy,
+ LogoMPCQredo,
+ QuestionCircleIcon,
+ SheetRef,
+ Text,
+ Theme,
+ TouchableOpacity,
+} from '@leather.io/ui/native';
+
+export default function MPCWalletsScreen() {
+ const { bottom } = useSafeAreaInsets();
+ const theme = useTheme();
+ const notifyUserSheetRef = useRef(null);
+ const [optionData, setOptionData] = useState(null);
+ function onOpenNotificationsSheet(option: OptionData) {
+ setOptionData(option);
+ notifyUserSheetRef.current?.present();
+ }
+ function onCloseNotificationsSheet() {
+ setOptionData(null);
+ }
+ function getUnavailableFeatures() {
+ const UNAVAILABLE_FEATURES = {
+ bitgo: { title: t`BitGo`, Icon: LogoMPCBitgo },
+ capsule: { title: t`Capsule`, Icon: LogoMPCCapsule },
+ copper: { title: t`Copper`, Icon: LogoMPCCopper },
+ fireblocks: { title: t`Fireblocks`, Icon: LogoMPCFireblocks },
+ foredefi: { title: t`Foredefi`, Icon: LogoMPCFordefi },
+ portal: { title: t`Portal`, Icon: LogoMPCPortal },
+ privy: { title: t`Privy`, Icon: LogoMPCPrivy },
+ qredo: { title: t`Qredo`, Icon: LogoMPCQredo },
+ };
+
+ return UNAVAILABLE_FEATURES;
+ }
+ return (
+ <>
+
+
+
+ {
+ // TODO: show some kind of a helper here
+ }}
+ p="5"
+ position="absolute"
+ right={-theme.spacing['5']}
+ zIndex={10}
+ top={theme.spacing['1']}
+ >
+
+
+
+
+ CONNECT
+ MPC WALLET
+
+
+
+ {Object.entries(getUnavailableFeatures()).map(featureEntry => {
+ const [featureKey, feature] = featureEntry;
+ const mpcWalletName = feature.title;
+ function onPress() {
+ onOpenNotificationsSheet({
+ title: t`Connect MPC wallet: ${mpcWalletName}`,
+ id: featureKey,
+ });
+ }
+ return (
+ |
+ );
+ })}
+
+
+
+
+
+ >
+ );
+}
diff --git a/apps/mobile/src/assets/unavailable-feature.png b/apps/mobile/src/assets/unavailable-feature.png
new file mode 100644
index 000000000..3affbd4aa
Binary files /dev/null and b/apps/mobile/src/assets/unavailable-feature.png differ
diff --git a/apps/mobile/src/components/add-wallet/add-wallet-sheet.layout.tsx b/apps/mobile/src/components/add-wallet/add-wallet-sheet.layout.tsx
index fa2541352..0e9bcd289 100644
--- a/apps/mobile/src/components/add-wallet/add-wallet-sheet.layout.tsx
+++ b/apps/mobile/src/components/add-wallet/add-wallet-sheet.layout.tsx
@@ -6,9 +6,11 @@ import Animated, {
useSharedValue,
} from 'react-native-reanimated';
+import { AppRoutes } from '@/routes';
import { t } from '@lingui/macro';
import { useTheme } from '@shopify/restyle';
import { Image } from 'expo-image';
+import { useRouter } from 'expo-router';
import {
ArrowRotateClockwiseIcon,
@@ -32,32 +34,6 @@ import { AddWalletListItem } from './add-wallet-list-item';
const AnimatedBox = Animated.createAnimatedComponent(Box);
-function getUnavailableFeatures(theme: Theme) {
- const UNAVAILABLE_FEATURES = {
- hardwareWallet: {
- title: t`Connect hardware wallet`,
- subtitle: t`Ledger, Trezor, Ryder and more`,
- icon: ,
- },
- emailRestore: {
- title: t`Create or restore via email`,
- subtitle: t`Access custodial wallet`,
- icon: ,
- },
- mpcWallet: {
- title: t`Connect MPC wallet`,
- subtitle: t`Import existing accounts`,
- icon: ,
- },
- watchOnlyWallet: {
- title: t`Create watch-only wallet`,
- subtitle: t`No key needed`,
- icon: ,
- },
- };
- return UNAVAILABLE_FEATURES;
-}
-
interface AddWalletSheetBaseProps {
addWalletSheetRef: RefObject;
}
@@ -78,7 +54,7 @@ export function AddWalletSheetLayout({
const [moreOptionsVisible, setMoreOptionsVisible] = useState(false);
const animatedIndex = useSharedValue(CLOSED_ANIMATED_SHARED_VALUE);
const theme = useTheme();
-
+ const router = useRouter();
function openOptions() {
setMoreOptionsVisible(!moreOptionsVisible);
}
@@ -87,6 +63,42 @@ export function AddWalletSheetLayout({
marginBottom: interpolate(animatedIndex.value, [-1, 0], [200, 0], Extrapolation.CLAMP),
}));
+ function getUnavailableFeatures(theme: Theme) {
+ const UNAVAILABLE_FEATURES = {
+ hardwareWallet: {
+ title: t`Connect hardware wallet`,
+ subtitle: t`Ledger, Trezor, Ryder and more`,
+ icon: ,
+ onPress() {
+ router.navigate(AppRoutes.HardwareWallets);
+ addWalletSheetRef.current?.close();
+ },
+ },
+ emailRestore: {
+ title: t`Create or restore via email`,
+ subtitle: t`Access custodial wallet`,
+ icon: ,
+ onPress: undefined,
+ },
+ mpcWallet: {
+ title: t`Connect MPC wallet`,
+ subtitle: t`Import existing accounts`,
+ icon: ,
+ onPress() {
+ router.navigate(AppRoutes.MpcWallets);
+ addWalletSheetRef.current?.close();
+ },
+ },
+ watchOnlyWallet: {
+ title: t`Create watch-only wallet`,
+ subtitle: t`No key needed`,
+ icon: ,
+ onPress: undefined,
+ },
+ };
+ return UNAVAILABLE_FEATURES;
+ }
+
return (
{
const [featureKey, feature] = featureEntry;
+ function fallbackOnPress() {
+ onOpenNotificationsSheet({ title: feature.title, id: featureKey });
+ }
return (
- onOpenNotificationsSheet({ title: feature.title, id: featureKey })
- }
+ onPress={feature.onPress ?? fallbackOnPress}
title={feature.title}
subtitle={feature.subtitle}
icon={feature.icon}
diff --git a/apps/mobile/src/components/recover-wallet/recover-wallet-sheet.tsx b/apps/mobile/src/components/recover-wallet/recover-wallet-sheet.tsx
index f3b9011ce..13dc93f24 100644
--- a/apps/mobile/src/components/recover-wallet/recover-wallet-sheet.tsx
+++ b/apps/mobile/src/components/recover-wallet/recover-wallet-sheet.tsx
@@ -6,11 +6,6 @@ import { LockIcon, SheetRef } from '@leather.io/ui/native';
import { InputSheet } from '../sheets/input-sheet.layout';
-export interface OptionData {
- title: string;
- id: string;
-}
-
interface RecoverWalletSheetProps {
recoverWalletSheetRef: RefObject;
passphrase: string;
diff --git a/apps/mobile/src/components/sheets/input-sheet.layout.tsx b/apps/mobile/src/components/sheets/input-sheet.layout.tsx
index c57897f60..94afe9b09 100644
--- a/apps/mobile/src/components/sheets/input-sheet.layout.tsx
+++ b/apps/mobile/src/components/sheets/input-sheet.layout.tsx
@@ -14,11 +14,6 @@ import {
import { TextInput } from '../text-input';
-export interface OptionData {
- title: string;
- id: string;
-}
-
interface InputSheetProps {
sheetRef: RefObject;
initialValue: string;
diff --git a/apps/mobile/src/components/sheets/notify-user-sheet.layout.tsx b/apps/mobile/src/components/sheets/notify-user-sheet.layout.tsx
index 38464046a..7cfbbaa3e 100644
--- a/apps/mobile/src/components/sheets/notify-user-sheet.layout.tsx
+++ b/apps/mobile/src/components/sheets/notify-user-sheet.layout.tsx
@@ -4,17 +4,16 @@ import { usePushNotifications } from '@/hooks/use-push-notifications';
import { useSettings } from '@/store/settings/settings';
import { t } from '@lingui/macro';
import { useTheme } from '@shopify/restyle';
+import { Image } from 'expo-image';
import {
BellAlarmIcon,
Box,
Button,
- CloseIcon,
Sheet,
SheetRef,
Text,
Theme,
- TouchableOpacity,
getButtonTextColor,
} from '@leather.io/ui/native';
@@ -48,28 +47,23 @@ export function NotifyUserSheet({
onDismiss={onCloseNotificationsSheet}
ref={notifyUserSheetRef}
>
+
- {
- notifyUserSheetRef.current?.close();
- }}
- p="5"
- right={0}
- top={0}
- zIndex={10}
- position="absolute"
- >
-
-
- {t`Notify me when ready`}
- {t`"${title}" isn't ready yet.`}
+ {title}
+
+ {t`This feature is not available yet, but we can notify when it’s ready.`}
+
}
buttonState="default"
- title={t`Notify me when it's ready`}
+ title={t`Notify me`}
/>
diff --git a/apps/mobile/src/locales/en/messages.po b/apps/mobile/src/locales/en/messages.po
index 29c43c6ec..0066e292e 100644
--- a/apps/mobile/src/locales/en/messages.po
+++ b/apps/mobile/src/locales/en/messages.po
@@ -13,10 +13,6 @@ msgstr ""
"Language-Team: \n"
"Plural-Forms: \n"
-#: src/components/sheets/notify-user-sheet.layout.tsx:66
-msgid "\"{title}\" isn't ready yet."
-msgstr "\"{title}\" isn't ready yet."
-
#: src/features/settings/account-identifier/account-identifier-cell.tsx:30
msgid "{caption} blockchain"
msgstr "{caption} blockchain"
@@ -29,6 +25,14 @@ msgstr "{hiddenAccountsLength} hidden accounts"
msgid "<0>BACK UP YOUR0><1>SECRET KEY1>"
msgstr "<0>BACK UP YOUR0><1>SECRET KEY1>"
+#: src/app/(home)/hardware-wallets.tsx:71
+msgid "<0>CONNECT0><1>HARDWARE DEVICE1>"
+msgstr "<0>CONNECT0><1>HARDWARE DEVICE1>"
+
+#: src/app/(home)/mpc-wallets.tsx:75
+msgid "<0>CONNECT0><1>MPC WALLET1>"
+msgstr "<0>CONNECT0><1>MPC WALLET1>"
+
#: src/app/(home)/recover-wallet.tsx:124
msgid "<0>ENTER YOUR0><1>SECRET KEY1>"
msgstr "<0>ENTER YOUR0><1>SECRET KEY1>"
@@ -41,7 +45,7 @@ msgstr "<0>SECURE0><1>YOUR WALLET1>"
msgid "5 enabled"
msgstr "5 enabled"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:44
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:79
msgid "Access custodial wallet"
msgstr "Access custodial wallet"
@@ -95,7 +99,7 @@ msgstr "Add wallet"
msgid "Add Wallet"
msgstr "Add Wallet"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:107
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:119
msgid "Add wallet to \"Use case\""
msgstr "Add wallet to \"Use case\""
@@ -197,7 +201,7 @@ msgstr "Avatar"
#: src/app/(home)/recover-wallet.tsx:188
#: src/components/create-new-wallet/mnemonic-display.tsx:13
-#: src/components/recover-wallet/recover-wallet-sheet.tsx:28
+#: src/components/recover-wallet/recover-wallet-sheet.tsx:23
msgid "BIP39 passphrase"
msgstr "BIP39 passphrase"
@@ -226,11 +230,23 @@ msgstr "Bitcoin unit updated"
msgid "BitcoinScratchPad"
msgstr "BitcoinScratchPad"
+#: src/app/(home)/mpc-wallets.tsx:41
+msgid "BitGo"
+msgstr "BitGo"
+
+#: src/app/(home)/hardware-wallets.tsx:39
+msgid "Bitkey"
+msgstr "Bitkey"
+
#: src/components/browser/browser-empty-state.tsx:155
#: src/components/sheets/warning-sheet.layout.tsx:74
msgid "Cancel"
msgstr "Cancel"
+#: src/app/(home)/mpc-wallets.tsx:42
+msgid "Capsule"
+msgstr "Capsule"
+
#: src/components/wallet-settings/wallet-name-sheet.tsx:19
msgid "Change name"
msgstr "Change name"
@@ -257,18 +273,26 @@ msgid "Collectibles 🖼️"
msgstr "Collectibles 🖼️"
#: src/app/(home)/settings/wallet/configure/[wallet]/[account]/choose-avatar.tsx:76
-#: src/components/recover-wallet/recover-wallet-sheet.tsx:31
+#: src/components/recover-wallet/recover-wallet-sheet.tsx:26
msgid "Confirm"
msgstr "Confirm"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:38
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:69
msgid "Connect hardware wallet"
msgstr "Connect hardware wallet"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:48
+#: src/app/(home)/hardware-wallets.tsx:82
+msgid "Connect hardware wallet: {hardwareWalletName}"
+msgstr "Connect hardware wallet: {hardwareWalletName}"
+
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:84
msgid "Connect MPC wallet"
msgstr "Connect MPC wallet"
+#: src/app/(home)/mpc-wallets.tsx:86
+msgid "Connect MPC wallet: {mpcWalletName}"
+msgstr "Connect MPC wallet: {mpcWalletName}"
+
#: src/components/browser/browser-empty-state.tsx:179
msgid "Connected"
msgstr "Connected"
@@ -290,19 +314,23 @@ msgstr "Conversion unit"
msgid "Conversion unit updated"
msgstr "Conversion unit updated"
+#: src/app/(home)/mpc-wallets.tsx:43
+msgid "Copper"
+msgstr "Copper"
+
#: src/components/create-new-wallet/mnemonic-display.tsx:48
msgid "Copy"
msgstr "Copy"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:113
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:125
msgid "Create a new Bitcoin and Stacks wallet"
msgstr "Create a new Bitcoin and Stacks wallet"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:112
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:124
msgid "Create new wallet"
msgstr "Create new wallet"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:43
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:78
msgid "Create or restore via email"
msgstr "Create or restore via email"
@@ -315,7 +343,7 @@ msgstr "Create or restore wallet"
msgid "Create wallet"
msgstr "Create wallet"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:53
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:93
msgid "Create watch-only wallet"
msgstr "Create watch-only wallet"
@@ -421,10 +449,18 @@ msgstr "Failed to get push token for push notification!"
msgid "Fees"
msgstr "Fees"
+#: src/app/(home)/mpc-wallets.tsx:44
+msgid "Fireblocks"
+msgstr "Fireblocks"
+
#: src/app/(home)/create-new-wallet.tsx:97
msgid "For your eyes only"
msgstr "For your eyes only"
+#: src/app/(home)/mpc-wallets.tsx:45
+msgid "Foredefi"
+msgstr "Foredefi"
+
#: src/app/(home)/developer-console/wallet-manager.tsx:38
msgid "Generating…"
msgstr "Generating…"
@@ -465,8 +501,8 @@ msgstr "Hide account"
msgid "I've backed it up"
msgstr "I've backed it up"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:49
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:119
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:85
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:131
msgid "Import existing accounts"
msgstr "Import existing accounts"
@@ -482,11 +518,12 @@ msgstr "Invalid words: {joinedInvalidWords}"
msgid "Learn"
msgstr "Learn"
+#: src/app/(home)/hardware-wallets.tsx:40
#: src/components/widgets/accounts/ledger-badge.tsx:19
msgid "Ledger"
msgstr "Ledger"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:39
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:70
msgid "Ledger, Trezor, Ryder and more"
msgstr "Ledger, Trezor, Ryder and more"
@@ -504,7 +541,7 @@ msgid "Mainnet, testnet or signet"
msgstr "Mainnet, testnet or signet"
#: src/app/(home)/settings/index.tsx:91
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:124
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:136
msgid "More options"
msgstr "More options"
@@ -539,7 +576,7 @@ msgstr "Network changed"
msgid "Networks"
msgstr "Networks"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:54
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:94
msgid "No key needed"
msgstr "No key needed"
@@ -552,18 +589,18 @@ msgstr "None/Awaiting verification/Verified"
msgid "Notifications"
msgstr "Notifications"
-#: src/components/sheets/notify-user-sheet.layout.tsx:72
-msgid "Notify me when it's ready"
-msgstr "Notify me when it's ready"
-
-#: src/components/sheets/notify-user-sheet.layout.tsx:65
-msgid "Notify me when ready"
-msgstr "Notify me when ready"
+#: src/components/sheets/notify-user-sheet.layout.tsx:66
+msgid "Notify me"
+msgstr "Notify me"
#: src/components/widgets/accounts/cards/import-wallet-card.tsx:17
msgid "One place, all wallets"
msgstr "One place, all wallets"
+#: src/app/(home)/hardware-wallets.tsx:41
+msgid "OneKey"
+msgstr "OneKey"
+
#: src/app/(home)/settings/wallet/configure/[wallet]/[account]/choose-avatar.tsx:63
msgid "Or choose one of your collectibles"
msgstr "Or choose one of your collectibles"
@@ -572,10 +609,14 @@ msgstr "Or choose one of your collectibles"
msgid "Page"
msgstr "Page"
-#: src/components/recover-wallet/recover-wallet-sheet.tsx:30
+#: src/components/recover-wallet/recover-wallet-sheet.tsx:25
msgid "Passphrase"
msgstr "Passphrase"
+#: src/app/(home)/hardware-wallets.tsx:42
+msgid "Passport"
+msgstr "Passport"
+
#: src/app/(home)/recover-wallet.tsx:137
msgid "Paste"
msgstr "Paste"
@@ -590,6 +631,14 @@ msgstr "Paste or type a Secret Key to add its associated wallet."
msgid "Placeholder"
msgstr "Placeholder"
+#: src/app/(home)/mpc-wallets.tsx:46
+msgid "Portal"
+msgstr "Portal"
+
+#: src/app/(home)/mpc-wallets.tsx:47
+msgid "Privy"
+msgstr "Privy"
+
#: src/components/sheets/warning-sheet.layout.tsx:69
msgid "Proceed"
msgstr "Proceed"
@@ -606,6 +655,10 @@ msgstr "Push and email notifications"
msgid "Push notifications"
msgstr "Push notifications"
+#: src/app/(home)/mpc-wallets.tsx:48
+msgid "Qredo"
+msgstr "Qredo"
+
#: src/components/action-bar/container.tsx:175
msgid "Receive"
msgstr "Receive"
@@ -635,10 +688,14 @@ msgstr "Remove wallet"
msgid "Rename wallet"
msgstr "Rename wallet"
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:118
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:130
msgid "Restore wallet"
msgstr "Restore wallet"
+#: src/app/(home)/hardware-wallets.tsx:43
+msgid "Ryder"
+msgstr "Ryder"
+
#: src/components/wallet-settings/account-name-sheet.tsx:22
#: src/components/wallet-settings/wallet-name-sheet.tsx:22
msgid "Save"
@@ -780,6 +837,10 @@ msgstr "Theme updated"
msgid "Theme, bitcoin unit and more"
msgstr "Theme, bitcoin unit and more"
+#: src/components/sheets/notify-user-sheet.layout.tsx:59
+msgid "This feature is not available yet, but we can notify when it’s ready."
+msgstr "This feature is not available yet, but we can notify when it’s ready."
+
#: src/components/browser/browser-empty-state.tsx:29
#: src/components/browser/browser-empty-state.tsx:30
#: src/components/browser/browser-empty-state.tsx:31
@@ -839,6 +900,10 @@ msgstr "Total rewards"
msgid "transferBtc"
msgstr "transferBtc"
+#: src/app/(home)/hardware-wallets.tsx:44
+msgid "Trezor"
+msgstr "Trezor"
+
#: src/app/(home)/developer-console/bitcoin-scratch-pad.tsx:42
msgid "Type here to translate!"
msgstr "Type here to translate!"
diff --git a/apps/mobile/src/locales/pseudo-locale/messages.po b/apps/mobile/src/locales/pseudo-locale/messages.po
index fc0391ff6..f8fa74d03 100644
--- a/apps/mobile/src/locales/pseudo-locale/messages.po
+++ b/apps/mobile/src/locales/pseudo-locale/messages.po
@@ -13,10 +13,6 @@ msgstr ""
"Language-Team: \n"
"Plural-Forms: \n"
-#: src/components/sheets/notify-user-sheet.layout.tsx:66
-msgid "\"{title}\" isn't ready yet."
-msgstr ""
-
#: src/features/settings/account-identifier/account-identifier-cell.tsx:30
msgid "{caption} blockchain"
msgstr ""
@@ -29,6 +25,14 @@ msgstr ""
msgid "<0>BACK UP YOUR0><1>SECRET KEY1>"
msgstr ""
+#: src/app/(home)/hardware-wallets.tsx:71
+msgid "<0>CONNECT0><1>HARDWARE DEVICE1>"
+msgstr ""
+
+#: src/app/(home)/mpc-wallets.tsx:75
+msgid "<0>CONNECT0><1>MPC WALLET1>"
+msgstr ""
+
#: src/app/(home)/recover-wallet.tsx:124
msgid "<0>ENTER YOUR0><1>SECRET KEY1>"
msgstr ""
@@ -41,7 +45,7 @@ msgstr ""
msgid "5 enabled"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:44
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:79
msgid "Access custodial wallet"
msgstr ""
@@ -95,7 +99,7 @@ msgstr ""
msgid "Add Wallet"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:107
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:119
msgid "Add wallet to \"Use case\""
msgstr ""
@@ -197,7 +201,7 @@ msgstr ""
#: src/app/(home)/recover-wallet.tsx:188
#: src/components/create-new-wallet/mnemonic-display.tsx:13
-#: src/components/recover-wallet/recover-wallet-sheet.tsx:28
+#: src/components/recover-wallet/recover-wallet-sheet.tsx:23
msgid "BIP39 passphrase"
msgstr ""
@@ -226,11 +230,23 @@ msgstr ""
msgid "BitcoinScratchPad"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:41
+msgid "BitGo"
+msgstr ""
+
+#: src/app/(home)/hardware-wallets.tsx:39
+msgid "Bitkey"
+msgstr ""
+
#: src/components/browser/browser-empty-state.tsx:155
#: src/components/sheets/warning-sheet.layout.tsx:74
msgid "Cancel"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:42
+msgid "Capsule"
+msgstr ""
+
#: src/components/wallet-settings/wallet-name-sheet.tsx:19
msgid "Change name"
msgstr ""
@@ -257,18 +273,26 @@ msgid "Collectibles 🖼️"
msgstr ""
#: src/app/(home)/settings/wallet/configure/[wallet]/[account]/choose-avatar.tsx:76
-#: src/components/recover-wallet/recover-wallet-sheet.tsx:31
+#: src/components/recover-wallet/recover-wallet-sheet.tsx:26
msgid "Confirm"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:38
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:69
msgid "Connect hardware wallet"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:48
+#: src/app/(home)/hardware-wallets.tsx:82
+msgid "Connect hardware wallet: {hardwareWalletName}"
+msgstr ""
+
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:84
msgid "Connect MPC wallet"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:86
+msgid "Connect MPC wallet: {mpcWalletName}"
+msgstr ""
+
#: src/components/browser/browser-empty-state.tsx:179
msgid "Connected"
msgstr ""
@@ -290,19 +314,23 @@ msgstr ""
msgid "Conversion unit updated"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:43
+msgid "Copper"
+msgstr ""
+
#: src/components/create-new-wallet/mnemonic-display.tsx:48
msgid "Copy"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:113
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:125
msgid "Create a new Bitcoin and Stacks wallet"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:112
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:124
msgid "Create new wallet"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:43
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:78
msgid "Create or restore via email"
msgstr ""
@@ -315,7 +343,7 @@ msgstr ""
msgid "Create wallet"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:53
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:93
msgid "Create watch-only wallet"
msgstr ""
@@ -421,10 +449,18 @@ msgstr ""
msgid "Fees"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:44
+msgid "Fireblocks"
+msgstr ""
+
#: src/app/(home)/create-new-wallet.tsx:97
msgid "For your eyes only"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:45
+msgid "Foredefi"
+msgstr ""
+
#: src/app/(home)/developer-console/wallet-manager.tsx:38
msgid "Generating…"
msgstr ""
@@ -465,8 +501,8 @@ msgstr ""
msgid "I've backed it up"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:49
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:119
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:85
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:131
msgid "Import existing accounts"
msgstr ""
@@ -482,11 +518,12 @@ msgstr ""
msgid "Learn"
msgstr ""
+#: src/app/(home)/hardware-wallets.tsx:40
#: src/components/widgets/accounts/ledger-badge.tsx:19
msgid "Ledger"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:39
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:70
msgid "Ledger, Trezor, Ryder and more"
msgstr ""
@@ -504,7 +541,7 @@ msgid "Mainnet, testnet or signet"
msgstr ""
#: src/app/(home)/settings/index.tsx:91
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:124
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:136
msgid "More options"
msgstr ""
@@ -539,7 +576,7 @@ msgstr ""
msgid "Networks"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:54
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:94
msgid "No key needed"
msgstr ""
@@ -552,18 +589,18 @@ msgstr ""
msgid "Notifications"
msgstr ""
-#: src/components/sheets/notify-user-sheet.layout.tsx:72
-msgid "Notify me when it's ready"
-msgstr ""
-
-#: src/components/sheets/notify-user-sheet.layout.tsx:65
-msgid "Notify me when ready"
+#: src/components/sheets/notify-user-sheet.layout.tsx:66
+msgid "Notify me"
msgstr ""
#: src/components/widgets/accounts/cards/import-wallet-card.tsx:17
msgid "One place, all wallets"
msgstr ""
+#: src/app/(home)/hardware-wallets.tsx:41
+msgid "OneKey"
+msgstr ""
+
#: src/app/(home)/settings/wallet/configure/[wallet]/[account]/choose-avatar.tsx:63
msgid "Or choose one of your collectibles"
msgstr ""
@@ -572,10 +609,14 @@ msgstr ""
msgid "Page"
msgstr ""
-#: src/components/recover-wallet/recover-wallet-sheet.tsx:30
+#: src/components/recover-wallet/recover-wallet-sheet.tsx:25
msgid "Passphrase"
msgstr ""
+#: src/app/(home)/hardware-wallets.tsx:42
+msgid "Passport"
+msgstr ""
+
#: src/app/(home)/recover-wallet.tsx:137
msgid "Paste"
msgstr ""
@@ -590,6 +631,14 @@ msgstr ""
msgid "Placeholder"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:46
+msgid "Portal"
+msgstr ""
+
+#: src/app/(home)/mpc-wallets.tsx:47
+msgid "Privy"
+msgstr ""
+
#: src/components/sheets/warning-sheet.layout.tsx:69
msgid "Proceed"
msgstr ""
@@ -606,6 +655,10 @@ msgstr ""
msgid "Push notifications"
msgstr ""
+#: src/app/(home)/mpc-wallets.tsx:48
+msgid "Qredo"
+msgstr ""
+
#: src/components/action-bar/container.tsx:175
msgid "Receive"
msgstr ""
@@ -635,10 +688,14 @@ msgstr ""
msgid "Rename wallet"
msgstr ""
-#: src/components/add-wallet/add-wallet-sheet.layout.tsx:118
+#: src/components/add-wallet/add-wallet-sheet.layout.tsx:130
msgid "Restore wallet"
msgstr ""
+#: src/app/(home)/hardware-wallets.tsx:43
+msgid "Ryder"
+msgstr ""
+
#: src/components/wallet-settings/account-name-sheet.tsx:22
#: src/components/wallet-settings/wallet-name-sheet.tsx:22
msgid "Save"
@@ -778,6 +835,10 @@ msgstr ""
msgid "Theme, bitcoin unit and more"
msgstr ""
+#: src/components/sheets/notify-user-sheet.layout.tsx:59
+msgid "This feature is not available yet, but we can notify when it’s ready."
+msgstr ""
+
#: src/components/browser/browser-empty-state.tsx:29
#: src/components/browser/browser-empty-state.tsx:30
#: src/components/browser/browser-empty-state.tsx:31
@@ -837,6 +898,10 @@ msgstr ""
msgid "transferBtc"
msgstr ""
+#: src/app/(home)/hardware-wallets.tsx:44
+msgid "Trezor"
+msgstr ""
+
#: src/app/(home)/developer-console/bitcoin-scratch-pad.tsx:42
msgid "Type here to translate!"
msgstr ""
diff --git a/apps/mobile/src/routes.ts b/apps/mobile/src/routes.ts
index 0da6a1d20..f3b78e8a0 100644
--- a/apps/mobile/src/routes.ts
+++ b/apps/mobile/src/routes.ts
@@ -14,6 +14,8 @@ export enum AppRoutes {
RecoverWallet = '/recover-wallet',
SecureYourWallet = '/secure-your-wallet',
GeneratingWallet = '/generating-wallet',
+ MpcWallets = '/mpc-wallets',
+ HardwareWallets = '/hardware-wallets',
// Settings
Settings = '/settings',
diff --git a/packages/ui/src/assets/icons/logo-hardware-bitkey-24-24.svg b/packages/ui/src/assets/icons/logo-hardware-bitkey-24-24.svg
new file mode 100644
index 000000000..bd5d73da6
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-hardware-bitkey-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-hardware-foundation-24-24.svg b/packages/ui/src/assets/icons/logo-hardware-foundation-24-24.svg
new file mode 100644
index 000000000..9e32b8a3d
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-hardware-foundation-24-24.svg
@@ -0,0 +1,12 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-hardware-ledger-24-24.svg b/packages/ui/src/assets/icons/logo-hardware-ledger-24-24.svg
new file mode 100644
index 000000000..a81e7fffc
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-hardware-ledger-24-24.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-hardware-onekey-24-24.svg b/packages/ui/src/assets/icons/logo-hardware-onekey-24-24.svg
new file mode 100644
index 000000000..9f42ac1e7
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-hardware-onekey-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-hardware-ryder-24-24.svg b/packages/ui/src/assets/icons/logo-hardware-ryder-24-24.svg
new file mode 100644
index 000000000..fad12cfd8
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-hardware-ryder-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-hardware-trezor-24-24.svg b/packages/ui/src/assets/icons/logo-hardware-trezor-24-24.svg
new file mode 100644
index 000000000..964c12972
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-hardware-trezor-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-bitgo-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-bitgo-24-24.svg
new file mode 100644
index 000000000..f5f7395fe
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-bitgo-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-capsule-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-capsule-24-24.svg
new file mode 100644
index 000000000..15e22f280
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-capsule-24-24.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-copper-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-copper-24-24.svg
new file mode 100644
index 000000000..b87551a3f
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-copper-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-fireblocks-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-fireblocks-24-24.svg
new file mode 100644
index 000000000..d58e4ed6a
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-fireblocks-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-fordefi-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-fordefi-24-24.svg
new file mode 100644
index 000000000..a71d6a68d
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-fordefi-24-24.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-portal-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-portal-24-24.svg
new file mode 100644
index 000000000..d288de1dc
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-portal-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-privy-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-privy-24-24.svg
new file mode 100644
index 000000000..68fd3b654
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-privy-24-24.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/packages/ui/src/assets/icons/logo-mpc-qredo-24-24.svg b/packages/ui/src/assets/icons/logo-mpc-qredo-24-24.svg
new file mode 100644
index 000000000..69b55b428
--- /dev/null
+++ b/packages/ui/src/assets/icons/logo-mpc-qredo-24-24.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/packages/ui/src/components/cell/cell.native.tsx b/packages/ui/src/components/cell/cell.native.tsx
index 2afcec2e7..47b04caa6 100644
--- a/packages/ui/src/components/cell/cell.native.tsx
+++ b/packages/ui/src/components/cell/cell.native.tsx
@@ -3,6 +3,7 @@ import { Switch } from 'react-native';
import { ResponsiveValue, useTheme } from '@shopify/restyle';
import { Box, ChevronRightIcon, IconProps, Text, Theme, TouchableOpacity } from '../../../native';
+import { TouchableOpacityProps } from '../button/touchable-opacity.native';
type RegularCellVariant = 'active' | 'inactive' | 'critical';
type SwitchCellVariant = 'switch';
@@ -53,7 +54,7 @@ interface BaseCell {
Icon?: React.FC;
}
-type CellProps = BaseCell & (RegularCell | SwitchCell);
+type CellProps = BaseCell & (RegularCell | SwitchCell) & TouchableOpacityProps;
export function Cell({ title, subtitle, onPress, Icon, ...props }: CellProps) {
const theme = useTheme();
@@ -61,6 +62,7 @@ export function Cell({ title, subtitle, onPress, Icon, ...props }: CellProps) {
const _variant = props.variant ?? 'active';
return (
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-hardware-foundation.native.tsx b/packages/ui/src/icons/logo-hardware-foundation.native.tsx
new file mode 100644
index 000000000..52f62abc9
--- /dev/null
+++ b/packages/ui/src/icons/logo-hardware-foundation.native.tsx
@@ -0,0 +1,10 @@
+import LogoHardwareFoundationLogo from '../assets/icons/logo-hardware-foundation-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoHardwareFoundation({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-hardware-ledger.native.tsx b/packages/ui/src/icons/logo-hardware-ledger.native.tsx
new file mode 100644
index 000000000..c2af17c4a
--- /dev/null
+++ b/packages/ui/src/icons/logo-hardware-ledger.native.tsx
@@ -0,0 +1,10 @@
+import LogoHardwareLedgerLogo from '../assets/icons/logo-hardware-ledger-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoHardwareLedger({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-hardware-onekey.native.tsx b/packages/ui/src/icons/logo-hardware-onekey.native.tsx
new file mode 100644
index 000000000..a3c91071e
--- /dev/null
+++ b/packages/ui/src/icons/logo-hardware-onekey.native.tsx
@@ -0,0 +1,10 @@
+import LogoHardwareOnekeyLogo from '../assets/icons/logo-hardware-onekey-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoHardwareOnekey({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-hardware-ryder.native.tsx b/packages/ui/src/icons/logo-hardware-ryder.native.tsx
new file mode 100644
index 000000000..99be4cdb8
--- /dev/null
+++ b/packages/ui/src/icons/logo-hardware-ryder.native.tsx
@@ -0,0 +1,10 @@
+import LogoHardwareRyderLogo from '../assets/icons/logo-hardware-ryder-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoHardwareRyder({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-hardware-trezor.native.tsx b/packages/ui/src/icons/logo-hardware-trezor.native.tsx
new file mode 100644
index 000000000..0a94d238a
--- /dev/null
+++ b/packages/ui/src/icons/logo-hardware-trezor.native.tsx
@@ -0,0 +1,10 @@
+import LogoHardwareTrezorLogo from '../assets/icons/logo-hardware-trezor-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoHardwareTrezor({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-bitgo.native.tsx b/packages/ui/src/icons/logo-mpc-bitgo.native.tsx
new file mode 100644
index 000000000..533a5758e
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-bitgo.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCBitgoLogo from '../assets/icons/logo-mpc-bitgo-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCBitgo({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-capsule.native.tsx b/packages/ui/src/icons/logo-mpc-capsule.native.tsx
new file mode 100644
index 000000000..8af49d463
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-capsule.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCCapsuleLogo from '../assets/icons/logo-mpc-capsule-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCCapsule({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-copper.native.tsx b/packages/ui/src/icons/logo-mpc-copper.native.tsx
new file mode 100644
index 000000000..2f5b72700
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-copper.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCCopperLogo from '../assets/icons/logo-mpc-copper-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCCopper({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-fireblocks.native.tsx b/packages/ui/src/icons/logo-mpc-fireblocks.native.tsx
new file mode 100644
index 000000000..10de7dd60
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-fireblocks.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCFireblocksLogo from '../assets/icons/logo-mpc-fireblocks-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCFireblocks({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-fordefi.native.tsx b/packages/ui/src/icons/logo-mpc-fordefi.native.tsx
new file mode 100644
index 000000000..a0de426d0
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-fordefi.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCFordefiLogo from '../assets/icons/logo-mpc-fordefi-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCFordefi({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-portal.native.tsx b/packages/ui/src/icons/logo-mpc-portal.native.tsx
new file mode 100644
index 000000000..34e478446
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-portal.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCPortalLogo from '../assets/icons/logo-mpc-portal-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCPortal({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-privy.native.tsx b/packages/ui/src/icons/logo-mpc-privy.native.tsx
new file mode 100644
index 000000000..f092dcc2e
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-privy.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCPrivyLogo from '../assets/icons/logo-mpc-privy-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCPrivy({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/ui/src/icons/logo-mpc-qredo.native.tsx b/packages/ui/src/icons/logo-mpc-qredo.native.tsx
new file mode 100644
index 000000000..8972e1b3c
--- /dev/null
+++ b/packages/ui/src/icons/logo-mpc-qredo.native.tsx
@@ -0,0 +1,10 @@
+import LogoMPCQredoLogo from '../assets/icons/logo-mpc-qredo-24-24.svg';
+import { Icon, IconProps } from './icon/icon.native';
+
+export function LogoMPCQredo({ variant, ...props }: IconProps) {
+ return (
+
+
+
+ );
+}