web3modal icon indicating copy to clipboard operation
web3modal copied to clipboard

[bug] EIP6963 and Injected Wallets Show Up Despite Being Disabled β€” Also Appear Duplicated (Using Wagmi Adapter)

Open marco-moreiraf opened this issue 7 months ago β€’ 5 comments

Link to minimal reproducible example

https://test-vue-reown.vercel.app/

Summary

I'm using Reown with the Wagmi adapter, and I'm trying to configure the modal to show only specific wallets using featuredWalletIds array. However, wallets from EIP6963 and Injected connectors (like MetaMask) are still appearing, even though I've tried disabling them, and worse, they appear twice: once from the injected source, and once from the featured list.

πŸ§ͺ Minimal Reproducible Example

<script lang="ts" setup>
import { createAppKit } from '@reown/appkit/vue'
import { base, mainnet, polygon, type AppKitNetwork } from '@reown/appkit/networks'
import { WagmiAdapter } from '@reown/appkit-adapter-wagmi'

// 1. Get projectId from https://cloud.reown.com
const projectId = import.meta.env.VITE_APPKIT_PROJECT_ID

// 2. Create a metadata object
const metadata = {
  name: 'Test AppKit Vue',
  description: 'AppKit Example',
  url: import.meta.env.VITE_APP_URL,
  icons: ['https://avatars.githubusercontent.com/u/179229932'],
}

// 3. Set the networks
const networks: [AppKitNetwork, ...AppKitNetwork[]] = [mainnet, polygon, base]

// 4. Create Wagmi Adapter
const wagmiAdapter = new WagmiAdapter({
  networks,
  projectId,
})

// 5. Create the modal
const modal = createAppKit({
  adapters: [wagmiAdapter],
  networks,
  projectId,
  metadata,
  enableInjected: false,
  enableEIP6963: false,
  features: {
    analytics: true, // Optional - defaults to your Cloud configuration
  },
  allWallets: 'HIDE',
  featuredWalletIds: [
    'c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96', //Metamask
    '4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0', //Trust
    '19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927', //Legder
    'a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393', //Phantom
    'e9ff15be73584489ca4a66f64d32c4537711797e30b6660dbcb71ea72a42b1f4', //Exodus
  ],
})
</script>

<template>
  <appkit-button />
</template>

🧩 Expected Behavior

  • Only the wallets listed in featuredWalletIds should be shown.
  • Setting enableInjected: false and enableEIP6963: false should fully disable those connectors.

🐞 Actual Behavior

  • Wallets from EIP6963 and Injected still appear, even when enableInjected and enableEIP6963 are set to false.
  • Wallets like MetaMask are duplicated β€” once from the injected source, and again from the includeWalletIds list.

πŸ“Έ Screenshots

Image

List of related npm package versions

{
  "@reown/appkit": "^1.7.7",
  "@reown/appkit-adapter-wagmi": "^1.7.7",
  "@tanstack/vue-query": "^5.77.2",
  "@wagmi/vue": "^0.1.20",
  "viem": "^2.30.4",
  "vue": "^3.5.13"
}

Node.js Version

v20.13.1

Package Manager

[email protected]

marco-moreiraf avatar May 29 '25 09:05 marco-moreiraf

Same problem here.

jeanpablojp avatar May 29 '25 10:05 jeanpablojp

hey @marco-moreiraf @jeanpablojp

Sorry about the Phishing attempt - I have reported them.

I see this is a bug and should be working as you set enableEIP6963: false

I am going to raise this internally. In the mean time please can you try this : https://docs.reown.com/appkit/flutter/core/options#includedwalletids%3A

Sam-Newman avatar May 29 '25 15:05 Sam-Newman

Hi @Sam-Newman

Thanks for checking.

I tried using includeWalletIds instead of featuredWalletIds, but I think there may be another issue. With this setting, the widget only shows installed wallets, including some that aren’t in the includeWalletIds list.

When I set allWallets to 'SHOW' (second screenshot), the non-installed wallets do appear under the "All Wallets" section β€” but injected wallets (like Brave Wallet) still show up, even though enableInjected and enableEIP6963 are set to false.

🧩 Expected Behavior

  • All wallets listed in includeWalletIds should appear, even when allWallets is set to 'HIDE'.
  • Injected wallets that are not in the includeWalletIds list should not be displayed when enableInjected and enableEIP6963 are false.

Updated code:

const modal = createAppKit({
  adapters: [wagmiAdapter],
  networks,
  projectId,
  metadata,
  enableInjected: false,
  enableEIP6963: false,
  features: {
    analytics: true, // Optional - defaults to your Cloud configuration
  },
  allWallets: 'HIDE',
  includeWalletIds: [
    'c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96', //Metamask
    '4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0', //Trust
    '19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927', //Legder
    'a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393', //Phantom
    'e9ff15be73584489ca4a66f64d32c4537711797e30b6660dbcb71ea72a42b1f4', //Exodus
  ],
})

Screenshots

Image | Image

Let me know if you need any more details.

Thanks again!

marco-moreiraf avatar May 29 '25 16:05 marco-moreiraf

hey guys, same problem here

@marco-moreiraf or @Sam-Newman have you found a way to bypass/solve this?

ElderPtero avatar Jun 09 '25 16:06 ElderPtero

Hi all ! We will be working in a fix ! Hope to bring news soon.

Sorry for the delay !

rtomas avatar Jun 20 '25 02:06 rtomas

+1 also excludeWalletIds should exclude injected wallets to be shown. I have phantom in the exclude list but its still showing on the Connect Wallet view

const modal = createAppKit({
  adapters: [wagmiAdapter, bitcoinAdapter, solanaAdapter],
  networks,
  projectId,
  allWallets: 'HIDE',
  excludeWalletIds: [
    'a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393', //Phantom
  ],
})
Image

o-flores avatar Jul 10 '25 15:07 o-flores

+1

tim-schultz avatar Aug 08 '25 20:08 tim-schultz

I put #4811 together because I needed to test a specific wallet. It resolves the issue I was experiencing. Will try to find time to write unit tests for it, but hopefully it can be helpful in implementing a final soluttion.

tim-schultz avatar Aug 11 '25 17:08 tim-schultz