Skip to Content
Nextra 2 Alpha
DocumentationReferenceAll limits in one place

All limits in one place

Every hard limit documented elsewhere in this manual, gathered in one place and grouped by feature. Three deliberately unpublished non-limits: no display-name / bio / description character cap was found anywhere; the /menu Manage Groups picker has no group cap (only the buy bot’s separate pool does); pollSeconds has no reader and is treated as vestigial.

LimitValueNotes
Commands per Telegram menu scope100telegramCommandsLimit, applied to each of the three default setMyCommands scopes.
Memoised owner-menu records500MAX_MENU_SCOPES — oldest dropped first (FIFO).
Manage Groups / buy-bot-groups picker scan40 groupsMAX_GROUP_CHECKS — the live admin-status recheck stops here; groups beyond it can’t appear as a fresh row, though an already-allowedGroups entry still shows as an “extra” ✅ row.
Group title shown on a picker row48 characters
DM-authorized usernames50 per bot, ^[a-z0-9_]{5,32}$Dashboard-only — Groups tab → Authorize A DM. No Telegram command creates one.
General group allowlist (allowedGroups)No cap foundNeither the dashboard nor /menu’s Manage Groups picker passes a limit — do not repeat HELP_TEXT’s 10-group figure here, that cap belongs to the buy bot’s own pool below.
Buy bot’s posting-target pool10 — separate from the allowlist aboveSee Buy bot, below.

Buy bot

The Enforced/Notes column names the surface that applies the cap — the Telegram bot process, the dashboard’s API layer, or both when the same value is checked twice.

Groups, prompts and dispatch

LimitValueNotes
Target groups per bot10MAX_TARGETS (bot) / MAX_TARGET_GROUPS (dashboard). /enablebuybot and the dashboard’s group patch both refuse an 11th with Limit reached, we're already in 10 groups. Remove a group first…
Prompt TTL600 s (10 min)A pending settings or fork-wizard prompt is rejected once it’s this old.
Settings dispatch timeout20 sThe dashboard call behind every /buybotsettings action.
Fork dispatch timeout45 sThe dashboard call behind /forkbuybot.
Fork dispatch rate limit20 requests / 60 s/api/internal/dispatch, action fork-buybot.
Settings dispatch rate limit60 requests / 60 s/api/internal/dispatch, action buybot-settings.
Group-title rescan300 sManage Groups card, background reread between an explicit open or Refresh.
Token lookup memo600 sCached DexScreener token lookup, keyed chain:contract.

Message content

LimitValueNotes
Caption cap, post carries media1024 visible UTF-16 unitsEvery buy post; trailing lines that don’t fit are dropped whole.
Caption cap, text-only post4096 visible UTF-16 unitsSame, when the post has no photo, GIF or video.
Fork source text8192 charactersBefore the pasted post is even parsed.
Runs per header, and per row96headerParts, and independently for each of the 6 row keys.
Runs per body256bodyParts.
Text per run200 charactersAny header, body or row run.
Emoji-atom glyph text8 charactersThe fallback text of a premium-emoji run.
Chart label24 characterschartLabel, default Chart.
Contract address accepted160 charactersAny CA pasted or sent to the bot.
LimitValueNotes
Extra links4extraLinks.
Extra-link label32 characters
Buttons on a post12buttons.
Button text64 characters, default Open
Link display on the settings/socials card40 characters (37 + )
Fork “Removed:” list8 items, 40 characters each/forkbuybot’s summary of stripped content.
Error text in a callback alert180 characters
Error text stored or echoed200 charactersSettings-dispatch and fork failures.

Buys, pools and holders

LimitValueNotes
Max emojis in the size rowdefault 50, clamp 1–80maxEmojis.
USD per emojiclamp 0.01–1e9usdPerEmoji.
Min buydefault $0, clamp 0–1e9minBuyUsd.
Watched pools per familyEVM uncapped, Solana 16, Sui 12, TON 10Best pools first.
New-holder ratio1000×{POSITION} reads a percentage only up to this multiple of the buyer’s pre-buy balance; above it, and at a zero balance, it reads New!.
Holders cache300 sThe buy-post {HOLDERS} lookup, per chain:contract.
Posts per catch-up burst5Missed buys posted after a reconnect or restart, at most this many at once.
Buy staleness cutoff600 sA buy older than this at catch-up time is marked seen but never posted.

Media, outside the dashboard uploader

