Legal · Discord apps · Developer Portal
Nefarious Options Levels privileged intents
Effective September 12, 2026 · Last updated September 19, 2026
Submission notes for Nefarious Options Levels, application 1521674844981297162. The running source was compared with the local source on September 15, 2026. Its configured client is new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }).
The deployed prefix commands use Message Content only. Server Members and Presence are unnecessary. Scheduled posts need no privileged intent. A slash-command migration is a viable alternative, and the current prefix design does not guarantee approval.
01Verified storage and retention status
Bot storage checked September 19, 2026. The inspected bot's persistent data is stored without encryption at rest.
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. Storage migration, bounded logs and a verified deletion procedure remain required operational work.
02Intent matrix
- Message Content — YES. The current nl and nli commands read ordinary, unmentioned guild-message text. Message Content enables that input. The parser checks accessible server messages for these prefixes; nonmatching messages produce no action. Scheduled levels posts require no privileged intent. Slash commands could remove this dependency, but are not implemented in the reviewed deployment.
- Server Members — NO. GuildMembers is not in the client. The allow-list reads message.member.roles.cache on the MessageCreate author — the member object Discord already attaches to that message. The bot does not enumerate the guild roster, assign roles, or listen for joins.
- Presence — NO. The bot never reads online, idle, DND, or streaming status. GuildPresences is not set.
What the gateway is used for
- Message Content — read nl / nli plus ticker tokens
- Guilds — stay in the configured Nefarious guild and resolve the auto-post channel
- Guild Messages — receive command events; sending replies and scheduled posts uses channel permissions, not this intent
03What does your application do?
Nefarious Options Levels is an operator-run Discord bot for the Nefarious trading community. Allowed-role members type prefix commands: - nl TICKER [TICKER…] — end-of-day gamma / options levels (up to 5 tickers) - nli TICKER [TICKER…] — the same request for an intraday snapshot The process reads that command text, fetches levels from a third-party options-levels API, and replies with a compact payload that a matching TradingView indicator can decode. It also auto-posts an EOD set (NQ1!, ES1!, QQQ, SPY, DIA) once per session night into one configured channel (id 1467266457246105843), skipping Friday and Sunday nights. The Discord.js client enables Guilds, GuildMessages, and Message Content only. The bot does not welcome members, assign roles, enumerate the server member list, run leveling or auto-moderation, or read online or streaming status. A role allow-list is checked on the message author’s member object that Discord already sends with MessageCreate. Levels are model/vendor output, not financial advice.
04Privacy Policy fields
Do you have a public Privacy Policy? Yes Where is it available? Publicly available on the official Nefarious website at the URL below. The operator must add this URL to the application's Developer Portal settings. Privacy Policy URL: https://www.nefarious.trading/legal/nefarious-options-levels/privacy Terms of Service URL: https://www.nefarious.trading/legal/nefarious-options-levels/terms
05Message Content — why (paste)
Check Message Content. Paste:
The deployed bot uses Message Content for ordinary, unmentioned guild messages beginning with nl or nli, followed by ticker symbols. - Members type commands such as nl QQQ SPY or nli ES1!. The bot checks the author's server roles, applies a per-user rate limit, requests levels for the supplied tickers and replies in the channel. - The client checks accessible messages in the configured server for these prefixes and takes no action on nonmatching text. It does not use ordinary chat for profiling or AI training. Without Message Content, ordinary unmentioned prefix commands lose their input. Scheduled posts continue to require no privileged intent. Discord provides exceptions for bot mentions and other supported cases; those are not the current command syntax. Slash commands are a viable migration path and have not been implemented. We are not applying for Server Members or Presence. Prefix convenience alone does not guarantee Discord approval.
Can users opt out of message-content tracking?
No dedicated per-user opt-out setting Members can avoid invoking the bot by not sending nl or nli commands. This does not prevent delivery of accessible channel messages to the bot or its prefix check. Server administrators can deny View Channel or remove the bot to prevent receipt. There is no per-user exclusion switch in the reviewed code. Privacy and deletion requests go to Business@nefarious.trading.
Storing message content off-platform?
Runtime memory; no intentional persistent chat archive The reviewed application does not intentionally write message bodies to a persistent chat archive. It parses command text in memory; Discord.js can also cache received messages in process memory. The code emits operational and error logs. Host log retention, backups and cache behavior must be checked before certifying an absolute retention or security answer.
Used to train ML / AI models?
No
06API data stored off-platform (not message bodies)
Discord IDs in configuration and user IDs in process memory are processed off-platform. The reviewed bot does not enforce a 30-day deletion deadline. Vendor credentials are separate from Discord message data. Verify the exact scope of the form question before submitting.
Configured Discord server, channel and role IDs persist in application configuration. Discord user IDs and request timestamps/counts are held in a process-memory rate map until restart; a 60-second calculation window does not delete inactive users' entries. Discord.js caches may also retain received data in memory. No automatic 30-day deletion is implemented. The vendor session cache is an operator credential, not Discord message content; it must not be confused with Discord user-data retention.
Checked September 19, 2026: the deployed persistent storage is on an unencrypted apps dataset. Container JSON logs have no configured rotation limits. Do not select Yes for encryption of all stored API data until storage and log remediation is verified.
Deletion contact: Business@nefarious.trading.
07Server Members and Presence — do not request
Leave those boxes unchecked. If Discord asks why you do not need them:
Server Members: GuildMembers is not in the client. The allow-list reads message.member.roles.cache on the MessageCreate author — the member object Discord already attaches to that message. The bot does not enumerate the guild roster, assign roles, or listen for joins. Presence: The bot never reads online, idle, DND, or streaming status. GuildPresences is not set.
08Real output and evidence limits
nl QQQ SPY — The bot replies with a short “Fetching end of day levels…” status, then edits that message to a compact ticker payload (call/put walls, HVL, 0DTE walls, GEX 1–10). That string is for the matching TradingView indicator, not a trade ticket. Levels can be missing, late, or wrong.
View this bot’s evidence →These real records establish the bot’s output. They do not establish that a member sent an unmentioned prefix command. For a Message Content request, add a recording or message links showing an authorized member’s actual nl or nli command and the resulting reply. Do not present a scheduled post as proof that Message Content is necessary. Slash commands would allow the same explicit ticker input without it.
- Nightly auto-post channel: https://discord.com/channels/909011353342181426/1467266457246105843
- This page: https://www.nefarious.trading/legal/nefarious-options-levels/intents#proof
Confirm the application ID and public policy URLs in the Developer Portal. Security controls and actual host retention still require operator verification. Questions: Business@nefarious.trading.
Reference: Discord Message Content documentation.
Also see our Terms of Service, Privacy Policy, and All-bot intents matrix.