Clean Join Bot Clean Join BotDocumentation
Telegram group hygiene

Your group, without the clutter.

Clean Join Bot removes Telegram's "joined the group" notices the moment they appear — and, if you want it to, the contract addresses and links that ordinary members drop in your chat.

The Clean Join Bot mascot holding a broom

Introduction

There is nothing to configure to get the main job done. Add the bot to your group, give it the permission to delete messages, and every X joined the group notice disappears as it is posted.

Everything else is optional and decided per group by that group's administrators. A setting you change in one group never affects another, and it is remembered across restarts.

The rule behind everythingAdministrators are never filtered. Every cleanup below applies to ordinary members only — if you are an admin, your own messages are always left alone.

Getting started

  1. Add the bot to your group. Open your group, go to members, and add @clean_joinbot.
  2. Promote it to administrator. Telegram only lets administrators delete messages, so a plain member cannot do the job. In the admin permissions, Delete messages is the one that matters.
  3. That's it. Join notices start disappearing straight away. No command needed.

Common mistakeAdding the bot without promoting it looks like it is working — it sits quietly in the group and does nothing, because Telegram refuses the deletion. If notices are still piling up, check the Delete messages permission first.

Token launch

A launch window is when a group is worth attacking: fake contracts, cloned admins, wallet-draining links. One command locks everything down, and one lifts it.

/prelaunchMaximum security. Deletes anything a member posts that carries a link, a contract address, a forward, or a known scam phrase.
/prelaunchoffBack to your normal settings.

What it removes

While it is on, an ordinary member's message is deleted if it contains any of the following. Administrators are untouched, so your own announcements go through.

RemovedWhy it matters during a launch
LinksThe delivery method for wallet drainers and fake sale pages.
Contract addressesStops a fake contract being posted alongside the real one.
Forwarded messagesA forward carries someone else's framing into your group.
Wallet prompts"Connect your wallet", "verify wallet", seed phrase and private key requests.
Fake support"Official admin", "support team" — the classic impersonation opener.
DM lures"DM me", "inbox me" — moving a victim to a private chat is step one.
Giveaway baitAirdrops, free mints, presales, whitelist spots, "claim now".
Guaranteed returns"Risk free", "100x", "double your holdings".

It does not rewrite your settings

Prelaunch sits on top of whatever the group already had. If contract cleanup was off before, it stays off in your settings and is simply overridden while prelaunch runs. Turning it off with /prelaunchoff puts you back exactly where you were, with nothing to reconfigure.

How the scanning worksDetection is pattern-based and runs locally on every message, so it is instant and has no per-message cost. It is deliberately narrow: during a launch, deleting a real holder's message is more damaging than letting one borderline post stand, so ordinary chatter — "gm", "what time does trading open", "the chart looks good" — is left alone.

Join notices

This is the default behaviour and needs no command. Any administrator can still turn it off for their group and switch it back on later.

/cleanoffStop removing "joined the group" notices here.
/cleanonStart removing them again.

Contract cleanup

Off by default. Once switched on, any message from an ordinary member containing an Ethereum address is deleted.

/cleanethStart deleting member-posted contract addresses.
/cleanethoffStop that scan.

What counts as an address

0x followed by exactly 40 hexadecimal characters. Transaction hashes are 66 characters long and are deliberately not matched, so quoting a transaction is safe.

Where the bot looks

The message body, the caption of a photo or video, and the target behind a hidden hyperlink — text that reads "click here" but points at an address does not slip past. Edited messages are checked again, so nobody can post innocent text and edit an address into it a minute later.

Worth knowingNothing on-chain can tell a contract from an ordinary wallet without querying a node, so every 0x… address a member posts is treated the same. For an anti-scam filter this is usually what you want: "send ETH to 0x…" gets removed too.

Leave notices

Off by default, and the natural companion to join cleanup: on a busy group, "left the group" clutters just as much.

/cleanleftStart removing "left the group" notices.
/cleanleftoffStop removing them.

Who is exempt

Filters apply to ordinary members. Deciding who counts as an administrator has a few edge cases worth stating plainly.

