Skip to content

Blah Features

Telegram API layers 233 and 232 are supported. Clients announcing a layer below 232 receive INPUT_LAYER_INVALID; newer announcements use the latest supported schema.

Account

Sign-up and sign-in

Recovery-word flows require matching client and cryptography runtime releases. telegram-tt remains on its old pin and is not migrated to recovery-word custody.

  • Diem device login on DCs configured with a federation identity (custom TDLib, Swift adapter and the Blah tweb and Telegram-iOS builds)

  • Create an account with 24 recovery words, verify three random words, or sign in using your domain and recovery words. Recovery enrolls a fresh local device; the words are the only identity backup

  • QR device linking for existing human accounts at the same home: a seed-holding device approves and publishes the new certificate. Allow this device to approve sign-ins defaults to off and transfers the seed only in the sealed grant when enabled. Approval satisfies the sign-in email code; Two-Step Verification still applies

  • Per-account custody in tweb: non-extractable WebCrypto P-256 devices and an AES-GCM encrypted seed under a non-extractable IndexedDB key, with the app passcode as an optional extra lock. Settings → Blah Identity shows domains, publication, public-profile export, renewal and recovery-word controls. Showing words requires explicit confirmation

  • Separate recovery words for tweb channel/group identities: shown and verified at creation, held encrypted in this browser, restorable by chat domain and words, and showable again. Give the words to the new holder for handover

  • Home DC in tweb’s Blah Identity page: Change home DC moves to a verified DC and warns that the old account is deleted; signing up there allocates a new user ID

  • Sign in to a managed account in tweb with either token; bot tokens are refused

  • Choose a home DC domain during tweb sign-in: verify its Ed25519 public profile, remember the home, and discover its TLS WebSocket endpoint and transport key. Multiple accounts can use different homes on the same browser origin; the client application must be accepted by each DC

  • Native identity custody in Telegram-iOS (iOS 18+): Secure Enclave P-256 devices and a sealed seed, optional Face ID protection and an optional iCloud Keychain seed copy. Home selection offers create, recovery-word and QR sign-in, plus Continue as domain for iCloud identities. Settings → Blah Identity manages the current account’s domains, publication, renewal, Face ID, iCloud and words; viewing words requires device authentication. Secure Enclave hardware is required

  • Holders renew profiles and all listed device certificates automatically at 80% of validity while the app runs. Removing local recovery words keeps the session as a non-holder; entering matching words restores management without replacing its device

  • Logout deletes that account slot’s local seed and device key. An optional iOS iCloud copy remains until removed. Old custody is discarded without secret migration

  • Layer-1 proof wrapper for individual account and resource operations; a Diem signed message binds a fresh challenge to the exact MTProto query. Current Blah clients use the shared BlahDiem payload contract; earlier proof and profile formats are rejected

  • MTProto HTTP/HTTPS transport with cross-connection sessions and long polling

  • API initialization remembered per permanent key and its bound temporary keys, across reconnects, transports and server restarts

  • Device login over PFS temporary keys and WebSocket MTProto connections, including zero-prefixed shared keys and reconnection with cached temporary keys after a restart

  • Diem supports ML-DSA-65, Ed25519 and P-256 keys. Current browser/native identities derive Ed25519 roots from recovery words and use P-256 session devices

  • Diem device certification of ordinary devices that never hold the identity key, with device removal enforced on active sessions, grants and locally hosted peers

  • Refresh registered Diem profiles from an independent HTTPS publisher; signatures, expiry and known version floors still determine authority. Swift applications supply that publisher when connecting and serve the initial profile before login

  • Domain lookup returns a local peer credential from a verified HTTPS profile on an operator-admitted home

  • Private text between independent homes, including user forwards, mentions and private replies, with durable local aliases; edits, revokes, ordinary reactions, shared pins, auto-delete timers, read receipts, typing and live presence also cross homes. Private polls, quizzes and checklists support votes, answer/task changes and forwards, including nested mentions and ordinary poll pictures. Private photos, documents and albums, including forwards of files from a third home, download through your own home. Stickers and custom emoji, including custom-emoji reactions, render through your own home; opening or installing another home’s set reads it from the home that created it. Screenshot notices, animated-emoji taps and the end of a deleted account also reach the other home. A bot on another home, once its owner gives it an identity, can be found by name, messaged, and answers with its keyboards and button taps

  • Channel relay between independent homes when enabled by their operators, for chats with their own identity 1: local channel credentials, owner-checked history and mutations, live updates, ordinary photos/documents, polls and to-do lists, stickers and custom emoji, channel pictures uploaded from another home, and third-home channel replies and forward references. Each receiving home independently confirms a channel’s identity and hosting with its owner before relaying operations or accepting live updates and membership; someone whose home cannot confirm the chat’s identity is not added to it. Foreign members receive channel edits, message and topic deletions, and forward counters live, with no fixed foreign-member cap. History and catch-up remain available from the channel’s home. A public channel or supergroup on another home is found by its name once the chat’s own identity claims it 2

  • Changing your home DC signs you up there as a new account, even while the old home is offline. Only your identity and its name follow you: history, contacts, drafts and blocks, including blocks others placed on you, stay behind. The old account ends as a deleted account for everyone, its media in your chats is handled as for any deleted account 3, and returning to a former home is an ordinary new signup. After signing up, your device republishes its profile with your account on that home

  • TDLib isolates per-account endpoints, keys and persistent caches across independent homes. Home switching clears the original cache and downloaded files while retaining device keys, and can resume local cleanup after an interrupted switch

  • Independent DC startup as DC1 of its own namespace, with local configuration, usernames, app policy and object IDs that remain retired after deletion and restart

  • A DC-local /admin console for local accounts to register applications and manage their accounts, with number approval in Blah and credentials shown once. Non-root owners may own up to ten applications; root is limited only by the DC-wide total. Root administrators also manage all applications, account admission, server options, root identities and peers

  • Browser setup for a new DC through BlahWeb’s /setup page and API: required public web, TLS WebSocket (default /apiws), raw TCP MTProto and BIDCOM endpoints, local identity generation with 24 recovery words and three-word verification, public discovery and a DC service account with recovery-word sign-in, initial root access and default support contact. Optional wizard steps connect S3-compatible file storage and enable profile hosting on a separate domain. Both can be skipped and set later at /admin. The step-by-step wizard ends by sending the operator to web-k.blahim.com to sign up with a one-time setup code; the account that sends the code to the service account becomes the owner, and the group it adds the service account to becomes the root-admin group, finishing setup. Setup loads pinned BlahDiem JavaScript and WASM from Blah’s CDN, which permits HTTPS *.blahim.com page origins. Operators can select another CDN hostname at startup with BLAH_DIEM_CDN_HOST. The feedback setup tool reads the runtime release advertised by the connected DC before loading it. Setup and recovery-word renewal use a fresh non-extractable temporary P-256 device. Setup failures identify the failed step and provide recovery or browser compatibility guidance

  • Automated DC provisioning through the application API’s setup operations, authorized by a provisioner-supplied BLAH_SETUP_KEY secret (or the generated, logged key); the DC only advertises the profile fields to sign and accepts the externally signed profile, and the operations close once the DC is installed

  • DC service-account sessions see automatic command replies as outgoing messages; guest replies arrive live without history replay. Ordinary text and files receive no automatic echo or file-description response

  • Optional profile hosting, enabled through DC setup, its provisioning API or /admin (admin changes apply at restart), or run as the standalone diem-profile-hosting server: identities claim names such as alice.id.example on an operator’s hosting domain by publishing their signed profile there. Native Swift clients can claim and publish through that host and activate the verified name as a username. Names are first come, first served; a proof of work, harder for shorter names, guards each new claim; and operators set per-identity name and hourly update limits

  • Public peer configuration export for operators, with federation signatures authenticating independent DC connections

  • Signed DC endpoint discovery from a domain, including WebSocket paths and TLS; admins configure additional endpoints and publish them with the DC recovery words

  • Recovery-word DC renewal through /setup or public signed-profile publication through Diem apex hosting without a restart. The DC advertises its apex as the claimed name @ and requires no claim proof for its pinned identity. Renewal keeps live operator devices and replaces other listed devices with a fresh temporary signer. Profile and device-certificate validity default to 90 days and are independently configurable; the DC holds no identity seed

  • Optional email verification before device signup and sign-in. A sign-in code is bound to the device-proof attempt and cannot authorize on its own

  • SRP Two-Step Verification after device proof, with recovery email and delayed reset 4

  • New-login notices and confirmation, including device-proof logins

  • Cross-DC media authorization through Telegram’s import/export authorization RPCs, using home-DC RSA-signed payloads, including for bots and managed accounts

  • Local client-app verification 5 and push credentials

