# Retrieve Client Credentials Unstoppable Login is a versatile feature with several integration pathways available for developers. This guide will step you through your first login integration with one of several supported libraries. Unstoppable Login can be integrated with any EVM-compatible DApp (as well as Solana DApps). However, domains minted on testnets (e.g. Amoy or Sepolia) are not supported. ## Step 1: Get Your Client Credentials - Go to the [Client Management Dashboard](https://dashboard.auth.unstoppabledomains.com). - Click the **Connect Wallet** and sign the transaction. - Click the **Create Client** button to add a new client. The dashboard will generate a unique **client ID** and open the configuration page for your new client. The **Client Metadata** is automatically populated with the `clientID` and default values for the `redirectURI` and `scope`. See [Login Client Configuration](/identity/guides/client-configurations) for more details about the settings on this page. figure video figcaption Connect a wallet and create a new client Once you've created your client, you will need the **Client Metadata** to configure your UAuth application. This can be copied directly from the **Login** page of your **Client Configuration**. figure ```javascript { clientID: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", redirectUri: "http://localhost", scope: "openid wallet", } ``` figcaption Example client metadata The `scope` property of your client metadata will default to `"openid wallet"`, which is the minimum scope required for login. You can request additional information from users by adding additional scopes to this string. For information on the other scopes Login supports, see [Scopes for Login](/identity/guides/login-scopes). ## Step 2: Choose Your Integration Path There are several ways to integrate with Unstoppable Login, which are listed in the table below. Because pop-ups are a more integration friendly approach, every integration path except for **Login without Pop-up** and **Node.js Server** uses them by default. You can use redirects instead with the `login()` method of `@uauth/js` or the `shouldLoginWithRedirect` configuration option for other `@uauth/*` libraries. For DApps built with web3 libraries like `web3-react`and `web3-onboard`, UAuth provides packages that help you wrap a new UAuth instance in an interface that each library supports. After configuring these packages, you can continue using the web3 library normally. | Integration Guide | Example Project | Web3 Provider | Package | Front-end UI | | --- | --- | --- | --- | --- | | [Login with Pop-up](/identity/quickstart/login-with-pop-up) | [spa](https://github.com/unstoppabledomains/uauth/tree/main/examples/spa/) | ❌ | `@uauth/js` | JavaScript | | [Login without Pop-up](/identity/guides/integration-paths/login-without-pop-up) | - | ❌ | `@uauth/js` | React | | [Web3 React](/identity/guides/integration-paths/web3-react) | [web3-react](https://github.com/unstoppabledomains/uauth/blob/main/examples/web3-react/) | ✅ | `@uauth/web3-react` | `web3-react` | | [Web3 Onboard](/identity/guides/integration-paths/web3-onboard) | - | ✅ | `@web3-onboard/uauth` | `web3-onboard` | | [Node.js Server](/identity/guides/integration-paths/node-js) | [server](https://github.com/unstoppabledomains/uauth/tree/main/examples/server) | ❌ | `@uauth/node` | None | | [Auth0](/identity/guides/integration-paths/auth0) | [UAuth + Auth0 ](https://github.com/unstoppabledomains/uauth-auth0-sample-dapp) | ❌ | `auth0` | `auth0` | See the [UAuth Example App](https://example.auth.unstoppabledomains.com/) for a live demo of the login flow.