EL Elytherion shop bot

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.

Roles · subs · promos BTC · LTC · ETH · SOL Auto role grant & revoke Tickets & transcripts

Quick start

Five steps to a working shop. Click any command to copy.

  1. Invite the bot and grant permissions.

    The bot needs Manage Roles for role/subscription products and Manage Channels for promo auto-channels. Drag the bot’s role above any role you want to sell.

  2. Activate the server with a bot plan.
    /bot view plans
    /bot buy planid:<id> chain:bitcoin
    /bot submit payment subid:<id> txid:<hash>
  3. Save your seller wallets.
    /set wallet chain:bitcoin address:bc1q...
    /set wallet chain:ethereum address:0x...
  4. 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
  5. Publish the panel.
    /set panel channel:#shop
Tip

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.

1
Create a role plan.

Pick the role buyers will receive and a USD price.

/create role plan title:VIP details:Lifetime VIP perks priceusd:25 role:@VIP
2
Buyers see the catalog.
/roleplans
3
Buyer purchases and pays.
/buy role planid:<id> chain:bitcoin
/submit role orderid:<id> txid:<hash>
4
Bot grants the role on verify.

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.

1
Create a subscription plan.

Pick the role, USD price, and number of days.

/create sub plan title:Premium details:Premium tier access priceusd:9 days:30 role:@Premium
2
Buyer purchases and pays.
/buy sub planid:<id> chain:bitcoin
/submit sub orderid:<id> txid:<hash>
3
Bot activates the subscription.

Role granted, expiry timestamp recorded.

4
Auto-revoke at expiry.

The cleanup loop checks every minute and removes the role from members whose subscription has ended.

Buyer self-service

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.

1
Create a promo plan.
/create promo plan title:Featured details:Pinned promo channel for 7 days priceusd:15 days:7 makechannel:true
2
Buyer fills the modal.

Project, link, pitch, ping, extras — collected in a single form.

/buy promo planid:<id> chain:bitcoin
3
Buyer pays and submits the TXID.
/submit promo orderid:<id> buyertxid:<hash>
4
Bot verifies and goes live.

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

EL
Elytherion APP only you can see this

Subscription Order Ready

Pay the wallet below, then submit your TXID. The role activates on verification.

Plan:Premium · 30 days
Role:@Premium
Price:$9 · 0.00015 BTC
Wallet:bc1qxy2k...gv9z
Next:Run /submit sub with your TXID.

After verification

Elytherion APP payment verified

Subscription Active

Bitcoin tx confirmed. Your @Premium role is now active.

Status:active
Role:@Premium
Expires:in 30 days

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
How it works

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 plansShow active bot access plans.Anyone
/bot buyBuy bot access for the current server.Server manager
/bot submit paymentVerify a bot access payment.Server manager
/bot statusShow subscription status for this server.Anyone in server
/set walletSave a payout wallet (with optional name).Seller
/set walletremoveRemove a saved wallet by chain and name.Seller
/mywalletsList your saved chain wallets.Anyone
/set panelPost the purchase panel message.Owner / manager
/set purchase logsSet or clear the purchase log channel (all events).Owner / manager
/set payment logsSet or clear the payment-only log channel (verified payments).Owner / manager
/set ticket categorySet or clear the purchase ticket category.Owner / manager
/create role planCreate a role for sale.Owner / manager
/roleplansList role products in this server.Anyone in server
/buy roleBuy a role.Buyer
/submit roleSubmit a role payment TXID.Buyer
/myroleordersShow your role purchases.Buyer
/create sub planCreate a subscription product.Owner / manager
/subplansList subscription products in this server.Anyone in server
/buy subBuy a subscription.Buyer
/submit subSubmit a subscription payment TXID.Buyer
/mysubsShow your active subscriptions.Buyer
/create promo planCreate a promo slot plan.Owner / manager
/plansList promo plans for this server.Anyone in server
/myplansList promo plans you manage.Owner / manager
/buy promoStart the guided promo order form.Buyer
/submit promoSubmit the buyer payment TXID for a promo.Buyer
/myordersShow your promo orders.Buyer
/salesShow promo orders for this server.Owner / manager
/fulfillMark a paid or live promo as fulfilled.Owner
/closeticketClose the current purchase ticket and save a transcript.Owner
/checktxLook up a txid and return confirmation status.Anyone
/settingsShow live rates and bot payment wallets.Anyone
/helpOpen 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.