The federation fork starts with fresh databases. Existing coordinated deployments cannot upgrade their account data in place; keep their data and backups separate. Fresh databases have a new object namespace even if the DC keeps its federation key. Human login requires a Diem device proof; legacy phone/number, email-only login and plain Telegram QR tokens do not admit an account. See Signing up for the current workflow.

Sessions and account lifecycle

  • Active sessions and automatic expiry, with one device per Diem session for life and retirement when it ends. Seed holders publish device removal before resetting other sessions; non-holders can enter words to gain management or log themselves out. Session-device mappings and errors support safe termination and pruning of explicitly retired devices
  • Connected website list and access revocation
  • Account deletion, including automatic deletion after inactivity 3
  • Blah Beyond tier 6

Profile and contacts

  • Name, bio and username 2
  • Add/remove profile domains in Blah Identity; every domain is a username candidate
  • Automatic rate-limited profile checks, plus /check_profile in the DC service chat; pending checks pick up newly accepted username domains within the configured limit
  • DC admin login by profile domain and matching a number in a private service-account message
  • Profile photos, photo history and public fallback photo
  • Personal channel
  • Name/message and profile accent colors 7
  • Online status and last seen
  • Contact import, adding, deletion and search
  • Add-contact action bar for non-bot viewers of existing private chats, with persistent dismissal
  • Contact lookup by Blah Number
  • Local support account and display name configurable in the DC web admin UI; changes apply after a DC restart
  • Public directory: find and message users, bots and public chats by username
  • Full-profile, photo-gallery and saved-music reads from another independent home, subject to the profile owner’s privacy settings
  • Profile video
  • Multiple verified domain usernames: activate, deactivate and order them in tweb; the Swift adapter verifies and activates published name claims
  • Collectible gift colors
  • General user blocking 8

