> ## 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.

# Linked social accounts

> Confirm a social account before you grant access. Reuse the result.

**Check ID:** `ownership-social`

Confirm a person controls a social account, then reuse that result across your apps. OAuth runs on NEUS. You never handle tokens.

## Use cases

* Trust pages and reputation
* Community onboarding and gating
* Linking a social handle to a wallet or profile

## Flow type

Interactive, hosted-only. The user authorizes the provider on NEUS and returns with a result. This check cannot be submitted from your backend, and it cannot be combined with other checks in one request.

## Supported providers

`discord`, `github`, `facebook`, `x`, `linkedin`, `telegram`, `coinbase`.

## The simplest path

Send the user to Hosted Verify, then read the receipt back:

```text theme={"dark"}
https://neus.network/verify?verifiers=ownership-social&returnUrl=https://app.example.com/verified
```

You get a `qHash`. Store it and reuse it — don't re-run the flow on every visit. Never collect raw OAuth tokens.

## Fields

| Field                 | Required            | Notes                                             |
| --------------------- | ------------------- | ------------------------------------------------- |
| `provider`            | Yes                 | One of the supported providers above              |
| `internalSocialToken` | Yes (direct submit) | Short-lived token issued by the hosted OAuth step |
| `walletAddress`       | No                  | Subject override to bind the handle to a wallet   |

`internalSocialToken` is produced by the hosted flow — your app does not create it. For almost all integrations, use Hosted Verify or `VerifyGate` and skip direct submission.

Full schema: [`ownership-social.json`](https://github.com/neus/network/blob/main/docs/verifiers/schemas/ownership-social.json).
