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

# Hosted Verify

> Hosted sign-in and trust checks on NEUS — one browser surface for your app.

**Hosted Verify** is `https://neus.network/verify`. Use it when a step needs **hosted sign-in and checks in the browser** — passkey, OAuth, human check, social/org proof, or gate checkout. Your app does **not** embed passkey, OAuth, or wallet UI.

Visitors and builders use a **NEUS account**. Wallet steps appear **only** when a published gate or check requires them.

Sign-in and gate checkout use the **same hosted surface**. See [Trust stack](../platform/trust-stack).

## What runs here

| Query intent           | User completes on NEUS                                                                                                                     |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `intent=login`         | NEUS session: passkey sign-in (primary), optional wallet attach                                                                            |
| `gateId`               | Gate checkout; wallet steps **only** if the published gate requires them                                                                   |
| Social / org **proof** | OAuth inside a verifier — [ownership-social](../verification/ownership-social), [ownership-org-oauth](../verification/ownership-org-oauth) |

## Login vs verification

| Topic   | `intent=login`                                | Gate checkout (`gateId`, no login-only intent) |
| ------- | --------------------------------------------- | ---------------------------------------------- |
| Purpose | NEUS **session** (Hub, profile, later checks) | **Receipt** / gate outcome                     |
| Screen  | Dedicated login shell                         | Composer                                       |

## Parameters

| Param          | Use                                                                                                                                                         |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `intent=login` | Hosted **login** only                                                                                                                                       |
| `returnUrl`    | Absolute `https://…` back to **your** app after completion. Validated before redirect.                                                                      |
| `returnTo`     | **neus.network** path only (e.g. `/profile`). Not for third-party domains. `@neus/sdk` `getHostedCheckoutUrl` does not set this; append manually if needed. |
| `connect=1`    | Optional for wallet-native products. With `intent=login`, auto-starts wallet connect on load                                                                |
| `gateId`       | Gate definition                                                                                                                                             |
| `mode=popup`   | Popup; requires `origin`                                                                                                                                    |
| `origin`       | Opener origin for postMessage                                                                                                                               |
| `appId`        | Advanced server/app attribution only; not required for published gate checkout                                                                              |

## Redirect examples

**Checkout / proof (your app):**

```javascript theme={"dark"}
import { getHostedCheckoutUrl } from '@neus/sdk';

window.location.href = getHostedCheckoutUrl({
  gateId: 'gate_your-app-name',
  returnUrl: 'https://myapp.com/auth/callback',
});
```

After redirect, read **`qHash`** (and related fields) from your callback URL.

**Login then return to your app:**

```javascript theme={"dark"}
import { getHostedCheckoutUrl } from '@neus/sdk';

window.location.href = getHostedCheckoutUrl({
  intent: 'login',
  returnUrl: 'https://myapp.com/auth/after-login',
});
```

**First-party only** (stay on `neus.network`):

```txt theme={"dark"}
https://neus.network/verify?intent=login&returnTo=/profile
```

`/login` on `neus.network` redirects to `/verify?intent=login&…` with a validated `returnTo`.

## Popup

Open with `mode: 'popup'` and `origin: window.location.origin`.

| Flow                | Opener listens for                                      |
| ------------------- | ------------------------------------------------------- |
| Verification / gate | `neus_checkout_done` (includes `qHash` when applicable) |
| `intent=login`      | `neus_login_complete`                                   |

## No browser handoff

Server-created receipts and access keys: [Integrations](../cookbook/integrations).