Privacy

  • Last seen and online status
  • Group and channel invitations
  • Forward attribution
  • Profile photos and bio
  • Blah Number visibility and discovery
  • Voice and round-video messages
  • Read dates
  • Blah Beyond-only new-contact requirement 9
  • Independent DCs evaluate foreign contact restrictions and blocks at the owner’s home, and combine both participants’ defaults when initializing a private-chat timer
  • Call and peer-to-peer call privacy
  • Birthday and saved-music privacy
  • Gifts and paid-message privacy
  • Default message auto-delete

Chats

Private chats and chat list

  • 1-to-1 messaging and read receipts
  • Saved Messages
  • Pinned chats 10
  • Per-chat notifications and muting
  • Pinned messages in private chats
  • Private-chat screenshot notifications when reported by the client
  • Archived chats 11
  • Chat folders 12
  • Shareable folder links 13
  • Folder tag colours (Blah Beyond)
  • An automatic folder for the chats an app you signed into can reach 14
  • Secret chats
  • Chat themes

Groups and channels

  • Supergroups and broadcast channels
  • Admins and member permissions
  • Deployment root administrators from a designated supergroup 15
  • Usernames, titles and photos
  • Groups and channels with or without their own Diem identity 1
  • Invite links and join requests
  • Group join, invitation, approval, leave and removal notices
  • Pinned messages
  • Restrict saving or forwarding content 16
  • Delete a group or channel for everyone 17
  • Statistics
  • Profile accent colors 7
  • Multiple usernames
  • Asynchronously loaded statistics graphs

Group-specific features

  • Anonymous admins and custom member ranks
  • Anonymous admin actions and silent pin announcements in group history
  • Posting as an owned channel 18
  • Forum topics with tabs and sidebar layouts (layer 232 displays sidebar as tabs)
  • Group photo history
  • Members-only sending
  • Admin log 19
  • Seen By / read receipts for recent messages
  • Basic groups 20

Channel-specific features

  • Message signatures, including profile-linked signatures
  • Posting as the channel, yourself or an owned channel 18
  • Name/message accent colors 7
  • Comments and discussion groups
  • Channel direct messages and unpaid suggested posts
  • Subscriber-age poll restrictions
  • View counts, forward counts and message links
  • Automatic discussion-group pinning 21
  • Paid direct messages and paid suggested posts
  • Country poll restrictions

Communities

  • Communities linking channels, groups and bots 22
  • Visible or hidden linked peers
  • Collaborative linking or administrator approval requests
  • Community administrators, title, description, picture and deletion
  • Communities can have their own Diem identity, like channels and supergroups 1
  • Community-scoped bans 23
  • Collapse a community in the chat list 24
  • Search within a community 25

Messaging

Content

Independent-home discovery and cross-DC messaging are under development. The messaging features below are available locally; across homes, support follows the federation rollout. Edits, deletions, reactions, read receipts and similar changes for a home that is temporarily unreachable are delivered in order once it returns. A new message needs the recipient’s home to answer its privacy check, so it fails while that home is down, and it is briefly refused with a retry delay while too many changes wait for that home. If applying a queued change requires another unavailable home, that change remains eligible for retry instead of being discarded as invalid. A delivery to a reachable home returns its result without waiting for later queued changes.

  • Text formatting, links, mentions, hashtags, cashtags, phone numbers, bank card numbers and bot commands
  • Photos, videos, audio, voice messages and documents
  • Albums and custom emoji in text
  • Reactions, polls and quizzes in private chats, groups and channels. Default 👍 👎 ❤ 💯 🤣 👀 🥳 🫪 😜 reactions ship with animation and still thumbnails; clients receive only reactions with complete artwork, while existing reactions remain supported. An unavailable quick default falls back to the first reaction with complete, active artwork.
  • The web client’s attachment menu works without installed attach-menu bots
  • Checklists in private chats and groups
  • Typing and recording indicators
  • Replies, editing and forwarding
  • Quote replies, including replies to a message in another group or channel 26
  • Rich messages and rich quotes 27
  • Delete for self or everyone
  • In-chat search
  • Search across chats 25
  • Hashtag and cashtag search in chats and public channel posts 25
  • Shared media, files, links, music and voice panels

Drafts, scheduling and import

  • Drafts and scheduled messages
  • Send when online in private chats
  • Repeating scheduled messages
  • Telegram history import
  • Live import from connected services 28
  • Telegram channel and supergroup sync, one-way or two-way 29
  • Personal Telegram bots represent connected Blah users, including standard emoji reactions 30
  • Silent messages (notifications without sound)
  • Self-destructing media 31
  • Translations

Stickers and custom emoji

  • Set installation, archiving, reordering and search
  • Sets from another independent home install and open like your own; they do not appear in search
  • Sticker and custom emoji set creation and editing; a set’s short name is a domain name, found from any home once the set’s own identity claims it 2
  • A set whose profile advertisement is lost temporarily uses its identity as a short name while its home retries; a DC can configure a deletion grace period
  • Set thumbnails from documents you own, or clear the current thumbnail
  • Synced static, animated and video stickers render in channel and supergroup messages, including existing imports
  • The bridge reuses a Telegram pack’s mirror across synced chats and background copying
  • A sticker of a mirrored pack sent from Blah arrives in Telegram as that pack’s own sticker rather than as a copied file
  • Mask, Premium sticker, dice and official reaction sets (default 👍 👎 ❤ 💯 🤣 👀 🥳 🫪 😜 artwork is bundled)

Bots and applications

Bots

  • the DC service account security notices and sign-in approvals
  • Bot creation and management through @bot on legacy deployments 32
  • Bot creation and token rotation with the bot identity’s proof on device-authenticated DCs; bot names follow signed profiles, while @bot creation, token rotation and name-change commands and bot deletion or transfer are unavailable there
  • Extra usernames for a bot you own, from the domains its signed profile lists; removing one hides it until you add it again or drop it from the profile
  • Bot tokens and MTProto bot sign-in
  • Bot profiles, command lists by scope/language and menu buttons
  • Inline keyboards and callback queries
  • ?start= deep links
  • Bot access restrictions
  • Guest bots 33
  • Inline queries
  • Mini apps and bot payments
  • HTTP Bot API

Sign in with Blah and application API

  • Sign in with Blah: OAuth 2.0 / OpenID Connect with PKCE 34
  • Local device consent supports cancellation and Connected Websites revocation
  • Sign-in and sign-up pages on an operator’s own domain, under its own name for an account 35
  • Application registration and bot linking from the control panel 36
  • HTTP application API for channel, group, forum topic and community management 37
  • Community linking and link-approval requests through the API
  • Member listing, adding, promotion and removal through the API
  • Join a peer the application’s bot already belongs to
  • The peers an application reaches appear to the account as a folder of their own 14
  • A community an application creates shows as one chat by default 24
  • Managed accounts: accounts an application creates and runs, over the API or over MTProto, with one per-application limit (zero allows none; absent means unlimited) 38
  • An ordinary token for talking and a super token for changing anything else about a managed account 39
  • Either managed-account token reads unread chat and per-chat message counts over HTTP, including from a browser
  • Managed-account token sessions can contact their DC’s support account first; other private conversations require the recipient to write first 40
  • An application can create its own bot through the API, linked at once and owned by the application’s owner
  • Provisioning, bot, managed-account and custom service message API calls can be made from a browser on another origin
  • Support contact changes apply without a restart
  • Feedback DC setup page: a setup link and support name set up the application, bot, support account and widget, with optional S3 and design settings. DC recovery words are saved and verified separately. A downloadable/printable backup holds provisioning credentials and public references, excluding words, signing keys and S3 keys. Resume and renewal use the DC words; support signs in to tweb with its super token.
  • Embeddable customer support widget: the web client’s chat with the DC’s support account alone, in light and dark, with release archives, verified DC-domain setup, CSS variable previews and a downloadable configuration; the embedding page can choose the widget’s language from the DC’s language packs (platform webk_bfb); see the widget guide
  • Application custom service messages over HTTP or MTProto in local managed-account private chats and channels the linked bot belongs to, with optional silence, reactions and super-token-only content for managed viewers; root administrators can waive the bot prefix. These notices are not searchable or quotable
  • Ordinary message sending and history through the application API

Connected accounts, web and files

  • Consistent light and dark styling across public profiles, sign-in and operator web pages
  • New DC setups default to /apiws; the old root / remains a WebSocket-only alias for existing widget pins and signed DC profiles, whose exact paths are preserved. Browser deployments also route HTTPS POST /apiw1 on the same host and port, with long polls of at least 25 seconds; HTTP/2 at the reverse proxy is recommended
  • Web messenger connections through the pinned DC’s WebSocket or HTTPS endpoint, with recovery when the tab managing the connection disappears
  • Connect, replace and disconnect a Telegram account on the DC’s connections page 41
  • Imported sender attribution to connected Blah accounts
  • Public user, bot, group and channel profiles at blah.ing/{name} 42
  • Public channel timelines with older posts loaded as you scroll, formatted text, photos and photo albums; click a photo to open the image viewer. Other content includes a note to view it in Blah.
  • Public channel hashtag and cashtag lists, with clickable tags to filter posts
  • Apple push notifications (APNs)
  • Browser push notifications 43
  • DC root admins can update application push credentials without restarting
  • File upload, download and storage quotas 44
  • Language packs published from a public HTTPS git repository, with versioned updates for clients that support them
  • FCM push notifications
  • Stories, gifts and payments