LimitValueNotes
Settings-patch media (base64)20 MB, any 2–4 character extensionThe media field of a /buybotsettings dispatch patch.
Fork photo20 MB/forkbuybot’s attached media, at the dispatch layer.
Dashboard drag-and-drop uploadjpg/jpeg/png/webp 5 MB, gif/mp4/webm 20 MBThe multipart upload path, separate from the two rows above.

Raid bot

Command and matching

Command limits

LimitValueNotes
Goal maximum100,000 per metric
Goal minimumAt least one metric above 0
Numeric token lengthUp to 6 digitsA 7-digit token is rejected as unparseable, not as out of range.
Numbers per commandExactly 1 or exactly 3One applies to all three metrics; three map to likes, retweets, replies in order.
Tweet handle length1–15 word characters
Concurrent raids, whole bot8Refused for a new chat past this cap; a chat that already owns a raid can still replace it even at the cap.
Raids per chat1A new /raid replaces the running one.
Consecutive failed fetches before giving up30
Poll interval1 second
Minimum gap between board edits3 seconds, and only if the text changed
Board reposition interval120 seconds
Reposition retry interval10 secondsOn a failed repost.

Message and template size

LimitValueNotes
Photo caption1024 visible characters
Text message4096 visible characters
Over either limitWhole trailing lines dropped
Intro / footer / end-state text700 visible characters
Board template (boardHtml)1000 visible charactersA board built close to this ceiling can still exceed the 1024-character photo-caption cap once rendered — the overflow drops a whole line at a time, silently.
Metric label120 visible characters
Plain emoji16 characters
Premium emoji ID5–32 digits
Raid imagejpg, jpeg, png or webp, up to 5 MB
Allowed HTML tagsb i u s code pre blockquote tg-spoiler tg-emoji a
Link schemehttps:// or tg:// only
Progress-bar catalog24 designs per bot
Mint waitUp to 12 minutes, polled every 3 seconds

Busy reply

Sent by anyone once the bot is already running 8 raids and the sending chat has none of its own: “Too many raids running right now — try again soon.” No raid starts.

Holders & custom commands

/holders

LimitValueNotes
Contract address accepted (dashboard save)256 characters, [a-zA-Z0-9._:-]+
Chains with a keyless holder source8 of 9HyperEVM has none and is permanently ; the dashboard’s chain dropdown never lists it.
Preferred-source wait2.0 sPREFER_WAIT_S — the preferred source’s own answer window before the race falls back to whichever source answers first.
Hard wait6.0 sHARD_WAIT_S — gives up if nothing has answered by then.
Dispatch lane timeout6.0 sDISPATCH_TIMEOUT_S, for the CoinGecko leg specifically.
Result cache15 s per chain-and-address pair, single-flighted
Warm-refresh window600 s since the last askACTIVE_WINDOW_S — outside it, an idle bot asks the free sources nothing.

Custom commands — button board

LimitValueNotes
Buttons per command12 maxThe Add Button control disables at the cap.
Label length64 characters
URL schemehttps:// onlyA bare host is auto-normalised; an explicit http:// is rejected on save.
Colours4Gray (default), Blue, Green, Red.
LayoutHorizontal or StackedStacked is the default.
Premium-emoji icon id5–32 digitsAnything else is silently dropped when the live config is built.

Custom commands — per-command and API

LimitValueNotes
Visible reply length4096 charactersTelegram’s own cap, measured after HTML tags are stripped and entities collapsed to 1 character each.
Stored markup size64 KiB (65,536 characters)Of raw response markup.
Batch create50 commands per API callAn items array on the create action.
Management API rate limit60 requests / 60 seconds per IPShared across every /api/bots/management resource, not specific to commands.

MP3 downloader, presets, reference images & queue status

MP3 downloader

LimitValueNotes
Output320 kbps MP3Tagged with title, artist, duration; the bot’s own Telegram avatar embedded as cover art.
Telegram upload cap49 MB per track
Source file cap600 MB
Max track duration3 hours
Single-track timeout300 s
Concurrent downloads3Shared bot-wide across single tracks and playlists.
Per-user cooldown20 s, same user + same chat
Repeat-link cache24 hoursTelegram’s own file_id is re-sent instantly.
Playlist track cap30 tracks
Playlist timeout1500 s
ZIP upload cap1900 MB
Playlist choice window600 sThen the prompt is deleted.
Bare-command hint lifetime45 sThen the hint and the command are both deleted.

Image edit presets

