Error setting up Wallet Services plugin

Hi, I’m trying to setup W3A Wallet Services plugin but I have the following error:

As you can see its trying to make request to https://api-wallet.web3auth.io/auth/verify but its failed due to an invalid request:


where am I supposed to set the email?

Hello Corsair! Thank you for reaching out with your question about the Wallet Services plugin. I see you’re facing an issue setting it up, and I’m here to help!

Here’s a summary of the details you’ve provided for our support team:

  • SDK Details: Help - Plug n Play
  • Issue: Error setting up Wallet Services plugin
  • Screenshots:
    • Error during wallet service request
    • Invalid request error from the API
  • Platform: Not mentioned but necessary for troubleshooting.

To address your specific question about where to set the email, please ensure that you’re correctly including it in the initialization and request for the Wallet Services plugin.

If you could share the initialization code snippet where you’re setting up the Wallet Services, that would be helpful for further troubleshooting. Additionally, if you can confirm the platform you are using (e.g., web, mobile), it might assist us in providing more tailored guidance.

Looking forward to your response so we can get this resolved for you!

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

here’s the initialization code:

Hey @corsair
Thanks for reporting this. We have fixed this and pushed it to production. Can you please try it again?

new error here:

Please share the connect code. It looks like you’re passing the idToken in place of verifierId.

await web3AuthSfa.connect({
  verifier: "verifier-name", // e.g. `web3auth-sfa-verifier` replace with your verifier name, and it has to be on the same network passed in init().
  verifierId: "verifier-id-value", // e.g. `Yux1873xnibdui` or `name@email.com` replace with your verifier id(sub or email)'s value.
  idToken: "JWT Token", // replace with your newly created unused JWT Token.
});

hey @shahbaz here’s the full function code:

I’ll double check with docs, can you spot any issue?

Yes, I got the issue.

Since you are using an aggregate verifier, the connect function takes the following code.

const subVerifierInfoArray = [
  {
    verifier: "clerk",
    idToken: idToken,
  },
];
await web3authSfa.connect({
  verifier: "aggregated-auth",
  verifierId: "sub value",
  idToken: idToken,
  subVerifierInfoArray,
});

we will update the doc to include this.

I also see from this code that you are trying to use wallet services with Solana provider, as of now, Wallet Services is not compatible with Solana. It is coming soon.

hey @shahbaz thanks for the quick reply, I fixed the connect part and I’m not seeing any error logs but the plugin is still not connecting, whenever I try to run walletServicesPlugin.showCheckout I get:

“WalletServicesPluginError: Wallet plugin is not connected Yet. Please wait for plugin to connect and listen via connected event on the plugin”


any idea?

taking note, seems like Poko does support SOL but not the WS plugin. Hope it comes really soon, we plan to go live on Solana since its quite popular.

Sure, will update you once it’s live for Solana.

@shahbaz any feedback here?

Hey @corsair

Yes, that’s correct.

Hence, you’re getting this error.

I’m using the EVM privateKeyProvider, I removed the solana code

Sometime this morning it was working but then stopped, it gets to status “connected”, can this be forced?

Hey @corsair

This should not be happening with the EVM privateKeyProvider, are you using wallet-services-plugin or wallet-services-plugin-hooks?

import { useWalletServicesPlugin } from "@web3auth/wallet-services-plugin-react-hooks";

const { showCheckout, showWalletConnectScanner, showWalletUI, showSwap, isPluginConnected } = useWalletServicesPlugin();

// Then wrap it with isPluginConnected before each call to wallet services function
<button
    onClick={() => {
      if (isPluginConnected) {
        showWalletUI();
      }
    }}
    className="card"
  >
    Show Wallet UI
  </button>