From 8fbb7a68c44769b4f052476a2a42bd8ebeb93a6a Mon Sep 17 00:00:00 2001 From: paaao <167348323+realpaaao@users.noreply.github.com> Date: Tue, 11 Aug 2026 10:05:21 +0200 Subject: [PATCH 1/2] feat: add Vultisig wallet --- .changeset/vultisig-wallet-contribution.md | 5 +++ packages/example/src/wagmi.ts | 2 + packages/rainbowkit/src/locales/en_US.json | 17 +++++++ .../src/wallets/walletConnectors/index.ts | 2 + .../vultisigWallet/vultisigWallet.svg | 35 +++++++++++++++ .../vultisigWallet/vultisigWallet.ts | 44 +++++++++++++++++++ site/data/en-US/docs/custom-wallet-list.mdx | 6 +++ 7 files changed, 111 insertions(+) create mode 100644 .changeset/vultisig-wallet-contribution.md create mode 100644 packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.svg create mode 100644 packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.ts diff --git a/.changeset/vultisig-wallet-contribution.md b/.changeset/vultisig-wallet-contribution.md new file mode 100644 index 0000000000..dabd6c20e9 --- /dev/null +++ b/.changeset/vultisig-wallet-contribution.md @@ -0,0 +1,5 @@ +--- +"@rainbow-me/rainbowkit": patch +--- + +Added Vultisig wallet support with the `vultisigWallet` wallet connector. diff --git a/packages/example/src/wagmi.ts b/packages/example/src/wagmi.ts index 868f6101db..ce6da29c87 100644 --- a/packages/example/src/wagmi.ts +++ b/packages/example/src/wagmi.ts @@ -59,6 +59,7 @@ import { trustWallet, uniswapWallet, valoraWallet, + vultisigWallet, walletConnectWallet, wigwamWallet, ctrlWallet, @@ -272,6 +273,7 @@ export const config = getDefaultConfig({ uniswapWallet, universalProfilesWallet, valoraWallet, + vultisigWallet, wigwamWallet, ctrlWallet, xPortalWallet, diff --git a/packages/rainbowkit/src/locales/en_US.json b/packages/rainbowkit/src/locales/en_US.json index a64c4de6ff..d0f64adcce 100644 --- a/packages/rainbowkit/src/locales/en_US.json +++ b/packages/rainbowkit/src/locales/en_US.json @@ -1598,6 +1598,23 @@ "description": "Once you log in, click below to refresh the browser and load up the extension." } } + }, + + "vultisig": { + "extension": { + "step1": { + "title": "Install the Vultisig extension", + "description": "We recommend pinning Vultisig to your taskbar for easier access to your vault." + }, + "step2": { + "title": "Create or import a vault", + "description": "Vultisig secures vaults with threshold signatures across your devices instead of a seed phrase." + }, + "step3": { + "title": "Refresh your browser", + "description": "Once you set up your vault, click below to refresh the browser and load up the extension." + } + } } } } diff --git a/packages/rainbowkit/src/wallets/walletConnectors/index.ts b/packages/rainbowkit/src/wallets/walletConnectors/index.ts index 67232f9f50..10971c8e76 100644 --- a/packages/rainbowkit/src/wallets/walletConnectors/index.ts +++ b/packages/rainbowkit/src/wallets/walletConnectors/index.ts @@ -65,6 +65,7 @@ import { trustWallet } from './trustWallet/trustWallet'; import { universalProfilesWallet } from './universalProfilesWallet/universalProfilesWallet'; import { uniswapWallet } from './uniswapWallet/uniswapWallet'; import { valoraWallet } from './valoraWallet/valoraWallet'; +import { vultisigWallet } from './vultisigWallet/vultisigWallet'; import { walletConnectWallet } from './walletConnectWallet/walletConnectWallet'; import { wigwamWallet } from './wigwamWallet/wigwamWallet'; import { ctrlWallet, xdefiWallet } from './ctrlWallet/ctrlWallet'; @@ -143,6 +144,7 @@ export { universalProfilesWallet, uniswapWallet, valoraWallet, + vultisigWallet, walletConnectWallet, wigwamWallet, xdefiWallet, diff --git a/packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.svg b/packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.svg new file mode 100644 index 0000000000..ba1d7f56f6 --- /dev/null +++ b/packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.ts b/packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.ts new file mode 100644 index 0000000000..3062ebfdd7 --- /dev/null +++ b/packages/rainbowkit/src/wallets/walletConnectors/vultisigWallet/vultisigWallet.ts @@ -0,0 +1,44 @@ +import { + getInjectedConnector, + hasInjectedProvider, +} from '../../getInjectedConnector'; +import type { Wallet } from '../../Wallet'; + +export const vultisigWallet = (): Wallet => ({ + id: 'vultisig', + name: 'Vultisig', + rdns: 'me.vultisig', + iconUrl: async () => (await import('./vultisigWallet.svg')).default, + iconBackground: '#061B3A', + installed: hasInjectedProvider({ namespace: 'vultisig.ethereum' }), + downloadUrls: { + chrome: + 'https://chromewebstore.google.com/detail/vultisig-extension/ggafhcdaplkhmmnlbfjpnnkepdfjaelb', + firefox: + 'https://addons.mozilla.org/en-US/firefox/addon/vultisig-extension/', + browserExtension: 'https://vultisig.com/downloads', + }, + extension: { + instructions: { + learnMoreUrl: 'https://docs.vultisig.com', + steps: [ + { + description: 'wallet_connectors.vultisig.extension.step1.description', + step: 'install', + title: 'wallet_connectors.vultisig.extension.step1.title', + }, + { + description: 'wallet_connectors.vultisig.extension.step2.description', + step: 'create', + title: 'wallet_connectors.vultisig.extension.step2.title', + }, + { + description: 'wallet_connectors.vultisig.extension.step3.description', + step: 'refresh', + title: 'wallet_connectors.vultisig.extension.step3.title', + }, + ], + }, + }, + createConnector: getInjectedConnector({ namespace: 'vultisig.ethereum' }), +}); diff --git a/site/data/en-US/docs/custom-wallet-list.mdx b/site/data/en-US/docs/custom-wallet-list.mdx index 388864bde7..9129947fb2 100644 --- a/site/data/en-US/docs/custom-wallet-list.mdx +++ b/site/data/en-US/docs/custom-wallet-list.mdx @@ -472,6 +472,12 @@ import { uniswapWallet } from '@rainbow-me/rainbowkit/wallets'; import { valoraWallet } from '@rainbow-me/rainbowkit/wallets'; ``` +#### Vultisig + +```tsx +import { vultisigWallet } from '@rainbow-me/rainbowkit/wallets'; +``` + #### Wigwam ```tsx From f42b519d847a4f76df5e6f5a3740802a656fc5eb Mon Sep 17 00:00:00 2001 From: paaao <167348323+realpaaao@users.noreply.github.com> Date: Tue, 11 Aug 2026 12:22:10 +0200 Subject: [PATCH 2/2] fix: exclude Vultisig from MetaMask impersonation filter --- .../wallets/walletConnectors/metaMaskWallet/metaMaskWallet.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/rainbowkit/src/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.ts b/packages/rainbowkit/src/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.ts index e1c6be3ab4..b2fbf59bf9 100644 --- a/packages/rainbowkit/src/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.ts +++ b/packages/rainbowkit/src/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.ts @@ -68,6 +68,7 @@ function isMetaMask(ethereum?: WindowProvider['ethereum']): boolean { if (ethereum.isTokenPocket) return false; if (ethereum.isTokenary) return false; if (ethereum.isTrust || ethereum.isTrustWallet) return false; + if (ethereum.isVultiConnect || ethereum.isVultisig) return false; if (ethereum.isCTRL) return false; if (ethereum.isZeal) return false; if (ethereum.isCoin98) return false;