> For the complete documentation index, see [llms.txt](https://docs.baas.sh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.baas.sh/baas-console/wallet-settings.md).

# Wallet Settings

Choose which chains your users can reach from the SDK, with an external wallet or a passkey wallet, and set the domain new passkeys are created under.

**Wallet Settings** decides what the SDK offers your end-users, chain by chain: external wallets like MetaMask, passkey Smart Wallets, and the key that pays for Smart Wallet activation. It also holds the passkey domain of the project.

The page lists every chain available to your project.

{% hint style="info" %}
**These switches decide what your end-users get:** the wallets the SDK offers on a chain, and Smart Wallet activations there. The Vault, contracts, automations, monitors and the Executor keep using every chain. Sign-in is not affected.
{% endhint %}

## The passkey domain

At the top of the page sits the **Passkey domain (WebAuthn RP ID)** card. It is the domain new passkeys are created under, and a passkey only works from pages under that domain. Click **Configure** (later **Change**) and enter a domain or paste an HTTP(S) URL: the Console keeps only the lowercase hostname. It must contain a dot, or be exactly `localhost` for local development. Use the apex of the zone your application runs on: `example.com` covers `app.example.com`, `admin.example.com` and every other subdomain.

Configure the domain before using passkeys. External wallets are not concerned.

{% hint style="warning" %}
**A domain change applies only to new sign-ups.** Existing passkeys stay bound to the domain they were created under. Keep the old domain online, and in your [allowed origins](/baas-console/api-settings/domain-protection.md), for as long as it has accounts.
{% endhint %}

A user's page shows the domain their passkey is bound to.

## The two switches, per chain

Each row shows the chain's name, its chain id, whether **External Wallet** and **Smart Wallet** are on, and the activation key if one is linked, with a link to its activity in the [Vault](/baas-console/vault.md). A chain you never touched has both off. Click a row to open it, and you find two independent switches.

* **External Wallet** allows wallets like MetaMask on this chain. Enabling saves immediately; disabling requires confirmation.
* **Smart Wallet** allows passkey wallets on this chain. Click its switch to choose an activation key in a dialog. It stays off until you confirm.

Confirming a switch's deactivation removes the chain from that kind of session's network list. Sessions that already loaded their list keep it until their next sign-in or page reload.

## The activation key

Before a Smart Wallet can send on a chain, it has to be activated there, by a transaction the SDK requests and the project pays for. The key that pays is the **activation key**.

### Enable Smart Wallet on a chain

{% stepper %}
{% step %}
Go to **Wallet Settings** and open a chain.
{% endstep %}

{% step %}
Click the **Smart Wallet** switch. The dialog reads **Choose a key on Ethereum. It pays the fees to activate your users' Smart Wallets.** Select a key: every key set up on this chain is listed. No key yet? Add one in the [Vault](/dashboard/vault.md).
{% endstep %}

{% step %}
Click **Enable Smart Wallet**. The switch turns on after saving. **Cancel** leaves your settings unchanged.
{% endstep %}
{% endstepper %}

To use another key, click **Change key**, select one, then click **Save changes**. Click the current key's name to view its balance and transactions in the [Vault](/baas-console/vault.md).

Confirming **Smart Wallet** deactivation unlinks the key.

You can save a key even if it is disabled or unfunded. Before activating wallets, follow any warning shown beside the key. A linked key cannot be removed from the Vault: pick another key with **Change key** first.

## Next

* [Passkeys](/baas-sdk/authentication/passkeys.md) in the SDK, and what the passkey domain means for your users.
* [Allowed Domains](/baas-console/api-settings/domain-protection.md), the list of origins your app may call the API from.
* [Networks](/baas-sdk/blockchain/networks.md) in the SDK, where the chains you enable here show up.
