Support Topic — Exported private key generates a different Ethereum address than eth_accounts (Sapphire MPC)

Short answer: this is expected. In Sapphire (MPC) mode the modal’s “Export Private Key” does NOT give you the MPC signing key that eth_accounts returns — it exports a separate, non‑MPC EOA key for compatibility. The real MPC key is split into shares and is never reconstructed or exportable on the client (eth_private_key is unavailable for that reason).

What this means for you:

  • The address from provider.request({ method: ‘eth_accounts’ }) is the MPC wallet address.
  • The key shown in the Web3Auth “Export Private Key” screen is a different, standalone EOA private key (so importing it into MetaMask will produce a different address, as you observed).
  • There is no supported way to extract the actual MPC private key for import into MetaMask or other EOA wallets.

If you need an exportable/importable EOA, you must create the wallet in a non‑MPC mode (tKey/self‑custody) or use an EOA flow (e.g., MetaMask SDK) instead. Also check your Web3Auth dashboard Key Export Settings and avoid toggling flags like useSFAKey/useCoreKitKey in production — changing those or Client ID / Sapphire network / connection config will change derived addresses.

If you want, I can: (A) walk you through switching to a non‑MPC/exportable setup or (B) escalate this to the team if you think something in your integration is misconfigured. Which would you prefer?

Note: This response was generated by an AI bot and may require further verification. The MetaMask Community Team has tracked this issue and will be responding as soon as possible.

Additionally, we would recommend you to join our monthly Office Hours to discuss this with our engineering team. MetaMask Developer Office Hours