You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Web3.js触发MetaMask连接额外钱包的授权弹窗

MetaMask多钱包授权连接解决方案

当用户已连接过钱包后,eth_requestAccounts只会返回当前已授权的账户列表,不会触发新的授权弹窗。要实现程序化触发多账户授权,可以用以下方法:

  • 使用wallet_requestPermissions方法发起权限请求
    这个方法会主动唤起MetaMask的权限确认弹窗,用户可以选择新增授权的账户(包括已连接的其他钱包账户)。示例代码:

    // 请求eth_accounts权限,触发账户选择弹窗
    await this.eth.request({
      method: 'wallet_requestPermissions',
      params: [{ eth_accounts: {} }]
    });
    // 获取所有已授权的账户
    const accounts = await this.eth.request({ method: 'eth_accounts' });
    

    执行这段代码后,MetaMask会弹出包含用户所有可用账户的选择界面,用户勾选新账户后,该账户就会被授权给你的DApp,后续eth_accounts就能返回包含新账户的列表。

  • 额外说明

    1. 确保用户使用的MetaMask版本在v7.0.0以上,该版本开始支持wallet_requestPermissions方法;
    2. 如果用户之前已经拒绝过该站点的权限请求,可能需要引导用户在MetaMask的站点权限设置中手动开启多账户访问。

内容的提问来源于stack exchange,提问作者xgf115

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:42:37