AuthorFiltered?Why
Administrator or ownerNoThe whole point — admins post freely.
Anonymous administratorNoPosts under the group's own identity.
The linked channelNoArrives as an automatic forward.
Member posting as their own channelYesA common way to disguise a member post — not treated as privileged.
Ordinary memberYes

Fail-safeIf the administrator list cannot be read at that moment, nothing is deleted. Removing an admin's post is a worse outcome than letting one member message stand, so the bot errs towards leaving messages alone.

Command reference

For group administrators

Send these inside the group you want to configure. Ordinary members who try get a short refusal instead.

CommandEffectDefault
/prelaunch · /prelaunchoffLaunch lockdown — everything below, plus scam phrases and forwardsOff
/cleanoff · /cleanonJoin notice removalOn
/cleaneth · /cleanethoffContract address cleanupOff
/cleanlinks · /cleanlinksoffLink cleanupOff
/cleanleft · /cleanleftoffLeave notice removalOff

For everyone

CommandEffect
/start · /helpWhat the bot does and how to set it up.
/myidYour numeric Telegram ID, ready to copy.

Limits

Some of these come from Telegram itself and no bot can work around them.

LimitWhat it means for you
48 hoursBots cannot delete messages older than that. Cleanup applies to the live flow, never retroactively to your backlog.
Groups onlyGroups and supergroups. Channels are not supported.
One chainOnly Ethereum-style 0x… addresses are matched. Solana, Tron and Bitcoin addresses are not.
Admin, alwaysWithout the Delete messages permission the bot cannot remove anything, including join notices.

FAQ

Join messages are still showing up. Why?

Three things to check, in order. Is the bot an administrator, not just a member? Does it hold the Delete messages permission? And has somebody run /cleanoff in that group?

The first two are by far the most common. Telegram simply refuses the deletion, and the bot has no way to announce that in the group.

Does /prelaunch undo my other settings when I turn it off?

No. It overrides them while it runs rather than rewriting them, so /prelaunchoff puts the group back exactly as it was. Nothing to reconfigure afterwards.

Will /prelaunch delete my community's normal messages?

Ordinary chatter is left alone — the scam patterns are deliberately narrow, because during a launch deleting a real holder's message costs more than missing one borderline post.

What it will catch broadly is every link and every contract address from non-admins, with no exceptions. If your members normally share links, expect those to go while it is on.

Can it clean up the notices already in my chat?

No. Telegram forbids bots from deleting anything older than 48 hours. The bot works on messages as they arrive; your existing backlog has to be cleared by hand.

I posted a contract address and it wasn't deleted.

You are almost certainly an administrator, and admins are never filtered — that is the intended behaviour. To see the filter work, test from an account that is an ordinary member of the group.

Does the bot read everything we write?

It examines group messages for the patterns you switched on, and for nothing else. No message content is stored — not the text, not the addresses, not the links.

What is kept is listed under Privacy.

Does it tell a contract from a normal wallet?

No. Telling them apart requires querying an Ethereum node, so every 0x… address posted by a member is removed. For blocking scams this is usually preferable, since "send ETH to 0x…" is caught as well.

What about Solana or other chains?

Not matched at the moment. Only the Ethereum address format is recognised.

Can someone post clean text and edit an address in afterwards?

No. Edited messages are put through the same checks as new ones.

Can I use it in a channel?

No. Groups and supergroups only.

Why do commands show up as /cleaneth@clean_joinbot in my group?

That happens when more than one bot is in the group: Telegram appends the bot's username so you can pick which one you mean. It is the Telegram app doing it, not a setting — with a single bot in the group, the suffix disappears.

What happens if the bot can't check who the admins are?

It deletes nothing at all until it can. Wrongly removing an administrator's message is treated as the worse failure.

Do my settings survive a restart?

Yes. Every per-group switch is stored, and comes back exactly as you left it.

Privacy

The bot keeps the minimum it needs to do its job:

StoredWhy
Group ID and titleTo keep track of the groups the bot is in.
Per-group switchesSo your choices survive a restart.
A count of deletions per groupDiagnostics only; never shown in the group.

No message content is ever written down — not the messages it deletes, not the addresses or links it finds, not who posted them. Deletions are noted in the server log for troubleshooting and that log is not part of any group.