LimitValueNotes
Presets15Fixed set — see the Image edit presets chapter for names.
Prompt idle timeout300 sThe bot deletes its own prompt and the original /presets message.

Reference images

LimitValueNotes
Reference images per character4MAX in refs.py.

Queue & GPU status

/whoisactive, /whichport and /whichlora read a live probe every time — none of the three cache or poll on a schedule, so no numeric limit applies to them beyond the command-access rules in the table above.

Owner controls, whitelist & moderation

Rate limits and blocks (Management → User Limits)

LimitValueNotes
Restriction durations offered5 — Permanent (default), 1 hour, 1 day, 3 days, 7 daysThe API accepts a custom duration up to 157,680,000 s (~5 years), but no dashboard path reaches it.
Daily Limit minimum1Daily limit must be an integer >= 1 below it.
Daily Limit maximumNone
Daily Limit default for a new restriction50

Twitter whitelist (Twitter bots only)

LimitValueNotes
Handle pattern^[a-z0-9_]{1,15}$After trim, leading @ stripped, lower-cased.
Cap200 handlesThe AddUsers button disables itself at the cap.
AddingBulk-paste onlyNo single-add path.

Moderation

/ban and /mute carry no numeric limit of their own beyond the fixed 24-hour mute duration and the single Admin Moderation switch that gates both — see the command table for who may send them.

X automations

Every hard number across feed, phrase and follow-tracker automations, recap, posts on demand, follower lists, contract-address cards, and forum topics.

Automations and rules

LimitValueNotes
Automations per bot10Every plan.
Rules per entry8phrase and follow only.
Rule value0 – 1,000,000,000,000Ratio rounds to 2 decimal places; every other kind is floored.
Rule tolerance0 – the entry’s own rule countClamped to the rule count on save.
ca rule wait (follow only)8.0 sJudged instantly on a phrase entry — no wait.
Buttons per entry12feed/phrase only.
Button style options3primary, success, danger.
Button label64 charactersHard-truncated, not rejected.
Custom-emoji button icon id5–32 digits
Message / link label / recap row / recap header500 characters eachRejected over, not truncated.
Phrase length120 characters
Handle1–15 letters, digits, underscore
Minimum-followers gate ceiling1,000,000,000
Uploaded image5 MB, jpg / jpeg / png / webp

Recap

LimitValueNotes
Recap timesUp to 3, HH:MM, deduplicatedAmerica/New_York, always.
Recap prep lead300 s (5 min) before each slotOne re-fetch per queued hit.
Recap send window900 s (15 min) after each slotA missed slot is skipped, not queued.
Recap hits kept100Oldest dropped first.
Recap message split4000 characters per partHeader appears on the first part only.

Feed and phrase polling

LimitValueNotes
Feed / follow poll interval5.0 s
Phrase poll interval10.0 s
Feed announces per tick3The rest wait for the next tick.
Phrase announces per tick5
Follow announces per tick3Oldest first.
Feed ids remembered50
Phrase ids remembered300
Follow ids remembered1000Oldest trimmed first.
Follow armingUp to 5 pages of the account’s Following listSeeds the seen list before announcing anything.
Backoff30 s, doubling to 300 s (5 min)On a 429 or a long miss streak.
Miss streak before backoff24 misses
Failures before backoff6 failures
Search results window100 rows per request

Posts on demand

LimitValueNotes
Posts per press5
Free-press window after a follow300 s (5 min)No request inside this window.
Timeline page size20 postsPer request.
Timeline pages read per later press4
Posts shown per card, max40
Post text on a card220 characters
Post quote on a feed/phrase card600 characters (400 as a photo caption)
Graphic render timeout20 s
Tracked account’s own profile cache6 h, retried after 10 min on a missThe graphic’s “who followed” side.

Follower lists

LimitValueNotes
Follower-list message3800 characters / 45 rowsWhichever comes first.
Follower-list name28 characters
Follower-list pacing0.4 s between parts
Follower-list flood-wait honouredUp to 300 s, 6 attempts per part
JSON-document thresholdOver 200 followersTop 20 message + complete list as a JSON file.
Harvest cache120 s
Harvest request timeout240 s

Contract-address cards

LimitValueNotes
CA announce budget (profile scan)1.5 sNever waited for the search.
CA late-edit window20 sOne edit, whatever came back.
Tokens shown per card3
CA candidates remembered per card60Not re-resolved.

Cards and topics

