Legal · Discord apps · Developer Portal
Nefarious Copytrading privileged intents
Effective September 12, 2026 · Last updated October 26, 2026
Paste pack for Discord’s Privileged Intent form for Nefarious Copytrading (application ID 1523859110016188536). The reviewed source implements: REST polling reads one signal channel. A Guilds-only Gateway client serves administrator interactions without privileged intents. Message Content is requested for continuous reading of ordinary source embeds, not for the fallback commands. Confirm the deployed configuration before submission. Public legal pages and this explanation do not guarantee Discord approval.
Apply for Message Content only (limited to one signal channel). Do not check Server Members or Presence.
On this page · 9 sections
01Reconsideration and fallback functionality
#Prepared October 26, 2026. Message Content for the configured administrator-only signal input. This is review material, not a submission receipt or approval.
The Copytrading service reads structured trade signals and subsequent management updates from its configured Discord source channel. The source material is ordinary messages/embeds produced in that channel, not interactions with this application. The parser needs the signal fields and update text to distinguish a new signal from subsequent management instructions and preserve the original message identity for deduplication. A slash command can deliver a manually entered signal and a message-context action can deliver one selected message. Neither automatically receives the next ordinary source-channel update. Requiring an administrator to select or re-enter every event changes a continuously monitored feed into a manual dispatch process and creates a risk of an omitted or reordered update. These are workflow constraints, not promises of execution speed or profitability. The request is limited to that configured input. The broker connection and outgoing Discord log messages do not themselves require Message Content. Any manual fallback must show whether processing can execute broker orders, require explicit administrator confirmation, preserve the existing execution flags and run through the same deduplication and processing path. Alternatives considered Administrator-only status and explicit selected/manual signal submission are useful fallbacks. They must not expand the audience or enable broker execution that was disabled. REST history polling is also subject to Message Content restrictions; changing transport is not a workaround for denied access.
Continuity while access is reviewed
Deployed and verified: administrator-only /copy_status, /copy_submit and Process copy signal. Guilds-only Gateway access supports interactions without Message Content. Confirmation shows the active broker mode; a five-minute source-age guard and shared message-ID deduplication prevent treating old or already handled signals as new. Existing execution-enabled and Discord-posting-disabled settings were preserved.
Only administrators are intended to operate this application. Selected historical signals must not be replayed as fresh trades. No broker action is triggered to create application evidence. Actual storage, broker mode and deletion practices must be disclosed accurately.
02Deployed administrator fallback
#On October 26, /copy_status, /copy_submit and the Process copy signal message action were deployed and their administrator-only registration verified. The Gateway client requests standard Guilds events only. Fourteen isolated tests covered permission checks, confirmation races, freshness, shared deduplication, parsed values and processing during poll backoff. No test submitted a Discord message or a broker order.
Manual requests require a source in the configured signal channel younger than five minutes, a private preview and confirmation by the same administrator. A bounded queue feeds the existing polling worker, rechecks age and processed-message IDs, and does not advance its polling cursor. /copy_submit identifies pasted text as manual input; the message action receives its selected message through Discord's interaction exception.
Broker execution was enabled and connected after deployment; automatic Discord log-channel posting remained disabled. Those flags, the broker handlers and existing data mount were preserved. The fallback supports deliberate manual operation but does not continuously detect every later source update. Storage and retention gaps remain separate from whether the interaction commands work.
03Verified storage and retention status
#Bot storage rechecked October 26, 2026. The inspected bot's persistent data remains on unencrypted app storage. Historical NAS snapshots also retain copies.
The bot’s logs have no configured size or file-count limits. No automatic expiry was established for those logs. Do not select “Yes” for encryption of all stored API data or promise a 30-day deletion limit on the basis of this page.
The retention and deletion rules below describe each data category. A removal request must also address logs and backups containing the requested data. Retained-copy migration, bounded logs and a verified deletion procedure remain required operational work.
04Intent matrix
#- Message Content — YES (limited). The REST poller reads trade embed titles and descriptions from one configured signal channel. These contain pair, order, entry, stop and target values needed for the connected operator account. Message Content restrictions apply to REST responses, including embeds, subject to Discord’s documented exceptions. It does not poll other channels or DMs. All messages in the watched channel are examined; unmatched messages can leave a 200-character diagnostic excerpt.
- Server Members — NO. The process never lists members, assigns roles, welcomes joins, or reads nicknames. It does not open a Gateway connection with Server Members.
- Presence — NO. The process never reads online, idle, DND, device, or streaming status.
What Discord is used for
- Message Content — read embed title/description on one signal channel (NEW TRADE / REENTRY / UPDATE)
- REST GET /channels/{id} — baseline last_message_id on startup
- Automatic Discord log-channel posting is disabled in the inspected deployment; private interaction responses remain available
- Admin-only /copy_status, /copy_submit and Process copy signal; no Server Members or Presence
- Manual fallback: source channel and 5-minute age checks, same-administrator preview confirmation, bounded queue, shared source-message deduplication
05Application details (paste)
#What does your application do?
Nefarious Copytrading is an internal, admin-only operations tool. It is not a public consumer product, not listed for other communities to install, and not an offer of a trading service to the public.
The Discord application polls one operator-configured analyst signal channel over the Discord REST API (GET /channels/{id}/messages) about every five seconds. It looks for existing rich embeds titled NEW TRADE ALERT / NEW TRADE IDEA / REENTRY / TRADE UPDATE. When the embed text matches a pair / order / entry / stop / take-profit card, the process may place orders on an operator-connected cTrader account through Spotware's Open API. On October 26, broker execution was enabled and the broker was connected; automatic Discord log-channel posting was disabled. Ordinary members cannot attach a broker or operate the executor.
The deployed fallback now offers /copy_status, /copy_submit and the Process copy signal message action. These require Administrator permission in the configured signal or log channel. Manual requests use a source message from the configured signal channel, no older than five minutes, followed by a private preview and explicit confirmation by the same administrator. The preview states that processing can place, modify or cancel real orders. /copy_submit clearly labels manually supplied text; it does not pretend that a REST lookup returned protected source content. A bounded queue passes confirmed requests to the existing polling worker and shares its source-message ID deduplication without advancing the poll cursor. These interactions need no privileged Gateway intent.
The bot does not welcome members, assign roles, level users, track invites, read presence, scan DMs, or read the rest of the server. It examines all messages in the configured signal channel, not just posts from a particular author. Unmatched posts can be recorded as a short diagnostic excerpt.Do you have a public Privacy Policy?
Yes
Where is your Privacy Policy available?
Publicly accessible on the official Nefarious website at the Privacy Policy URL below. Set that URL in the application's Developer Portal settings.
Privacy Policy URL
https://www.nefarious.trading/legal/nefarious-copytrading/privacy
Terms of Service URL
https://www.nefarious.trading/legal/nefarious-copytrading/terms
Install URL (operators only; not a public listing): https://discord.com/oauth2/authorize?client_id=1523859110016188536&scope=bot%20applications.commands
06Message Content intent (paste)
#Why do you need the Message Content intent?
Message Content is required, and only for a limited job: reading the embed text of analyst trade cards in one configured channel.
The continuous poller calls GET /channels/{channel.id}/messages on a single signal channel. Message Content restrictions apply to REST too. Ordinary analyst cards from another app are not the application's own messages, DMs or mentions. Without their embed text, the poller cannot read Pair, Order, Entry, SL or TP values or detect later TRADE UPDATE embeds that move stops or cancel pending orders.
We implemented admin-only interaction fallbacks while seeking access. A message-context command does supply its selected message, and a slash command can accept manually supplied text. Those controls support deliberate manual processing; they do not continuously detect every new analyst card and later stop-management/cancellation update. Requiring an administrator to notice, select, inspect and confirm every event changes the automatic workflow and introduces human delay. We request Message Content for that continuous source-processing feature, not for the commands, status display or outbound messages. We do not claim the manual alternative is technically impossible or promise that Discord will approve the distinction.
The poller examines every message in the one configured channel and can store a short diagnostic excerpt of unmatched content. Source-channel permissions determine who can supply messages. The manual path separately requires Administrator permission, channel and freshness checks, preview confirmation and shared deduplication. No Server Members or Presence access is needed. Message text is not used to train machine-learning or AI models.Proof links
- https://www.nefarious.trading/legal/nefarious-copytrading/intents#proof
- https://www.nefarious.trading/legal/nefarious-copytrading/privacy
- https://discord.com/channels/909011353342181426/1081025463654297640
Can users opt-out of having their message content data tracked?
No — no automated per-user opt-out.
The current implementation has no per-author exclusion or in-bot opt-out. It reads all messages in one configured signal channel. Contact Business@nefarious.trading for deletion or to request that operators stop collection or change the watched channel. Operators can stop the process or remove channel access. Not posting in that channel avoids new collection but does not delete existing records.
Are you storing message content data off-platform?
Yes.
Yes, limited operational copies for the operators — not a public member archive. On the operator host (nefarious-copytrading data volume) we keep: (1) trades.json — parsed signal fields (pair, side, entry, SL, TPs), update text, execution metadata, and Discord message ids; unmatched messages may log the first ~200 characters plus embed titles; (2) state.json — last_message_id, a rolling list of processed message ids, and open-signal fields. Manual processing also records the confirming administrator's user ID, source message ID and whether text was supplied manually. Pending previews and the bounded request queue are held in memory. The manual and automatic paths use the same retained processed-message IDs. We do not store a general chat log of the Discord, DMs, or public member profiles. cTrader OAuth tokens and broker client credentials are stored as operator secrets for the live account they already operate. Those are not Discord end-user credentials and are not published.
Will the message content data be used to train machine learning or AI models?
No.
07Off-platform API Data (paste)
#- Storing API Data off-platform? Yes (parsed signal fields, message ids, operator event log). Broker tokens are separate operator account data, not Discord API Data.
- 30 days or less? No. trades.json appends events without an automatic age limit in the reviewed code. state.json retains up to 2000 processed Discord message IDs plus open-signal fields. Both can retain Discord data beyond 30 days. Hosting-log and backup retention must also be checked. Broker tokens are separate account data and persist until rotated or removed.
- Deletion contact: Business@nefarious.trading (Business@nefarious.trading).
- Encrypting at rest? The October 25 storage check found the persistent app dataset unencrypted. The October 26 fallback deployment preserved that data mount and did not remediate storage encryption or retention. Do not select Yes for encryption of all stored API data until storage and log remediation is verified.
08Server Members and Presence — do not request
#Leave those boxes unchecked. If Discord asks why you do not need them:
Server Members: The process never lists members, assigns roles, welcomes joins, or reads nicknames. It does not open a Gateway connection with Server Members. Presence: The process never reads online, idle, DND, device, or streaming status. N/A — we are not applying for Presence No — we do not collect presence
09Verified CzarFX signal and copy execution
#Signal channel (Nefarious / Czarfx cards): https://discord.com/channels/909011353342181426/1081025463654297640. The operator log channel is private. Privacy: /legal/nefarious-copytrading/privacy.
View this bot’s evidence →1. Source-message parsing verified
Source message 1550085736546566217 in the configured CzarFX channel contains the GBPNZD SELL signal. The deployed parser extracts its pair, side, entry, stop and targets. An offline run of that pure parser reproduced the fields in the bot event. The runtime configuration and source-message ID were checked read-only; no order was triggered by this audit. Message Content restrictions also apply to these REST reads.
2. Matching operator result
Log message 1550085761125322774 identifies the same source signal in its footer and reports cTrader (live). The matching bot event reports one order. Account risk settings and position sizes are redacted from the public excerpt. These records verify processing and reported execution, not an independently confirmed broker fill.
Reference: Discord Message Content documentation. A source-channel link requires membership and is not a substitute for an accessible demonstration.