> ## Documentation Index
> Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Connections on the web

> Link to the hosted Connections page and read the connected wallet address off your redirect URL.

<Note>
  This is an enterprise-only feature. Please [contact us](https://www.dynamic.xyz/book-a-call) to enable.
</Note>

On the web, you link users to the hosted [Connections](/docs/connections/overview) page and read the result off the redirect URL you control. There's no SDK to install.

## 1. Link to the connect page

Open Connections in the user's browser (or a web view) with a `redirect_uri` you control, and an optional `nonce`.

```text link to open theme={"system"}
https://your-connect-page.example/
  ?redirect_uri=https://your-app.com/wallet/callback
  &nonce=a1b2c3d4e5
```

| Parameter      | Required | Description                                                                                                                      |
| :------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------- |
| `redirect_uri` | Yes      | Where to send the user back after they connect. An `http(s)` URL you control. Alias: `redirect_url`.                             |
| `nonce`        | No       | An opaque value echoed back unchanged so you can correlate the response to the request. If you don't send one, none is returned. |

## 2. Receive the result

After a successful connection, Connections redirects the browser to your `redirect_uri` with the result appended as query parameters.

```text redirect we send theme={"system"}
https://your-app.com/wallet/callback
  ?address=0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b
  &chain=evm
  &walletName=MetaMask
  &walletImage=https://.../metamask.svg
  &nonce=a1b2c3d4e5
```

| Parameter     | Description                                                    |
| :------------ | :------------------------------------------------------------- |
| `address`     | The connected wallet's public address.                         |
| `chain`       | The chain family: `evm` or `solana`.                           |
| `walletName`  | Display name of the wallet (e.g. `MetaMask`).                  |
| `walletImage` | Icon URL for the wallet. Empty for a manually-entered address. |
| `nonce`       | The exact nonce you passed in, present only if you sent one.   |

## 3. Read it on your callback

On your `redirect_uri`, read the parameters off the URL.

```ts callback.ts theme={"system"}
const params = new URLSearchParams(location.search);

const address = params.get("address"); // "0x1a2b…9a0b"
const chain = params.get("chain");     // "evm" | "solana"
const nonce = params.get("nonce");     // echoed back, or null

// Verify `nonce` matches the one you issued, then continue.
```

<Warning>
  Connect-only proves the user can present an address, not that they control it. For proof of ownership, add your own sign-in step after this. And because `redirect_uri` is caller-supplied, allow-list the hosts you accept — see [Securing the redirect](/docs/connections/overview#securing-the-redirect).
</Warning>