Default reaction artwork adapts Google’s Noto Animated Emoji, licensed under CC BY 4.0, with timing, sizing and effects adapted by blah-reaction-art contributors.

Footnotes

  1. A group, channel or community created without its own identity is limited to members on its home. Its creator can give it one later by signing a title, description or photo edit with that identity. A chat with an identity can have members on other homes, and a group or channel can take a public username; deleting it or changing its owner then needs the identity’s signature. ↩ ↩2 ↩3

  2. A username is a domain name, such as alice.one.example. Its domain serves the identity’s signed profile at /.well-known/blah/profile.cbor, and that profile lists the domain. Every listed domain is a username candidate. Groups, channels and bots take names through identities their owners’ devices hold. The DC service account uses its DC domain; other system accounts keep their reserved dotless names. tweb’s Blah build supports dotted mentions. User domains appear as collectible usernames after verification, with visibility and ordering selected in Edit Profile; ordinary editable usernames are unavailable. ↩ ↩2 ↩3

  3. When an account is deleted, or leaves for another home, the DC service account asks each person it had a private chat with whether to keep the media it sent them there. Kept media stays in the chat and counts toward your own storage, and a copy held on another data centre is moved to yours. Deleting it removes those messages at once; your own messages and its text messages stay either way. You have 30 days from the deletion to answer, and no answer deletes them. Media it also posted in a channel or group stays there. ↩ ↩2

  4. Without a recovery email, a forgotten password resets after a delay; a signed-in device can cancel the request. ↩

  5. Unregistered client apps may sign in, but Blah shows an in-app warning. ↩

  6. Blah Beyond is the name of Blah’s Premium-compatible plan. It is granted by a Blah administrator, not sold. Until it expires, it raises upload, pinned-chat, public-link and per-message reaction limits and enables personal accent-color changes. ↩

  7. Administrators choose the available palettes and custom-emoji patterns. Changing your own name/message or profile palette requires Blah Beyond; changing a chat’s requires permission to edit its info. Groups can color only their profile; channels can color both. Blah does not enforce boost requirements. ↩ ↩2 ↩3

  8. Block and unblock users or bots, manage your block list, and prevent private messages, typing, profile-photo and presence access across data centres. Existing chat history and shared groups remain available. ↩

  9. New non-contacts need Blah Beyond to reach you; contacts and existing conversations remain reachable. ↩

  10. Each chat list — the main one and the archive — keeps its own pinned order, and a pinned chat keeps its pin when you archive it. The limits depend on your account tier. ↩

  11. Chats you archive leave your main list. An archived chat comes back when you write to it, and when it gets a new message unless you muted it — the privacy settings let you keep unmuted or foldered chats archived instead. You can also have first messages from people who aren’t your contacts arrive archived and muted. ↩

  12. A folder can select chats by kind (contacts, groups, channels, bots), always include or always exclude particular chats, and pin chats within itself. How many folders you can keep, and how many chats one can name, depends on your account tier. ↩

  13. A link can share a folder’s groups and channels with other people. Only chats someone else can join can be shared, and sharing a folder turns it into a plain list of chats. People who import your folder can be offered chats you add to the link later; their copy of the folder is their own. ↩

  14. Appears once an app you granted peer access to shares a chat with you, and holds exactly those chats, excluding Saved Messages. A community an app gathers its chats into is in the folder too: nobody joins a community, so being in one of the chats it gathers is what puts it there. It appears last by default, after All and your other folders. The server keeps it current, so its name, its chats and its settings are not yours to change — you can only move it among your own folders. It is absent while no app shares a chat with you. ↩ ↩2

  15. The DC service account is root until a root-admin group is set. The designated group’s local creator and administrators then receive deployment root access, including the DC account if it is an administrator. Changes sync automatically; configured human root identities retain access independently of the group. ↩

  16. Only the group or channel owner can enable it. Forwarding out is refused even for the owner; saving, copying and screenshot restrictions depend on the client. Existing copies are unaffected, and private chats have no such switch. ↩

  17. Only the owner can delete a group or channel, and it disappears for every member at once, including members on another data centre. Its public links are immediately free for someone else to claim. Its history, media and the storage they used are removed in the background shortly afterwards, so a large channel’s storage is released over the following minutes rather than instantly. ↩

  18. An owned channel hosted separately from the destination may be unavailable as a posting identity. ↩ ↩2

  19. Only entries within the server’s recent retention window are available. ↩

  20. Creating a basic group creates a supergroup instead. ↩

  21. Blah deliberately leaves channel posts unpinned in linked discussion groups. ↩

  22. A community groups peers, not messages. Membership comes from its linked chats; a peer can belong to only one community. Older clients may not show communities or their management controls. ↩

  23. A ban removes access to the community and its listings, not membership in its linked chats. ↩

  24. A community shows either as one entry or as the chats inside it, and the choice is yours per community. A community created by an app you signed into starts collapsed for everyone in it — the app is what those chats are — until each member expands it. ↩ ↩2

  25. A reply may quote a fragment of the message it answers, and may answer a message in another group or channel you can read — from a group, a channel or a private chat alike. A quote must still be text of the message it names, or the send is refused. A reply cannot point into a private chat, because a private message’s id means something different to each person in it. ↩

  26. Blocks, HTML and Markdown support rich media and quotes, drafts, scheduling, copies and cross-DC delivery. Streamed drafts go to users only and may embed already-uploaded media and custom emoji. Copies retain only ordinary URL and copy-text buttons. Local bots support rich ephemeral messages and inline results; public channel timelines display rich posts. Rich quotes in saved drafts, rich quick replies, login buttons, translation and AI composition remain unsupported. See the Telegram sync note for bridge behavior. ↩

  27. Imported messages retain their source sender and time. In a group, a sender connected to a Blah account is shown as that account; otherwise only the source attribution is shown, without the importing bot’s identity. Existing imports refresh automatically. Messages dated more than a minute away from the current time arrive silently through history refreshes, without push notifications or new mention alerts. Recent imports arrive live. ↩

  28. Requires a configured bridge and matching chat types. The bridge connects to an explicitly configured Blah home DC and keeps its state bound to that DC’s identity. The bridge bot’s private-chat command menu lists /sync, /sync_sticker_set and /status on both services, plus /bind_bot and /unbind_bot on Telegram. Mappings accept usernames or numeric channel IDs, including with two-way backfill. Copies into Telegram are bot posts, not original-user messages, and unsupported content is skipped. Forum topic renames and closures sync as well. Rich messages cross in both directions with their media and edits; rich-content refusals can fall back to plain text. Replies in Blah to synced Telegram messages reply to their originals when copied back, including messages synced earlier. In two-way sync, changing a mirrored copy does not rewrite its original. A reply answering a message in another chat is copied as a reply to that chat’s copy when the bridge syncs it too, or to a copy the bridge collects in its “Referenced Messages” group; a message the bridge cannot reach at all becomes an italic “In reply to ” header, with any quoted text below it. A message the bridge cannot read is skipped rather than stalling the chat, and a sync that stops is reported to whoever set it up and retried on its own, leaving your other syncs running. ↩

  29. Connect your Telegram account in the Blah control panel, create a managed bot through the syncer’s creation link from that account, and add it to the Telegram destination with permission to post. It sends only your Blah messages; other users keep the shared syncer with their names attached. If Telegram refuses a send, the fallback log includes its error and the syncer retries your bot after the membership check interval. If the syncer did not pick the bot up when you created it, bind it by hand from that Telegram account with /bind_bot @your_bot, or /bind_bot and its token for a bot you have the token of; /bind_bot alone lists the bots already representing you, and /unbind_bot gives one up. Live reactions use your personal bot and follow changes and removals, including on imported Telegram messages. Only your latest standard emoji is copied; custom and paid reactions are excluded. Previously recorded reaction targets are checked again after restart. ↩

  30. Timed and view-once photos, videos, voice notes and video notes in private chats between users. The timer starts when the recipient opens the content. This is separate from chat auto-delete; secret chats are not supported. ↩

  31. @bot replaces BotFather for bot creation and management. ↩

  32. An enabled bot can answer a mention or /command@bot without joining; its reply names who invoked it. Managed guest bots currently work only in chats hosted on the same data centre as the bot. ↩

  33. Each DC serves its own issuer and consent page. Approve either in Blah — enter your username or Blah Number and tap Approve in the message from the DC service account — or with a listed device signing the exact application request. Device authority changes can end access before a token expires. ↩

  34. A deployment can answer sign-in, sign-up and OAuth at extra domains, each its own OpenID Connect issuer and each able to call an account by its own name. On those domains, as everywhere, a sign-in is confirmed in Blah on a device. ↩

  35. Local accounts register their own applications at /admin, where API hashes and client secrets are shown once and can be rotated. An app’s owner requests a link on the DC’s /admin page, or the app requests one through the application API; the bot’s owner approves through a message from @bot, and nothing changes until they do. Peers owned by that bot remain ordinary chats, visible under the same membership and public-link rules in other clients too. ↩

  36. Calls act as the signed-in account, within its permissions, on peers shared with the app’s linked bot. Newly created peers belong to that account, with the bot added as administrator. Requires the peers scope. Topic CRUD exposes metadata and produces ordinary service messages; deleting a topic deletes its history. The separate bot-token surface sends custom service messages; ordinary message sending and history are unavailable. ↩

  37. Ordinary users to everyone else, but nobody signs up for one: it has no Blah Number and no login address and cannot be given either, and an application reaches it only through the tokens it is created with. New applications start with the DC default limit (100 unless configured otherwise), or unlimited when created by root. A root administrator may change any application’s limit without deleting existing accounts. Removing the application deletes all its managed accounts in the background, resuming after interruptions. Everything they use counts against the account that owns the application, and an auto-delete timer set at creation removes one that falls idle. Independent DCs enforce their own account allowance. Failed creation releases its reserved place in that allowance. ↩

  38. Both are shown once and sign the account in the way a bot token does. The ordinary one sends, reads and keeps track of messages, and may read account information; restricted application service content requires the super token. The super one is what edits the profile, the handle, privacy, and which chats the account is in. The console can rotate either token independently, showing the new value once; the other token stays valid, and current token sessions end. ↩

  39. Either token can open a private conversation with the home DC’s configured support account, subject to ordinary blocks and contact privacy. For every other person, that person must write first; the managed account then answers like any other account. Groups and channels it has been added to are unaffected. ↩

  40. On an independent DC, open /connections and approve with your listed device. Telegram verifies its account, then a second device approval confirms the exact account ID. Linking supports import attribution and contact discovery; it grants no Blah login access and starts no synchronization by itself. Authority changes require fresh approval. ↩

  41. A public name is a domain, such as blah.ing/alice.example.com; the proxy shows it from whichever DC is its holder’s home. ↩

  42. Browsers receive visible message and reaction notifications; silent housekeeping notifications remain app-only. ↩

  43. Files above 10 MiB use Telegram’s large-file upload method. Temporary upload buffers and simultaneous uploads are bounded; clients may receive a retryable flood-wait response while uploading. Reconnecting or retrying a temporary storage-write failure preserves acknowledged parts, so clients can retry the unanswered part. Slow storage does not interrupt an admitted file or album send at the RPC deadline. Connection keepalives remain responsive while uploads wait on storage. ↩