Owner controls
STOP and UNDO are bare-uppercase keywords sent in a private chat with the bot, not slash commands. /showlimits reads back the dashboard’s rate limits and blocks. The rest of this chapter — User Limits, the Twitter whitelist, Owner Notifications, and Transfer Bot Ownership — is dashboard-only.
STOP and UNDO
STOP and UNDO are bare-uppercase keywords, not slash commands. Neither is listed in Telegram’s own / command menu — both have to be typed from memory, exactly as shown, with nothing else in the message.
Where they work
| Setting | Value |
|---|---|
| Chat type | A private chat (DM) with the bot only. Sent in a group, supergroup, or channel, neither keyword matches anything. |
| Sender | The bot’s owner, or a Memescale platform admin. A Telegram group’s own admins do not qualify from this alone — the check has nothing to do with any group’s admin list. |
| Matching | Case-insensitive — stop, Stop, and STOP all match. The message has to be exactly that word: extra words, punctuation, or trailing text stop the match. |
STOP
Sending STOP replies Notifications have been disabled. You can re-enable them anytime with /start. This is a single master switch, separate from the three Owner Notifications toggles below — while it’s off, none of the owner’s dashboard-triggered DMs go out, regardless of what those three toggles say.
/start, sent by the owner in the same private chat, turns it back on. The very first time the owner ever runs /start, the bot also replies with the line that documents this relationship: Notifications on. You'll get pings here for rate limits, profile changes, and other key events. Reply STOP to mute, /start to re-enable. Every /start after that re-arms notifications silently, with no confirmation text of its own.
UNDO
UNDO is wired to reverse the single most recently remembered change to the Command Changes or Rate Limits & Blocks toggle (see Owner notifications, below). It replies with one of these:
UNDO’s replies
| Condition | Reply |
|---|---|
| No change is remembered | No recent notification changes to undo. |
| A remembered change is restored | Notification changes have been undone. |
| The bot isn’t linked to a dashboard account | Couldn't undo that here — manage notifications at memescale.ai/dashboard. |
| The restore call fails for any other reason | Couldn't undo that — manage notifications at memescale.ai/dashboard. |
UNDO has nothing to undo today
Toggling Command Changes or Rate Limits & Blocks from Settings → Notifications does not arm this — that save path explicitly tells the bot not to remember the previous value. No other path in the dashboard feeds it either. As shipped, sending UNDO always gets the first reply above.
/showlimits
/showlimits prints every blocked user and every rate-limited user configured for the bot — the same data as Management → User Limits, read back into the chat. It shares STOP and UNDO’s private-chat, owner-or-platform-admin restriction, but it is a real slash command: the leading / is optional, an @botusername suffix is accepted, and matching is case-insensitive.
What it prints
| Input | Output |
|---|---|
| No restrictions on the bot | <b>User Restrictions</b> No restrictions configured for this bot. |
| 2 blocked users, 1 rate-limited user | <b>User Restrictions for @examplebot</b> <b>Blocked Users:</b> @spammer1 @spammer2 <b>Rate Limited Users:</b> @chris -- 25 commands/day |
Sent with Telegram’s HTML parse mode, so the <b> tags shown above render as bold text rather than showing literally.
Rate limits and blocks
Management → User Limits lists every per-user restriction on a bot; its bot picker includes every bot on the account, Telegram or Twitter. Each restriction is one of two kinds, chosen from a Restriction Type dropdown:
Restriction kinds
| Dropdown label | Table label | Limit column shows |
|---|---|---|
| Rate Limit | Rate Limited | {n}/day |
| Block | Blocked | - |
Rate Limit is the default kind for a new restriction.
Adding a restriction
- Click Add Restriction.
- Enter Username (a leading
@is accepted and stripped). This field becomes read-only once you reopen an existing restriction to edit it — only a new restriction can set the username. - Pick Restriction Type: Rate Limit or Block.
- Rate Limit only: set Daily Limit — an integer, minimum 1, no maximum. It defaults to 50.
- Pick Restriction Duration (see below). It defaults to Permanent, and reopening an existing restriction to edit it always resets this field to Permanent on screen, regardless of what’s actually stored until you change it again.
- Click Add Restriction (the button reads Save Changes when editing).
- Permanent (no expiry) — default
- 1 hour
- 1 day
- 3 days
- 7 days
Limit
The dropdown offers exactly these five values. The API behind it will also accept a custom duration up to 157,680,000 seconds (~5 years), but nothing in the dashboard UI reaches that path — every save from Management → User Limits uses one of the five above.
Daily Limit and other rules
| Setting | Value |
|---|---|
| Daily Limit minimum | 1. Both the form and the server reject anything lower: Daily limit must be an integer >= 1. |
| Daily Limit maximum | None. |
| Username | Trimmed, lower-cased, leading @ stripped. No length or character check. |
| Duplicate username | Blocked before it reaches the server: Restriction already set for @{username} on this bot. |
| Expired restrictions | Hidden from the list entirely — not shown, not marked expired. |
| Deleting | Trash icon → confirm dialog Delete Restriction: Are you sure you want to remove the restriction for @{username}? This action cannot be undone. |
Every save from the pencil-edit path — Restriction Type, Daily Limit, or Restriction Duration changed, then Save Changes clicked — appends one entry to that restriction’s edit history, even if the values end up unchanged from before. Each entry records an ordinal (1st_Edit, 2nd_Edit, and so on), a timestamp, and the restriction’s previous type, daily limit, and expiry. A clock icon next to the username — shown only once at least one edit exists — opens an Edit History popup listing every entry.
Note
Deleting a restriction here asks for confirmation. Deleting a Twitter whitelist entry, below, does not.
Twitter whitelist
The Whitelist tab (/dashboard/whitelist) is Twitter-only — it isn’t part of the Telegram tab set. It controls which X accounts can trigger a Twitter bot by @mentioning it; a mention from anyone not on the list is filtered out at X itself, with no cost and no delivery to the bot.
Whitelist rules
| Setting | Value |
|---|---|
| Handle pattern | ^[a-z0-9_]{1,15}$, checked after the handle is trimmed, its leading @ stripped, and it’s lower-cased. The dashboard and the server enforce the identical pattern. |
| Cap | 200 handles. The add button disables itself at the cap, title="Max 200 reached". |
| Adding | Bulk-paste only — there is no single-add path. |
| Removing | One click on a row’s trash icon. No confirmation dialog. |
The add button reads AddUsers — one word, no space between “Add” and “Users”.
Adding handles
- Click AddUsers. A portal titled Add Users to Whitelist opens.
- Paste handles into the textarea — one per line, or comma/space-separated. A leading
@is optional. - The preview updates live: how many are new, how many are already on the list, and how many are rejected (shown as chips, up to 8 new / 6 rejected, with a
+n moreoverflow past that). - Click Add {n} user(s) — the button’s own count tracks what you’ve typed.
The portal’s own placeholder text, parsed
| Input | Output |
|---|---|
| Placeholder shown in the textarea | @alice @bob charlie, dave eve |
| Parses to | 5 new: alice, bob, charlie, dave, eve — 0 rejected |
One handle per line and comma/space-separated handles on one line both work, and both appear in this same placeholder.
Limit
Pasting more than the remaining room replies
Combined list would exceed 200 entries (current: {n}, adding: {m})and saves nothing. The portal’s footer always shows the total a save would produce:After save: {n} / 200 whitelisted.
Owner notifications
Settings → Notifications, on-screen title Owner Notifications, controls which dashboard edits DM the bot’s owner. Bots with no Telegram bot on the account see No Telegram Bots — “Owner notifications are only available for Telegram bots.” Exactly three toggles exist, every one ON by default:
Owner Notifications toggles
| Label | Description | Default |
|---|---|---|
| Command Changes | DM the owner when text or button commands are added, edited, or removed. | ON |
| Rate Limits & Blocks | DM the owner when rate limits or blocked users change. | ON |
| Profile Changes | DM the owner when the bot’s profile (name, bio, avatar) changes. | ON |
Each card reads Notifications On or Notifications Off.
Two of the DMs these toggles gate
| Input | Output |
|---|---|
| Rate Limits & Blocks — adding a Rate Limit restriction | ➕ <b>Rate Limit Set</b> User: @chris Daily Limit: 25 prompts/day |
| Command Changes — turning Admin Moderation on | 🛡️ <b>Moderation Updated</b> Ban: Enabled Mute: Enabled |
Moderation’s own DM is gated by Command Changes, not Rate Limits & Blocks — see the Moderation chapter.
STOP overrides all three
The STOP keyword, above, silences every owner DM regardless of these three toggles; /start re-arms it. These three only decide which categories fire once that master switch is on.
Transfer Bot Ownership
Dashboard → Profile → Advanced Bot Settings → Transfer Bot Ownership moves a Telegram bot to a different Telegram account and is permanent: the current owner loses access immediately, and only the new owner can manage the bot from then on. Changing your own Telegram @username needs no transfer — ownership already follows your account.