How to Use Telegram Stickers and Make Your Own Pack
A sticker pack looks like the least serious thing on Telegram. It is a row of cartoons, somebody made it in an afternoon, and it sits between the keyboard and the emoji panel where nobody thinks about strategy. Then you notice that your pack has been installed by people who have never opened your channel, that it travels into group chats you were never invited to, and that every one of those stickers carries a link back to the set that produced it.
That is the part worth understanding. A pack is one of the very few things on Telegram that moves without you. It is also one of the few things where the rules are strict, published and enforced by refusal, which means most of the frustration people have with sticker creation is not artistic at all. It is a file that was ninety one frames too long, or a name that somebody took in 2019, or a video with an audio track nobody meant to include.
This article covers what a set actually is, why the word pack means something different in the protocol than it does in conversation, the naming rule that makes a short name permanent, the three formats and their exact specifications, the refusals you will meet and what each one really means, how emoji and keywords decide whether anybody finds your work, why custom emoji sets follow different arithmetic, and what to put in a pack if the point is that people use it. Every specification and every refusal quoted below was pulled from Telegram's own documentation on 8 August 2026 rather than remembered.
Why a Pack Is a Distribution Asset
Stickers leave the room
Everything else you publish stays where you published it. A channel post reaches subscribers, a group message reaches members, an advertisement reaches whoever paid for it. A sticker gets installed once and then travels for years inside private conversations, in groups you have no access to, in front of people who have never heard of you. There is no other object on the platform with that property, and it costs nothing per use.
The set is the unit, not the sticker
An individual sticker always carries the identity of the set it belongs to. In the protocol every sticker document carries an attribute pointing back at its own set, which is why tapping any sticker anywhere offers the whole pack. So the useful thing to build is not a good sticker, it is a set worth installing, because installation is the moment the asset actually attaches to somebody.
Install is a decision, and it is reversible
Be honest about the ceiling here. Installing a pack is a deliberate act and uninstalling it is one tap. Nobody keeps a pack out of loyalty. Packs that survive on a person's keyboard are the ones that say something they actually want to say often, which is a much narrower brief than making twenty nice drawings.
It is worth adding that the tooling for this is not third party. Telegram's own list of things it built itself is short, and the sticker bot is on it alongside the animation search bot, which the platform names directly when explaining that it does not usually make bots. So the creation path is an official one rather than a community workaround, and it has been stable for years.
Set, Pack, and a Word That Means Something Else
What you call a pack, the protocol calls a set
This confuses everybody who reads the documentation for the first time, and Telegram says it outright. Stickers are grouped together in what people call sticker packs, but in the interface they are referred to as sticker sets, because the name pack is reserved for something else. Getting this straight matters the moment you read any error message, because the refusals use both words and they do not mean the same thing.
A pack is a grouping by emoji
Inside a set, a pack is the list of sticker identifiers attached to one particular emoji. When you fetch a set you get the set information, the full list of stickers, and a separate list of these emoji groupings. That structure exists so that typing one emoji can surface several stickers from the same set.
One sticker can live under several emoji
Because of that structure, the same sticker identifier can appear in more than one of those emoji groupings, which is Telegram's documented way of associating a sticker with more than one emoji. The one shown as the preview in the chat list comes from a separate field on the sticker itself. That is a design detail with a practical consequence, since a sticker attached to four emoji has four chances of being surfaced by somebody typing rather than browsing.
The set object itself carries more than a title. Alongside the identifier and the address there are markers recording whether the set is archived, whether it is an official Telegram set, whether it holds masks or emoji, whether it is installed and when, how many stickers are in it, and whether the person asking is its creator. Anything a client shows you about a pack is drawn from that list, which is why two people can look at the same set and see genuinely different interfaces.
The Name Is a Public Address, and It Is Permanent
The short name becomes a link
Every set has a short name, and that short name is the address people use to install it. The rules are exact rather than stylistic. Only English letters, digits and underscores are allowed, it has to begin with a letter, it cannot contain consecutive underscores, and it must be between 1 and 64 characters. The title is a separate field, also 1 to 64 characters, and that one is free text.
It has to end with the bot that made it
Here is the rule that surprises people who plan a name in advance. A set created through the interface must have a short name ending in an underscore, the word by, another underscore and the username of the bot that created it, and the documentation notes that this suffix is not case sensitive. So the address is never purely yours. It always records which bot produced the set, permanently and in public.
Taken names are refused, not queued
There is a specific refusal for a short name that somebody already holds, stating plainly that a set with this name already exists, and a separate one for a name that breaks the format rules. Neither is negotiable and there is no release mechanism documented. Pick the name knowing it is the address forever, check it before you build anything, and treat a good short name the same way you would treat a username, because that is effectively what it is. The same discipline applies to the rest of your public naming, which we covered when writing about who controls what in a chat.
Three Formats in One Set
Static, animated and video, and they can mix
Telegram supports three kinds of sticker, and the documentation states that a single set can contain a mix of all three. That is more useful than it sounds, because it means you do not have to decide up front whether your pack is an animation project. You can ship still images, then add motion to the two stickers people actually use, without starting a second set.
Format and type are two different questions
There is a second axis that is easy to conflate. Type describes what the sticker is for, and there are three, regular, mask and custom emoji. Format describes what the file is, static, animated or video. The documentation is explicit that the type of a sticker is independent from its format, so a custom emoji can be a still image and a regular sticker can be a video.
Type is chosen once, at creation
The type is set when the set is created and there is a refusal that makes the consequence clear, stating that the mask and emoji options are mutually exclusive. A set is regular by default. So this is a real decision rather than a setting, and getting it wrong means building the whole thing again under a new name, which by then is a name you have already used.
The independence of type and format is easy to verify on any sticker you receive. The object carries a type field naming what it is for, and separate markers saying whether it is animated and whether it is a video. Those are three different questions with three different answers, and a tool that assumes an animated sticker must be a regular sticker, or that a custom emoji must be still, will be wrong on real data often enough to matter.
Static Stickers and the 512 Rule
One side must be exactly 512
Static stickers are WebP images, and the size rule is stricter than most people assume. Either the width or the height must be equal to 512 pixels. Not roughly, not at most. One of the two dimensions is exactly that number and the other is whatever your artwork needs. Transparency is supported, and in practice transparency is the whole point, because a sticker with a white box around it reads as a screenshot.
Custom emoji have their own size, and it is not 512
If the set is a custom emoji set the rule changes completely. The resolution must be exactly 100 by 100 pixels, square, both sides. This catches people who design a beautiful set at sticker size and then decide to make an emoji version of it, because that is not a resize, it is a redraw. At 100 pixels a detailed illustration turns into a smudge.
Design for the size it is actually shown at
Worth saying plainly, since it is the mistake that survives every technical check. A sticker is displayed small and an emoji is displayed smaller still. Fine lines, small type and subtle gradients all disappear. Bold shapes and one strong silhouette survive. The file will be accepted either way, so nothing will warn you, and the only test that matters is looking at it at the size a reader sees.
There is a cheap way to run that test properly. Export one candidate at the real dimensions, send it to yourself, and look at it in the chat list preview rather than in your design tool. The chat list is the harshest display the sticker will ever get, because it is shown next to text at a size nobody chose for artwork. If it still reads there, it will read everywhere else.
Animated Stickers Are Vector, Not Video
The format is Lottie in a Telegram wrapper
Animated stickers are Lottie vector animations. Telegram uses a specific file format for them, which the documentation describes as a compressed Lottie file, played back through a dedicated rendering library. The point of vector here is size and sharpness, because the animation stays crisp at any display size and the file stays tiny compared with video.
Four rules that are enforced, not suggested
The specification is short and every line of it is a constraint. The canvas must be 512 by 512 pixels. Objects must not leave the canvas. The animation must not exceed 3 seconds. All animations must be looped, and all of them must run at 60 frames per second. That last pair is the one that trips up animators working from film habits, where 24 or 30 frames is normal and a loop is optional.
Three seconds is a creative constraint, not a technical one
Treat the duration limit as the brief rather than the boundary. Three seconds at 60 frames is 180 frames, which is enough for one gesture and nothing else. Packs that work tend to be a single motion that reads instantly, because a sticker is sent as a reply, and a reply that takes three seconds to make its point has already been overtaken by the conversation.
It has to be sent as a file
There is a refusal specifically for this and it is worded as an instruction, telling you that the animated sticker must be sent as a document. Uploading it as an image will not work, because that path recompresses. It is one of the most common first failures and it has nothing to do with the animation itself.
The same restriction turns up in a second place that catches automated pipelines. A still sticker can be handed over as a web address for Telegram to fetch, but animated and video stickers cannot, and the documentation states plainly that those two cannot be uploaded that way. Anything building sets programmatically has to hold the file and upload it rather than pointing at a link, and that is a difference in architecture rather than a parameter.
Video Stickers and the Audio Trap
The codec and the container are both specified
Video stickers must be encoded with the VP9 codec inside a WebM container. The same 512 rule applies, one dimension exactly 512 for stickers and exactly 100 by 100 for custom emoji. The maximum duration is 3 seconds, the frame rate can go up to 30, transparency is supported, and the documentation says the video should be looped for the best result.
There must be no audio stream at all
This is the requirement people miss, and it is stated as an absolute. The container must have no audio stream. Not a silent track, not a muted one, none. Most editing software adds an empty audio track without being asked, and the file then fails a check that says nothing about sound, which is why this particular failure feels mysterious the first time.
Two more refusals worth knowing in advance
There is one refusal for a video sticker that is simply too big, one for a file that is not actually in the expected container format, and a third telling you that the video sticker has to be sent as a document, the same requirement as the animated case. Together with the dimension refusal, those four cover essentially every video sticker rejection you will see.
The Refusals You Will Actually Meet
They are specific, which is a gift
Sticker creation is unusually well signposted. The creation call alone has nineteen documented refusals and almost all of them name the exact problem, whether the file is not the image type it claims to be, whether the dimensions are wrong, whether the emoji attached to a sticker is invalid, or whether no sticker was supplied at all. When something fails, the message is worth reading literally rather than guessing at.
The empty set refusal is more common than it looks
There is a refusal for a creation attempt with no sticker provided, which sounds like a mistake nobody would make. In practice it is what you get when every file in your batch failed its own validation and the request arrives with nothing left in it. So read it as a summary rather than as a separate problem.
Sets have ceilings, and they differ by type
Two refusals cover a set that is full, and the published numbers behind them are worth planning around. Emoji sets can hold up to 200 stickers. Every other kind of set can hold up to 120. Separately, a set is created with an initial batch of between 1 and 50 stickers, so a large pack is always a creation followed by additions rather than one upload.
Editing after publication is limited but real
You can add stickers, remove them and change their order after the set exists, and each of those has its own refusal for a sticker that is not valid or no longer there. What you cannot do is rename the set's address or change its type. Plan the parts that are permanent, and treat the contents as the part you are allowed to be wrong about.
One consequence of that arrangement is worth planning around if you are building tooling rather than uploading by hand. Fetching a set takes a marker from the previous fetch, and if nothing has changed the server says so instead of sending anything back. If something has changed, however, the whole set comes back, and the documentation is explicit that this happens even when only a few stickers were altered or reordered. There is no partial update to sync against, so a client holding a local copy of a set is either up to date or refetching all of it.
Emoji, Keywords and Being Found
Every sticker needs at least one emoji
A sticker is attached to between 1 and 20 emoji, and there is a refusal for an invalid one. This is not decoration. The emoji are how the sticker gets suggested when somebody is typing, and a sticker with one emoji attached is a sticker with one route to being used.
Keywords are a second route, and they are small
Regular and custom emoji stickers can also carry search keywords, up to 20 of them, with a total length across all of them of no more than 64 characters. That total is the constraint people miss. Sixty four characters is roughly eight short words, so keywords are not a place to describe the artwork. Use the words somebody would actually type when they are looking for the feeling, not the words that describe the picture.
Think about what people type, not what you drew
The practical version of this is simple. Somebody reaching for a sticker is expressing something, so the useful keywords are reactions rather than nouns. A drawing of a cat asleep on a laptop is not found by the word cat, it is found by the words people use when they want to say they are done for the day. This is the same discipline as writing a post title that matches what people search for, which we went through in finding channel content ideas.
It also helps to know how sets are shown to somebody who has not installed them. Depending on where a set appears, a client may receive only its details and a single preview sticker, or its details and several previews, or the entire contents at once. That last form exists specifically for custom emoji sets, to save a second request. In the first two cases the reader is judging your whole pack on one or two images that you did not get to choose deliberately, which is another reason to keep the strongest work at the front.
Custom Emoji Are a Different Animal
They are a set type, not a separate system
Custom emoji are organised in exactly the same sets as stickers and follow the same three formats, with the size rule changed to 100 by 100. The difference is in how they are used. A sticker is a message, and a custom emoji sits inside one, in the middle of a sentence, in a caption, or as the status next to a name. They also turn up in places that are not messages at all, since Telegram keeps dedicated sets for things like the icons shown on forum topics, which is worth knowing if you run a group that has been split into topics.
The entity has to wrap exactly one emoji
This is the rule that silently breaks things, and it is stated without ambiguity. When you send a message containing a custom emoji, the marker for it must wrap exactly one ordinary emoji, specifically the one the custom emoji is registered against. If it does not, the server ignores it. There is no error, no warning and no visible failure. The message simply arrives with a plain emoji where your branded one should have been, which is why this fault usually gets discovered by somebody else.
There is a ceiling per message, and it is generous
Telegram publishes a limit on how many custom emoji one message may carry, and the live value is 100. That is far more than anybody needs, which makes it a useful reference point rather than a real constraint. If your message is bumping into it, the problem is the message.
There is a second marker on a custom emoji that decides who may use it, recording whether it is available to people without a subscription. That is a meaningful distinction for a brand set, since an emoji only your paying audience can send is an emoji that does not travel. It is worth checking what your set actually produces rather than assuming, because the marker sits on each emoji rather than on the set as a whole.
Some emoji recolour themselves
There is a flag on a custom emoji that tells clients to repaint it, so that it takes the colour of the surrounding text in a message, the accent colour when used as a status, white on a chat photo, and an appropriate colour elsewhere. Sets can be created with this behaviour turned on, and it applies to custom emoji sets only. It suits a monochrome mark and destroys a coloured logo, so it is a decision to make at the drawing stage rather than at upload.
Premium Effects and Who Can Send What
The effect is a second animation
Some animated stickers carry an attached effect, which is a separate animation, larger than the sticker itself. The documentation describes exactly how it should behave, drawn underneath the sticker but above surrounding interface elements, played the first time the sticker scrolls into view, and played again if the chat is closed and reopened.
Sending is restricted, watching is not
Here is the asymmetry that matters commercially. Premium stickers may only be sent by users with a Premium subscription, but the documentation states that the effect should be played for all users, including those without one. So the person who pays is the sender, and everybody in the room gets the show. If you are building a pack meant to spread, that division tells you who your first hundred installs need to be, and it is the same audience that carries a channel's boost level, since both depend on who around you holds a subscription.
Mechanically the effect is not part of the sticker file. A premium sticker is recognised by a specific marker attached to its document, and the effect animation is fetched separately using that marker. There is a related published number worth knowing, which records how many ordinary stickers are shown per emoji alongside premium ones, and the live value is three. That is the shelf you are competing for when somebody types an emoji rather than browsing, and it is a short one.
The Thumbnail Has Its Own Rule
The format must match the set
A set has a thumbnail, which is the image people see before they open it, and it is the only part of the pack a browsing user judges you on. There is one rule and it catches people, since the format of the thumbnail file must match the format of the stickers in the set. Two separate refusals exist for supplying the wrong file type, one for the still image case and one for the animation case.
Emoji sets pick a thumbnail from inside
Custom emoji sets handle this differently. Instead of uploading a separate image you nominate one of the emoji already in the set to act as the thumbnail, by identifier. It is a small mechanical difference with a design consequence, because your cover is necessarily one of your emoji rather than a specially made cover image.
Installing, Archiving and Shelf Space
Installing can archive something else
Installation has a detail almost nobody knows about. The install call does not simply succeed. It can return a result that hands back a list of sets that were archived to make room for the one you just added. Telegram is managing shelf space on the user's keyboard, and adding your pack can quietly push somebody else's out of sight.
Archived is not deleted
Archived sets still exist and can be brought back, and there is a dedicated call for moving sets between installed, archived and removed. This is worth knowing because a user telling you your pack disappeared is usually describing an archive rather than a fault, and the fix is one action on their side.
Order is under the user's control
The order of installed sets is also something the user can rearrange, with its own call and its own update. You have no influence over where your pack sits, which is another argument for a thumbnail that reads at a glance and a set small enough that the good stickers are near the front.
What Belongs in a Pack
Fewer, more usable, is the whole trick
The ceilings allow 120 stickers, and almost every pack that gets used regularly is a fraction of that. A person scrolling for the right reaction gives up quickly, so a set of 12 that covers the twelve things your audience actually says beats a set of 80 that covers everything. Build small, watch which ones you reach for yourself, and add rather than start large.
Cover reactions, not products
The temptation with a branded pack is to draw the product. Nobody sends a picture of your product to a friend. They send agreement, disbelief, tiredness, congratulation and a polite way of saying no. If your brand can be present inside those, the pack travels. If the pack is a catalogue, it gets installed once by people who already like you and never leaves the keyboard.
A short way to test a proposed set before drawing any of it is to look at your own sent messages for a week and write down the ten things you actually said most often. Almost none of them will be about a product. That list is the brief, and a pack built from it will be used, whereas a pack built from a moodboard will be admired once and archived when the next one arrives and pushes it off the shelf.
Make the identity carry, not the logo
Related, and worth stating because it is where most brand packs go wrong. The recognisable thing should be the style, the character or the colour, not a wordmark stamped in the corner. A logo at sticker size is unreadable and at emoji size it is a dot. Consistency does the work a logo cannot, which is the same argument that applies to the rest of a channel's presentation and one we made when writing about engagement in channels.
Where a Pack Sits Next to the Rest of the Work
It is reach, not conversion
Be clear about what a pack does and does not do. It spreads recognition into rooms you cannot reach, cheaply and for a long time. It does not bring anybody to a purchase, it does not measure, and there is no report at the end of it telling you what happened. If the question you are trying to answer is how many people arrived and what they did, that lives with Channel Analytics rather than here, and the two are answering different questions rather than competing.
It works next to the things that do convert
The honest position is that a sticker pack is a slow instrument in a set of faster ones. Growing the room itself is a different job, done deliberately, and that is what Member Adder is for; reaching specific people with something to say is different again, which is Mass DMs. A pack makes those easier by making the name familiar before the message arrives, and it is worth building for that reason rather than because it will be measurable. If you are running several accounts and channels while you do all this, keeping them in one place is covered in managing multiple Telegram accounts, and the archive side of your own history is in exporting chat history.
Frequently Asked Questions
How many stickers can a Telegram pack hold
Emoji sets can hold up to 200 stickers and every other kind of set can hold up to 120. A set is created with an initial batch of between 1 and 50, so anything larger is a creation followed by additions rather than one upload.
What size should a Telegram sticker be
For stickers, either the width or the height must be exactly 512 pixels and the other side is whatever the artwork needs. For custom emoji the resolution must be exactly 100 by 100. Transparency is supported in both cases and is usually the difference between a sticker and a screenshot.
Why is my animated sticker rejected
Check the four published rules before anything else. The canvas must be 512 by 512, nothing may leave the canvas, the animation must not exceed 3 seconds, and it must be looped and run at 60 frames per second. There is also a separate refusal telling you the animated sticker must be sent as a document rather than as an image.
Why does my video sticker fail with no obvious error
Almost always an audio stream. The container must have no audio at all, and most editing software adds an empty track without asking. The other requirements are VP9 inside a WebM container, one dimension exactly 512, at most 3 seconds, up to 30 frames per second, and the file has to be sent as a document.
Can I change my sticker pack name later
No. The short name is the address people install from, and it has to end with the name of the bot that created the set. A name somebody already holds is refused outright with a message saying a set with that name already exists, so choose it as carefully as you would choose a username.
Can one sticker have more than one emoji
Yes, between 1 and 20. Telegram implements this by allowing the same sticker to appear under several emoji groupings inside the set, and one of them is marked as the preview shown in the chat list. More emoji means more ways for the sticker to be suggested while somebody is typing.
What are sticker keywords and how long can they be
They are a second search route, available for regular and custom emoji stickers, up to 20 keywords with a combined length of no more than 64 characters. That total is the real limit, so keywords should be the words people type when looking for a feeling rather than a description of the drawing.
Can I mix animated and static stickers in one pack
Yes. Telegram states that a single set can contain a mix of static, animated and video stickers. What you cannot mix is the type, since a set is regular, mask or custom emoji, and the mask and emoji options are explicitly mutually exclusive.
Why did my custom emoji show up as a normal emoji
Because the marker for it has to wrap exactly one ordinary emoji, the one the custom emoji is registered against. If it does not, the server ignores it silently, with no error, and the message arrives with the plain emoji instead.
Can people without Premium use my premium stickers
They can see the effect but not send the sticker. Premium stickers may only be sent by users with a subscription, while the attached animated effect is played for everybody, including users without one.
A Pack Travels, a Room Does Not
Stickers spread your name into chats you will never see, which is worth having and impossible to measure. Growing and running the channel they point back at is the part with numbers on it. Open a demo and look at the panel before paying anything.
Try Free Demo