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

# OAuth2 Scopes for the Social SDK

> Learn about OAuth2 scopes required for Discord Social SDK features.

export const PaintPaletteIcon = props => <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="currentColor" fill-rule="evenodd" d="M19 16h-5a2 2 0 0 0-2 2v2c0 1.66-1.37 3.04-2.96 2.6A11 11 0 1 1 23 12c0 2.2-2 4-4 4ZM13.5 4.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM17.25 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm-9-1.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm-3.75 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" clip-rule="evenodd" /></svg>;

export const LinkIcon = props => <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="currentColor" d="M16.32 14.72a1 1 0 0 1 0-1.41l2.51-2.51a3.98 3.98 0 0 0-5.62-5.63l-2.52 2.51a1 1 0 0 1-1.41-1.41l2.52-2.52a5.98 5.98 0 0 1 8.45 8.46l-2.52 2.51a1 1 0 0 1-1.41 0ZM7.68 9.29a1 1 0 0 1 0 1.41l-2.52 2.51a3.98 3.98 0 1 0 5.63 5.63l2.51-2.52a1 1 0 0 1 1.42 1.42l-2.52 2.51a5.98 5.98 0 0 1-8.45-8.45l2.51-2.51a1 1 0 0 1 1.42 0Z" /><path fill="currentColor" d="M14.7 10.7a1 1 0 0 0-1.4-1.4l-4 4a1 1 0 1 0 1.4 1.4l4-4Z" /></svg>;

export const PlayIcon = props => <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="currentColor" d="M9.25 3.35C7.87 2.45 6 3.38 6 4.96v14.08c0 1.58 1.87 2.5 3.25 1.61l10.85-7.04a1.9 1.9 0 0 0 0-3.22L9.25 3.35Z" /></svg>;

<Note>
  This page covers OAuth2 scopes specific to the Discord Social SDK. For the full list of Discord API OAuth2 scopes (bots, webhooks, etc.), see the [OAuth2 topic guide](/developers/topics/oauth2#shared-resources-oauth2-scopes).
</Note>

OAuth2 scopes define the level of access your app has to a user's Discord account.

What OAuth scopes are available to your integration are set via
[`AuthorizationArgs::SetScopes`] on [`AuthorizationArgs`] which is passed to [`Client::Authorize`] on Social SDK
authentication.

## Default Presence Scopes

At a minimum, the Social SDK uses the following scopes to use features like rich presence and friends list:

* `openid`
* `sdk.social_layer_presence`

The default presence features include:

* [Account Linking](/developers/discord-social-sdk/core-concepts/core-features#account-linking)
* [Provisional Accounts](/developers/discord-social-sdk/core-concepts/core-features#provisional-accounts)
* [Friend System & Relationships](/developers/discord-social-sdk/core-concepts/core-features#friend-system-relationships)
* [Presence & Rich Presence](/developers/discord-social-sdk/core-concepts/core-features#presence-rich-presence)

The Social SDK provides the helper method [`Client::GetDefaultPresenceScopes`], which returns `openid sdk.social_layer_presence`,
that you can use when setting up your OAuth2 flow, for integrations that only need the above functionality.

<Warning>
  With only the default presence scopes, your game will not be able to use any of the limited access
  communications features.
</Warning>

## Default Communication Scopes

The communications features are currently available but have limited access. Those features **require** the scope
of `sdk.social_layer`, which includes the `sdk.social_layer_presence` scope but also allows your app to use those limited features on behalf of the user.

* `openid`
* `sdk.social_layer`

These communication features include:

* [Messaging & Communication](/developers/discord-social-sdk/core-concepts/communication-features#messaging-communication)
* [Lobbies & In-Game Chat](/developers/discord-social-sdk/core-concepts/communication-features#lobbies-ingame-chat)
* [Linked Channels](/developers/discord-social-sdk/core-concepts/communication-features#linked-channels)

The Social SDK provides the helper method [`Client::GetDefaultCommunicationScopes`], which returns `openid sdk.social_layer`,
that you can use when setting up your OAuth2 flow, for integrations that integrates both the default and limited communications features.

<Note>
  For more information about these features, please see [Core Concepts: Communication Features](/developers/discord-social-sdk/core-concepts/communication-features).
</Note>

If your game requires additional scopes, you can add them to the default scopes to authorize additional access from your users.

You should only add scopes that are necessary for your game to function. Requesting unnecessary scopes can lead to user distrust and may result in users not linking their Discord account.

## OAuth2 Client Types

OAuth2 has two client types: **Confidential** and **Public**. Most games will not want to ship with **Public Client** enabled.

Some Social SDK methods require your Discord application to be a **Public Client**. These methods also have server-side alternatives that you can use with a **Confidential Client**.

* Using confidential clients with proper secret management for production applications is generally recommended.
* Public clients cannot securely store client secrets.
* Your security team should review this setting and authentication flows before releasing your game.

[Learn more about OAuth2 client types](https://oauth.net/2/client-types)

***

## Next Steps

Start your integration, implement user authentication, and learn about UI design:

<CardGroup cols={3}>
  <Card title="Getting Started" href="/developers/discord-social-sdk/getting-started" icon={<PlayIcon/>}>
    Choose your platform and follow step-by-step setup instructions.
  </Card>

  <Card title="Account Linking" href="/developers/discord-social-sdk/development-guides/account-linking-with-discord" icon={<LinkIcon/>}>
    Implement user authentication with Discord OAuth2.
  </Card>

  <Card title="Design Guidelines" href="/developers/discord-social-sdk/design-guidelines" icon={<PaintPaletteIcon/>}>
    Learn how to design your game's UI to integrate social features.
  </Card>
</CardGroup>

***

## Change Log

| Date          | Changes         |
| ------------- | --------------- |
| July 21, 2025 | initial release |

[`AuthorizationArgs`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1AuthorizationArgs.html#adb47ac55258db29d4cb8a2c506093eed

[`AuthorizationArgs::SetScopes`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1AuthorizationArgs.html#aa3714d11a196e0d71c8c1cf38c506d92

[`Client::Authorize`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#ace94a58e27545a933d79db32b387a468

[`Client::GetDefaultCommunicationScopes`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a71499da752fbdc2d4326ae0fd36c0dd1

[`Client::GetDefaultPresenceScopes`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a7648bd1d2f7d9a86ebd0edb8bef12b5c
