> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://www.openfort.io/api/mcp` to find what you need.
>
> **Have feedback?** Use `submit_feedback` on the same MCP server.

# Ecosystem dashboard configuration

:::note
Activating a cross-app wallet requires the **Scale** plan or above: use **Activate** on the [cross-app wallet settings](https://dashboard.openfort.io/settings/ecosystem) page. The whitelabel dashboard described below (custom domain and branding) is an **enterprise feature**. To enable it, [contact us](https://t.me/joalavedra).
:::

Use the **Settings** > [**Cross-app wallet**](https://dashboard.openfort.io/settings/ecosystem) page of the dashboard to configure your ecosystem's brand settings, including logo, theme colors, and legal policies. These settings can only be managed from the root project, and are available once your ecosystem is associated with your custom domain.

<img alt="whitelabel_dashboard" src="https://www.openfort.io/images/blog/whitelabel_dashboard_ef523dc779.png" width="100%" height="100%" />

## Customization options

| Customization  | Description |
| ------------- |-------------|
| Domain      | The custom domain the dashboard is hosted on. Set up with the Openfort team.     |
| Theme      | Primary and primary foreground colors, and border radius     |
| Logo and favicon      | Ecosystem logo URL and favicon URL     |
| Links      | Privacy policy URL, terms of service URL, documentation URL, and support email     |
| SDK links      | Client SDKs     |
| Example links      | Template examples using the ecosystem SDKs     |

## Keys your projects need

Your wallet UI reads three values from the dashboard. Collect them before you run the [quickstart](https://www.openfort.io/docs/products/cross-app-wallet/setup/react/quickstart):

| Value | Where to find it | What reads it |
| ----- | ---------------- | ------------- |
| Ecosystem ID | [Settings, cross-app wallet](https://dashboard.openfort.io/settings/ecosystem) | The `ecosystemId` prop of `OpenfortProvider` in your wallet UI |
| Publishable key | [API keys](https://dashboard.openfort.io/api-keys) | The `publishableKey` prop of `OpenfortProvider` |
| Shield publishable key | The Shield section of the [API keys](https://dashboard.openfort.io/api-keys) page | `embeddedSignerConfiguration` in your wallet UI, for non-custodial wallet recovery |

## What stays in code

The dashboard sets the ecosystem's identity; the SDKs set how the wallet behaves. Configure these in your own projects instead:

* `ecosystemWalletDomain` and `windowStrategy` in the Client SDK `baseConfig`, which decide where the wallet UI is hosted and whether it renders as an iframe or a popup. See [wallet design and routing](https://www.openfort.io/docs/products/cross-app-wallet/setup/react/wallet-ui).
* The `appearance` object of the Client SDK (`icon`, `logo`, `name`, `reverseDomainNameSystem`), which is what applications discover through [EIP-6963](https://eips.ethereum.org/EIPS/eip-6963). See [branding your cross-app wallet](https://www.openfort.io/docs/products/cross-app-wallet/setup/react/branding).
* The `theme`, `customTheme`, and `logoUrl` props of `EcosystemProvider`, which style the wallet screens themselves.

Gas sponsorship is not part of the cross-app wallet settings page either: create a policy under [policies](https://dashboard.openfort.io/policies) and pass its ID as described in [gas policies](https://www.openfort.io/docs/products/cross-app-wallet/usage/gas-policies).
