Skip to content

feat: add Vultisig wallet - #2692

Open
realpaaao wants to merge 2 commits into
rainbow-me:mainfrom
realpaaao:add-vultisig-wallet
Open

feat: add Vultisig wallet#2692
realpaaao wants to merge 2 commits into
rainbow-me:mainfrom
realpaaao:add-vultisig-wallet

Conversation

@realpaaao

Copy link
Copy Markdown

Adds an injected-only connector for Vultisig — open-source, self-custodial multi-chain wallet with no seed phrase (threshold signatures across the user's devices). Live since March 2024.

Opened per the ask-first rule: discussion #2691.

Shape (modeled on rabbyWallet / enkryptWallet):

  • Extension-only: no WalletConnect, no qr/mobile paths (Vultisig has no WC support — deliberate, not an omission)
  • Detection: namespace: 'vultisig.ethereum'window.vultisig is our multi-chain container (no request()); the EIP-1193 provider lives at .ethereum, same object we announce via EIP-6963 (rdns: 'me.vultisig', verified in extension source). A flag: isn't usable since our EVM provider sets isMetaMask for window.ethereum compat and exposes no isVultisig.
  • Files: connector + full-bleed square SVG icon (matching recent wallet icons), walletConnectors/index.ts exports, en_US.json extension steps (en-US only per repo convention), example wagmi config, docs custom-wallet-list entry, changeset (patch).

Download links: Chrome Web Store + Firefox AMO (both listings live and verified) + browserExtension fallback.

receipts

no runtime changes to existing connectors — additive wallet entry

  • pnpm --recursive typecheck → all 7 projects pass
  • pnpm --filter @rainbow-me/rainbowkit build → succeeds; icon inlined as data URI, me.vultisig present in dist chunk
  • pnpm format:check (biome) → exit 0; biome lint → no new warnings
  • pnpm test → identical pass/fail set to clean tree (pre-existing env failures only)

@realpaaao
realpaaao requested a review from a team as a code owner August 11, 2026 08:18
@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

@realpaaao is attempting to deploy a commit to the rainbowdotme Team on Vercel.

A member of the Team first needs to authorize it.

@changeset-bot

changeset-bot Bot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f42b519

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 18 packages
Name Type
@rainbow-me/rainbowkit Patch
example Patch
@rainbow-me/rainbow-button Patch
rainbowkit-next-app Patch
site Patch
with-create-react-app Patch
with-next-app-i18n Patch
with-next-app Patch
with-next-custom-button Patch
with-next-mint-nft Patch
with-next-siwe-iron-session Patch
with-next-siwe-next-auth Patch
with-next-wallet-button Patch
with-next Patch
with-react-router Patch
with-remix Patch
with-vite Patch
with-next-rainbow-button Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8fbb7a68c4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

rdns: 'me.vultisig',
iconUrl: async () => (await import('./vultisigWallet.svg')).default,
iconBackground: '#061B3A',
installed: hasInjectedProvider({ namespace: 'vultisig.ethereum' }),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Exclude Vultisig from MetaMask detection

When the Vultisig extension is installed, its EVM provider is also exposed as the MetaMask-compatible window.ethereum with isMetaMask: true, so adding this connector without also excluding window.vultisig.ethereum from metaMaskWallet leaves dApps that include both wallets (including the updated example/default MetaMask setup) showing MetaMask as installed and routing MetaMask clicks into the Vultisig provider. Please update the MetaMask impersonation filter alongside this connector so Vultisig users only get the Vultisig option.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — addressed in f42b519. The Vultisig EVM provider ships a distinguishing flag in every released extension version (isVultiConnect: true, from the extension's original name), so the impersonation filter now excludes on ethereum.isVultiConnect || ethereum.isVultisig — the second flag is forward-compatible with the extension's rename to "Vultisig Extension". With this, machines with only Vultisig installed no longer show MetaMask as installed, and MetaMask clicks no longer route into the Vultisig provider.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant