Documentation
Run a Discord shop with crypto payments and automatic role grants.
Elytherion Shop Bot supports three product types: roles (one-time grant), subscriptions (time-limited grant with auto-revoke), and promo slots (paid promo posts with optional auto-channel). Buyers pay your wallet directly. The bot verifies the on-chain transfer and grants access automatically.
Quick start
Five steps to a working shop. Click any command to copy.
-
Invite the bot and grant permissions.
The bot needs
Manage Rolesfor role/subscription products andManage Channelsfor promo auto-channels. Drag the bot’s role above any role you want to sell. -
Activate the server with a bot plan.
/bot view plans /bot buy planid:<id> chain:bitcoin /bot submit payment subid:<id> txid:<hash> -
Save your seller wallets.
/set wallet chain:bitcoin address:bc1q... /set wallet chain:ethereum address:0x... -
Create your products.
/create role plan title:VIP details:Permanent VIP role priceusd:25 role:@VIP /create sub plan title:Premium details:Premium tier priceusd:9 days:30 role:@Premium /create promo plan title:Featured details:Pinned promo priceusd:15 days:7 makechannel:true -
Publish the panel.
/set panel channel:#shop
Verify any transaction yourself with /checktx chain:bitcoin txid:<hash> — useful while testing your shop.
Selling roles
One-time payment for a permanent role grant. Common uses: VIP, alpha access, supporter perks, name color tiers.
Pick the role buyers will receive and a USD price.
/create role plan title:VIP details:Lifetime VIP perks priceusd:25 role:@VIP
/roleplans
/buy role planid:<id> chain:bitcoin
/submit role orderid:<id> txid:<hash>
If the on-chain payment matches, the buyer instantly receives the role.
Selling subscriptions
Time-limited role grant. The bot grants the role on verify and removes it automatically when the duration passes. Common uses: monthly premium, weekly access tiers, season passes.
Pick the role, USD price, and number of days.
/create sub plan title:Premium details:Premium tier access priceusd:9 days:30 role:@Premium
/buy sub planid:<id> chain:bitcoin
/submit sub orderid:<id> txid:<hash>
Role granted, expiry timestamp recorded.
The cleanup loop checks every minute and removes the role from members whose subscription has ended.
Subscribers can run /mysubs to see their active subs and expiry times.
Selling promo slots
Time-limited promotion in your server. The buyer fills a guided form (project, link, pitch). Optional auto-channel mode posts the promo in a fresh channel that cleans itself up at expiry.
/create promo plan title:Featured details:Pinned promo channel for 7 days priceusd:15 days:7 makechannel:true
Project, link, pitch, ping, extras — collected in a single form.
/buy promo planid:<id> chain:bitcoin
/submit promo orderid:<id> buyertxid:<hash>
Auto-channel plans get a fresh channel; manual plans wait for /fulfill.
Worked example
Imagine you run Skyfox. You want to sell a $9/month Premium subscription that grants @Premium.
As seller (Skyfox owner)
/set wallet chain:bitcoin address:bc1qxy2k...gv9z
/create sub plan title:Premium details:Premium tier access priceusd:9 days:30 role:@Premium
As buyer (Ada)
/buy sub planid:8af3c2e1 chain:bitcoin
/submit sub orderid:e1y7c0d3e0 txid:f10c...8d20
What Ada sees in Discord
After verification
Named wallets & referral credit
You can save more than one wallet per chain. Tag each one with a name (your alias, a friend’s handle, a partner’s name) and let buyers pick which wallet to credit at checkout. Useful for referrals, supporter shoutouts, or splitting income between wallets you control.
Save a default wallet
/set wallet chain:bitcoin address:bc1qxy2k...gv9z
Save a named wallet
/set wallet chain:bitcoin address:bc1qparanoia... name:paranoia91
/set wallet chain:bitcoin address:bc1qfriend... name:friend
List all wallets
/mywallets
Remove one
/set walletremove chain:bitcoin name:friend
As a buyer, pick a named wallet at checkout
/buy role planid:VIP chain:bitcoin wallet:paranoia91
The wallet parameter is optional. If omitted, the seller’s default wallet for that chain is used. If named, the bot looks up that exact tag — mismatches show the buyer the list of available names so they can retry.
Command reference
All public commands. Click any command to copy it.
| Command | Purpose | Who uses it |
|---|---|---|
/bot view plans | Show active bot access plans. | Anyone |
/bot buy | Buy bot access for the current server. | Server manager |
/bot submit payment | Verify a bot access payment. | Server manager |
/bot status | Show subscription status for this server. | Anyone in server |
/set wallet | Save a payout wallet (with optional name). | Seller |
/set walletremove | Remove a saved wallet by chain and name. | Seller |
/mywallets | List your saved chain wallets. | Anyone |
/set panel | Post the purchase panel message. | Owner / manager |
/set purchase logs | Set or clear the purchase log channel (all events). | Owner / manager |
/set payment logs | Set or clear the payment-only log channel (verified payments). | Owner / manager |
/set ticket category | Set or clear the purchase ticket category. | Owner / manager |
/create role plan | Create a role for sale. | Owner / manager |
/roleplans | List role products in this server. | Anyone in server |
/buy role | Buy a role. | Buyer |
/submit role | Submit a role payment TXID. | Buyer |
/myroleorders | Show your role purchases. | Buyer |
/create sub plan | Create a subscription product. | Owner / manager |
/subplans | List subscription products in this server. | Anyone in server |
/buy sub | Buy a subscription. | Buyer |
/submit sub | Submit a subscription payment TXID. | Buyer |
/mysubs | Show your active subscriptions. | Buyer |
/create promo plan | Create a promo slot plan. | Owner / manager |
/plans | List promo plans for this server. | Anyone in server |
/myplans | List promo plans you manage. | Owner / manager |
/buy promo | Start the guided promo order form. | Buyer |
/submit promo | Submit the buyer payment TXID for a promo. | Buyer |
/myorders | Show your promo orders. | Buyer |
/sales | Show promo orders for this server. | Owner / manager |
/fulfill | Mark a paid or live promo as fulfilled. | Owner |
/closeticket | Close the current purchase ticket and save a transcript. | Owner |
/checktx | Look up a txid and return confirmation status. | Anyone |
/settings | Show live rates and bot payment wallets. | Anyone |
/help | Open the help embed with documentation links. | Anyone |
Order statuses
- awaiting payment Payment not submitted, or last attempt was rejected.
- checking payment Verification is running against the chain explorer.
- paid Payment verified.
- granted Role product: role assigned to buyer.
- active Subscription: role assigned, expiry recorded.
- live Promo: auto-channel posted.
- fulfilled Promo: manually completed by the seller.
- expired Subscription or promo: time elapsed, role removed or channel cleaned.
Transaction checks
Use /checktx for fast lookups without leaving Discord. Same backend the bot uses to verify payments.
/checktx chain:bitcoin txid:f10c4b...8d20
The bot returns whether the transaction was found, whether it’s confirmed, and the confirmation count.
Troubleshooting
Make sure the bot was invited with the slash command scope. Commands sync globally on startup — if you just invited it, give it a minute.
The bot’s top role must be above the role you’re selling. In Server Settings → Roles, drag the bot’s role up.
The server probably doesn’t have an active bot subscription. Run /bot status to confirm. If not active, use /bot view plans and /bot buy.
Confirm three things: the chain matches what was selected, the full TXID was pasted (no truncation), and the amount sent meets or exceeds the quoted total. Use /checktx to inspect.
The cleanup loop runs every minute. If a role still hasn’t been removed after that, check that the bot still has Manage Roles and is still positioned above that role.
Check the bot has Manage Channels permission in the chosen category and that the category itself isn’t private to the bot.