# Why Use This Library?

### 1. Save Development Time

Skip hundreds of lines of repetitive boilerplate and wallet-specific conditionals. Use a single, clean interface to interact with any supported wallet on any supported chain.

⚠️ **Before:**

```javascript
if (window.ethereum?.isMetaMask) {
  await window.ethereum.request({ method: 'wallet_addEthereumChain', params: [...] });
  await window.ethereum.request({ method: 'wallet_switchEthereumChain', params: [...] });
} else if (window.coinbaseWalletExtension) {
  // Handle Coinbase logic here
}

```

✅ **After:**

```javascript
import { connectWallet } from 'multichain-wallet-connector';
const { provider, account } = await connectWallet({ chainId: 137 });

```

### 2. Future-Proof Your dApp

As new EVM chains and wallets emerge, you don’t need to refactor or add new logic. Just specify the `chainId`—the library handles the rest. Updates to EIPs or wallet standards are handled behind the scenes.

### 3. Reduce User Friction

* **Auto-Add Chains:** Users aren’t left with vague errors like “Unrecognized Chain.”
* **Smart Fallbacks:** Gracefully handles unsupported operations and suggests workarounds.
* **Optimized UX:** Auto gas estimation and error reporting reduce failed transactions and improve reliability.