LimitValueNotes
Cards kept per entry30Oldest trimmed first; rich-delivered only.
Bio on the rich card600 characters, expandable past 200 visible characters
Bio on the classic card280 characters as text, 200 as a caption
View-button name20 charactersEllipsised past that.
Topic kinds3alerts, lists, achievements.
Topics remembered40 groups × 200 topics each
Topic idA whole number, 1 – 2,147,483,647

Multi-chain scanner & calls

The scanner itself

Deliberately uncapped

The scanner enforces no burst cap, no per-message cap, and no repeat cooldown — every candidate address in a message gets its own card, and pasting the same address again immediately still gets a fresh reply every time. The one place multiple mentions fold together is inside a single message, where the same address pasted twice produces one card, not two.

LimitValueNotes
Chains recognised9See Chains and data sources.
Chains with a keyless holder source8 of 9HyperEVM permanently .
Socials button rows2 per row, up to 4🌐 Website · 𝕏 Twitter · ✈️ Telegram · 💬 Discord.
Second-website label truncation16 characters

Milestone alerts

LimitValueNotes
Thresholds11 — 2, 3, 4, 5, 10, 20, 40, 100, 200, 500, 1000×CALLS_MULTIPLIERS; a multiplier is never announced twice.
Poll cycleEvery 15 secondsCoins fetched from DexScreener in batches of 30 addresses per request.
Hot-tier recheck~15 s (every cycle)Called, or a new all-time-high market cap, within the last 14 days.
Cold-tier recheck600 s (10 min)Everything else.
Poll giveup5000 consecutive checks with no trading pairThe coin stops being polled entirely.

The calls commands

LimitValueNotes
Reply split threshold3800 visible characters per partSent 3.1 seconds apart; a split header gets a · part k/n suffix.
/leaderboard windows4 — all time, 1d, 7d, 30dCase-insensitive tokens; unrecognised windows get a usage reply.

Emoji packs

LimitValueNotes
Spin styles (Telegram wizard)119 of the 11 have no described look anywhere in the codebase.
Colours (Telegram wizard)7No textures in this path.
Spin styles (web coin studio)2
Colours (web coin studio)6, plus a custom hex picker
Textures (web coin studio)7, plus Auto
Finish toggle groups (web coin studio)9 groups, 21 options, plus a 50–200% animation-speed slider in 5% steps
DM-resolvability cache600 sA successful check is not repeated within the window.
Packs listed per page10
Emoji rendered inline on a pack’s detail card100Beyond that: +N more.
Edit Pack Name replyTruncated to 64 characters
Existing Emoji clone cap (Telegram wizard)200 stickers per setFirst 50 in the initial create call, the rest appended one at a time.
“No, surprise me” title49 characters + - @memescaleai = 64 total
LimitValueNotes
Tiles per banner8 (512 × 512 px each)4096 × 512 px master, no configurable pack-size maximum.
Default loop length1.2 s (72 frames at 60 fps)Unless the design’s own bake reports otherwise.
Banner text / second text (Two-Text)24 characters each
Pack name (Export) / save-design name48 characters each
Image upload (From Files)4 MB
Lottie JSON upload4 MB
Font upload (.ttf / .otf)3 MB
Saved designs per account200
Saved design spec size16,384 bytesspec too large over it.
Concurrent packs generating, same account4
Global pack queue, whole platform48
Pack job timeout45 minutes
Tile size ceiling (Telegram)64 KB per tile

Dividers

LimitValueNotes
Visible presets2531 families exist in the catalog; 6 more are retired (hidden, not deleted).
Colours17Default selection: Red.
Cells — Commands / Raid / Automations picker11
Cells — hyperlink navigation12Resolved from a second catalog, divider-catalog-12.json — 41 families, 30 colours, none exposed in the ordinary picker.
LimitValueNotes
Builder steps5Website URL, Buckets, Link selection, Preset, Command.
Live presets3white (17 colour variants), white-theme (17), diamonds (14 material variants).
Selectable buckets1 of 6Only Socials — the other five show a “Coming soon” pill.
Link cap6The active configuration allows up to 8, but the compiled cap of 6 always wins.
Custom-emoji ceiling100, configurable 1–no maxOver it, divider rows drop bottom-up until the message fits or every divider row is gone; link rows and the banner row never drop.
Site-discovery storageUp to 1,000 platform groups × 100 candidates eachIndependent of the 6-link cap, so an edit can reopen every original candidate.
Detection rate limit12 scans / 60 s per IPNo exemption for paying accounts.