# Web3Auth ContextConfig 'hideReceive' is not working

**URL:** <https://builder.metamask.io/t/web3auth-contextconfig-hidereceive-is-not-working/2595>\
**Category:** Embedded Wallets (Web3Auth)\
**Created:** [November 2, 2025, 3:43pm UTC](https://builder.metamask.io/t/web3auth-contextconfig-hidereceive-is-not-working/2595 "2025-11-02T15:43:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![PhakphumV](https://yyz1.discourse-cdn.com/flex011/user_avatar/builder.metamask.io/phakphumv/32/1769_2.png) [@PhakphumV](https://builder.metamask.io/u/PhakphumV)\
**Post date:** [November 2, 2025, 3:43pm UTC](https://builder.metamask.io/t/web3auth-contextconfig-hidereceive-is-not-working/2595/1 "2025-11-02T15:43:48Z")

</div>

Hello,

I noticed that the ‘receive’ button on my Wallet UI modal is removed even I specified `hideReceive` in the Web3AuthContextConfig configuration as `false` as shown below

```auto
const web3AuthContextConfig: Web3AuthContextConfig = {
    web3AuthOptions: {
        clientId, // Get your Client ID from Web3Auth Dashboard
        web3AuthNetwork: network === "mainnet" ?
            WEB3AUTH_NETWORK.SAPPHIRE_MAINNET :
            WEB3AUTH_NETWORK.SAPPHIRE_DEVNET, // or WEB3AUTH_NETWORK.SAPPHIRE_DEVNET
        modalConfig: {
            connectors: {
                [WALLET_CONNECTORS.AUTH]: {
                    label: "auth",
                },
            },
            hideWalletDiscovery: true, // set to true to hide external wallets discovery
        },
        walletServicesConfig: {
            modalZIndex: 99999,
            enableKeyExport: false,
            whiteLabel: {
                showWidgetButton: false,
                hideNftDisplay: false,
                hideTokenDisplay: false,
                hideTransfers: false,
                hideTopup: false,
                hideReceive: false,
                hideSwap: false,
                hideShowAllTokens: false,
                hideWalletConnect: false,
                defaultPortfolio: "token",
            },
        }
    },
};

```

- **Environment details**

Does anyone face the same issue?

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/metamaskbuilderhub/original/1X/082cfc3a14103b01cfa5ef7d85f1121a23fa3e81.png) [@system](https://builder.metamask.io/u/system)\
**Post date:** [November 2, 2025, 3:44pm UTC](https://builder.metamask.io/t/web3auth-contextconfig-hidereceive-is-not-working/2595/2 "2025-11-02T15:44:54Z")

</div>

Hi Phakphum — thanks for the clear report, and sorry you’re seeing that behavior. I’m treating this as an issue report (not a feature ask). Here’s what I pulled from your message and what will help the support/dev team investigate quickly.

Extracted details

- SDK / package shown: @web3auth/modal
- SDK version: v10.5.6
- Platform / framework: React v19.1
- Browser tested: Firefox
- Config snippet: web3AuthContextConfig with walletServicesConfig.whiteLabel.hideReceive: false (you included the snippet)

Quick checklist & likely causes to try

1. Confirm the whiteLabel config is actually being applied at runtime
  - Log or console.inspect the final options passed to the Web3Auth provider to confirm walletServicesConfig.whiteLabel exists and contains hideReceive: false. If the config is not present at provider initialization, the modal will use defaults.

2. Check version compatibility
  - Some whiteLabel options were added/changed across wallet-services / modal versions. Please confirm the versions of @web3auth/wallet-services (if used) and any related packages. If you’re on an older wallet-services version, hideReceive may not be supported.

3. Check for console warnings/errors
  - Look for warnings like “unknown config key” or deprecation messages in the browser console when the modal initializes.

4. Quick functional tests
  - Toggle hideReceive to true to verify that the Receive button actually disappears (verifies the flag has effect). Try changing another whiteLabel flag (e.g., hideSwap) and see whether they take effect.
  - Test in Chrome or a fresh/incognito profile to rule out extension or CSS interference.

5. Reproduction minimal case
  - If possible, create a tiny reproducible example (CodeSandbox or small repo) that only mounts Web3Auth with your config — that helps speed diagnosis.

What I need from you (only if possible — I don’t want to spam)

- The code where you initialize Web3Auth / Web3AuthProvider (initialization & login snippets). You showed the context config but I need to see how/where it’s passed in.
- The version of @web3auth/wallet-services (if present) and any other Web3Auth packages you’re using.
- A screenshot or copy of the browser console output during modal initialization (if there are any warnings or errors).

Possible short-term workaround

- If you need the Receive button back immediately, you can implement a simple custom Receive button in your app UI that opens the wallet address modal (or displays the address/QR) until we confirm the underlying config behavior.

If you can share the initialization snippet and wallet-services version (and a console log if you see warnings), I’ll forward this with the collected details to the support team and suggest next steps. I appreciate the clear report — we’ll get this tracked.

> 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 biweekly Office Hours to get this resolved even faster. [MetaMask Developer Office Hours](https://builder.metamask.io/t/metamask-developer-office-hours/2544/1)

---

<div class="post-metadata">

**Author:** ![PhakphumV](https://yyz1.discourse-cdn.com/flex011/user_avatar/builder.metamask.io/phakphumv/32/1769_2.png) [@PhakphumV](https://builder.metamask.io/u/PhakphumV)\
**Post date:** [November 2, 2025, 3:56pm UTC](https://builder.metamask.io/t/web3auth-contextconfig-hidereceive-is-not-working/2595/3 "2025-11-02T15:56:59Z")

</div>

Hello,

I confirmed that the whiteLabel config is actually being applied at runtime by log or console.inspect the final options passed to the web3auth provider.

I don’t use `@web3auth/wallet-services` at this point.  
I don’t have any warnings or errors related to web3auth or “unknown config key”

I tested other whiteLabel flags such as hideSwap and it works normally.

I passed the context config to the react component as shown below

```auto
const Web3AuthDevApp = () => {
  console.log(web3AuthContextConfig);

  return (
    <>
      <Web3AuthProvider config={web3AuthContextConfig}>
        <QueryClientProvider client={queryClient}>
          <WagmiProvider>
             ... //Other components including component to toggle wallet UI
          </WagmiProvider>
        </QueryClientProvider>
      </Web3AuthProvider>
    </>
  )
}

```

---

<div class="post-metadata">

**Author:** ![PhakphumV](https://yyz1.discourse-cdn.com/flex011/user_avatar/builder.metamask.io/phakphumv/32/1769_2.png) [@PhakphumV](https://builder.metamask.io/u/PhakphumV)\
**Post date:** [November 2, 2025, 4:16pm UTC](https://builder.metamask.io/t/web3auth-contextconfig-hidereceive-is-not-working/2595/4 "2025-11-02T16:16:03Z")

</div>

Hello again,

After testing few flags, I noticed some strange behaviors

**Example** #1

WhiteLabel properties

```auto
                showWidgetButton: false,
                hideNftDisplay: false,
                hideTokenDisplay: false,
                hideTransfers: false,
                hideTopup: true, // <-- Change to true
                hideReceive: false,
                hideSwap: false,
                hideShowAllTokens: false,
                hideWalletConnect: false,
                defaultPortfolio: "token"

```

Output

 ![image](https://canada1.discourse-cdn.com/flex011/uploads/metamaskbuilderhub/original/2X/6/6fbea76e48eeb8659de96a47117867a79082d29c.png)

It shows ‘Receive’ button

**Example** #2

```auto
                showWidgetButton: false,
                hideNftDisplay: false,
                hideTokenDisplay: false,
                hideTransfers: false,
                hideTopup: false, // <-- Change to false
                hideReceive: false,
                hideSwap: false,
                hideShowAllTokens: false,
                hideWalletConnect: false,
                defaultPortfolio: "token",

```

Output

 ![image](https://canada1.discourse-cdn.com/flex011/uploads/metamaskbuilderhub/original/2X/0/0a1848d54c77c3a872df7e7401ed4d3851b3b157.png)

The ‘receive’ button is replaced by ‘Add Funds’ button

---

<div class="post-metadata">

**Author:** ![maharshi](https://yyz1.discourse-cdn.com/flex011/user_avatar/builder.metamask.io/maharshi/32/1525_2.png) [@maharshi](https://builder.metamask.io/u/maharshi)\
**Post date:** [November 10, 2025, 4:52am UTC](https://builder.metamask.io/t/web3auth-contextconfig-hidereceive-is-not-working/2595/5 "2025-11-10T04:52:26Z")

</div>

This is an expected behaviour as with the latest version we have clubbed the receive via QR into the Funding section of the WalletUI. read more here:

> **[Funding | MetaMask developer documentation](https://docs.metamask.io/embedded-wallets/features/funding/)**
>
> Funding | Embedded Wallets
