Simple Base SwapSimple Base SwapOpen app
← All articles
Aug 31, 2026·4 min read

EIP-6963: How Your Browser Finds the Right Wallet

basewalletseducationguides
base

If you have ever installed a second or third wallet extension, you may remember an old, mildly annoying problem. You would click "Connect Wallet" on a site, and instead of a clear choice, you would end up connected to whichever wallet happened to load last, whether or not it was the one you meant to use.

That problem had a real, technical cause, and it has a real, technical fix. The fix is a standard called EIP-6963, and it is worth understanding because it quietly runs every time you connect a browser extension wallet to a site like Simple Base Swap.

The old problem: one shared name for many wallets

Browser extension wallets work by injecting a small piece of code into every web page you visit. That code exposes a standard interface, defined by an earlier standard called EIP-1193, so that any site can talk to whatever wallet is installed.

For years, wallets injected that interface at the same fixed location: an object called window.ethereum. This worked fine when most people had exactly one wallet extension. It broke down as soon as someone installed two.

Extensions load in whatever order the browser happens to load them, and that order is not something the user controls or usually even sees. Since every wallet was trying to claim the same window.ethereum slot, the last one to load would typically overwrite the others. A site had no reliable way to ask "which wallets does this person actually have installed." It could only see whichever one won the race.

In practice this meant unpredictable connections, wallets quietly fighting to grab the slot first, and a genuinely confusing moment for anyone running more than one wallet extension.

What EIP-6963 changes

EIP-6963, titled "Multi Injected Provider Discovery," replaces that single shared slot with a conversation. Instead of every wallet racing to overwrite one variable, each wallet extension listens for a page to ask a question, and answers for itself.

The mechanism uses two browser events:

  • The site asks. When a page wants to know what wallets are available, it dispatches a eip6963:requestProvider event into the browser.
  • Each wallet answers. Every installed wallet extension that supports the standard is listening for that event. Each one responds with its own eip6963:announceProvider event, carrying its own connection details plus some basic information about itself: a name, an icon, and a unique identifier.

Because each wallet announces itself independently rather than overwriting a shared value, the site ends up with a full list of every compatible wallet installed, not just whichever one loaded last. That list is what populates the clean "choose your wallet" menu you now see on most sites when you have multiple extensions installed, each with its own name and logo instead of one anonymous option.

EIP-6963 reached final status in the Ethereum standards process in October 2023, and has since been adopted by most major extension wallets, including MetaMask, Coinbase Wallet, and Rainbow, among others.

What this does not fix

EIP-6963 only addresses browser extension wallets that inject into the page you are viewing. It does not change how mobile wallets connect through a QR code or deep link, which is a separate flow generally handled by WalletConnect. If you are pairing a mobile wallet with a site rather than using a browser extension, EIP-6963 is not the mechanism involved. Our article on WalletConnect pairing sessions covers that flow separately.

It also does not add any new security guarantees on its own. It is a discovery mechanism, a way for a page to see what is installed and ask for a connection, not a way to verify that a given wallet extension is trustworthy. The usual cautions still apply: only install wallet extensions from official sources, and be deliberate about which one you approve a connection with.

Why this matters if you run more than one wallet

A lot of active crypto users end up with more than one extension installed over time: maybe a general-purpose wallet for daily use and a hardware wallet's companion extension for larger holdings. Before EIP-6963, that setup was a real source of mistakes, since it was easy to approve a connection with the wrong wallet without realizing it, simply because it happened to be the one that had grabbed window.ethereum that day.

With EIP-6963 in place, connecting should show you a distinct, labeled option for each wallet you have installed. That extra clarity is a small thing, but it removes a genuine source of confusion, and it is a good habit to actually read that list rather than clicking the first option out of reflex, especially if you keep a dedicated wallet for higher-value holdings separate from the one you use for everyday swaps.

Sources:

Ready to try it yourself?

Create a non-custodial wallet on Base in seconds. No account, no sign-up.

Open the web app