# Sell access to your Discord server

> Charge for a Discord role and get paid in crypto (USDC on Solana). Subscribers get the role automatically when they pay and lose it when they cancel — add Soca’s bot with one click: no bot to build, no token to copy, no code.

Part of the Soca documentation (https://soca.finance/docs). Human version: https://soca.finance/docs/business/discord-access
Want to charge for your **Discord server** and get paid in crypto? Soca gates a **Discord role** behind a subscription: anyone who subscribes gets the role automatically, and anyone who cancels loses it automatically — billed in **USDC on Solana**, renewing on its own. There is no bot to build, no token to copy, and no code. Think of it as the crypto-native version of what Whop or MEE6 do for paid Discord communities.

> **In one line**: A Discord role, gated behind a Soca subscription paid in USDC — granted the moment someone pays, removed the moment they lapse, all on autopilot.

## What the role gates

You choose a **role**; assigning it is what unlocks the channels, categories, and perks behind it, and removing it locks them again. Each connection maps to exactly one plan: *while* a member holds an active subscription to that plan, *they* hold the role. Run several tiers by pointing each plan at its own role.

## How members pay

Access is sold as an ordinary Soca [subscription](/docs/business/subscriptions): recurring **USDC on Solana**, renewing automatically, with gas sponsored so the customer never needs SOL. Members who check out with a Soca account save 1% on every payment, and you still receive the same amount — Soca covers that discount out of its own fee, never yours (see [pricing](/docs/overview/pricing)). You keep custody the whole time; each payment settles straight to your wallet.

## Set it up (one click)

1. **Create the plan**: If you have not already, create the [subscription plan](/docs/business/subscriptions) membership will be sold under. Its checkout link is what you share with prospective members.
2. **Add Soca to Discord**: In **Dashboard → Settings → Integrations**, open Discord and click **Add Soca to Discord**. Choose your server on Discord’s own screen and authorize. There is no application to register and no bot token — you are inviting Soca’s shared bot, which asks only for permission to manage roles.
3. **Pick the role and plan**: Back in the dashboard, choose the **role** subscribers should receive (from a dropdown of your server’s roles) and the **plan** that grants it, then Save.
4. **Keep the granted role below Soca’s role**: Discord only lets a bot manage roles positioned below its own. Soca’s role is placed high when you add it, so most roles work out of the box; if a grant ever fails, drag the granted role lower in **Server Settings → Roles**.
5. **Share your checkout link**: Post the plan’s checkout link wherever your audience is — your server’s welcome channel, a pinned message, your bio. Everything after payment is automatic.

## What your members experience

1. **Subscribe**: They pay through your plan’s hosted checkout like any other subscription — with Google, email, or their own wallet. Nothing to install.
2. **Connect Discord**: Right after paying (or later from their Soca account) they tap **Connect Discord** and authorize with the `identify` scope only — Soca reads their Discord user id and nothing else.
3. **Connect the wallet they paid with**: They connect the same wallet the subscription is paid from. That is what proves the person in your server is the person who subscribed — nobody types or pastes an ID.
4. **The role is assigned**: Soca adds the configured role automatically, and renewals keep it in place with nothing more for them or you to do.

## When a subscription ends

The role is removed automatically when a member cancels, revokes their payment authorization, or exhausts failed-payment recovery. One important nuance: during [failed-payment recovery](/docs/business/subscriptions), members keep the role while automatic retries run, so a briefly-late renewal never strips a good member — the role is only pulled once the subscription is genuinely over.

## Monitor who has access

**Dashboard → Access** is the control room. It lists your connected server, its gating plan, and every member’s wallet, Discord identity, and current state:

| Status | Meaning |
| --- | --- |
| **Active** | Paid and has the role. The steady state. |
| **Access pending** | Paid but not yet granted — usually waiting on the next sync, or the member hasn’t connected their Discord yet. |
| **Removing** | No longer entitled; Soca is taking the role away. |
| **No access** | Not entitled and not granted. |

Access reconciles automatically every minute, and a **Sync now** button forces a pass immediately. If a paying member stays pending after a sync, the usual cause is role order — make sure the granted role sits below Soca’s. The [technical guide](/docs/developers/telegram-and-discord) covers the exact checks.

> **Membership, end to end**: Checkout handles the payment, renewals handle retention, recovery handles late payments, and access automation handles the door. A paid Discord community runs on one link and zero admin.

Selling access to a Telegram channel too? See [Sell access to your Telegram channel](/docs/business/telegram-access). For how the grant and revoke work under the hood, see [How Telegram and Discord access works](/docs/developers/telegram-and-discord).
