TELEGRAM · STEP BY STEP

How to Make Telegram Stickers

512px, the @Stickers bot, and how animated and video stickers actually differ from a plain static one — everything you need to make and publish a real Telegram sticker pack.

Updated July 20267 min read
The short version

A Telegram sticker is a transparent PNG or WEBP with one side exactly 512 pixels (the other 512 or smaller). Animated ones use a different format entirely — .TGS, capped at 3 seconds and 64KB — and video stickers are a third format again, .WEBM, up to 256KB.

You make a pack by messaging @Stickers inside Telegram, and every finished pack gets its own shareable t.me/addstickers/… link.

A sticker's artwork, shown as a square — Telegram only requires the longer side hit 512px

512px

one side — the other can be smaller

.PNG.TGS.WEBM

three formats

static, animated, video — not interchangeable

The base spec

Static stickers: PNG or WEBP, 512px on the long side

The one rule almost every other sticker guide gets slightly wrong: Telegram doesn't ask for a flat square. It asks for one side at exactly 512 pixels, and the other at 512 or less — so a tall or wide character keeps its own proportions.

512px
long side
Exactly 512 — the other side is 512 or smaller
PNG / WEBP
format
Transparent background, no plain rectangle
120
stickers per pack
Telegram's own documented ceiling for a regular set
Static sticker file spec — core.telegram.org/stickers
RuleValueNotes
DimensionsOne side = 512px, other ≤ 512pxNot a fixed square — proportions can differ
FormatPNG or WEBPReal transparency required
BackgroundTransparentTelegram recommends a thin white stroke + soft shadow so the art stays visible on any chat background
Pack sizeUp to 120 stickersDocumented ceiling for a regular or mask sticker set
No bubble means no built-in contrast
A text message sits inside a coloured bubble that already separates it from the chat background. A sticker doesn't — it floats directly on whatever chat colour the recipient is using, light or dark. That's exactly why Telegram recommends the white stroke and drop shadow: without one, thin light-coloured linework can disappear entirely on a pale theme.
A different file entirely

Animated stickers: .TGS, not a GIF

An animated Telegram sticker isn't a video and isn't an animated PNG. It's .TGS — a compressed Lottie file, storing vector motion data rather than pixels — which is the whole reason the file-size cap below looks so small.

Animated sticker (.TGS) spec
RuleValue
Canvas512 × 512 px
DurationUp to 3 seconds
Frame rate60 frames per second
Max file size64KB after rendering
LoopingRequired

64KB sounds impossibly small next to a 256KB video sticker below, and it is — for a video. It's roomy for vector data, because a .TGS file stores the shapes and the motion instructions, not a sequence of finished frames. The tradeoff is tool support: several effects common in motion-design software — 3D layers, gradient strokes, merged paths, auto-oriented layers, and a handful of others Telegram lists explicitly — aren't supported in the format at all.

Not the same limit as a video sticker
It's easy to assume "animated" means one format with one set of numbers. Telegram actually treats a Lottie-style animation and an actual video clip as two separate sticker types, each with its own extension, codec and cap — mixing up the two specs is the most common mistake when exporting a moving sticker.
The third format

Video stickers: .WEBM, VP9, no audio

Real video frames rather than vector data, which is why the file-size ceiling is four times looser than an animated sticker's — and why it needs a specific codec rather than accepting any video file you export.

Video sticker (.WEBM) spec
RuleValue
DimensionsOne side = 512px, other ≤ 512px
Emoji-style preview100 × 100 px, a separate smaller render
DurationUp to 3 seconds
Frame rateUp to 30 frames per second
Max file size256KB
CodecVP9
AudioMust have no audio track at all
LoopingRecommended, not required

Notice this is the only one of the three formats where looping is a suggestion rather than a rule — a one-shot animation (a wink, a single nod) is a legitimate video sticker in a way it wouldn't be for a .TGS pack.

Making the pack

From finished art to a working sticker pack

Design one character across a set of expressions, export each at spec, then hand the files to Telegram's own bot.

  1. 1
    Design one character across a set of expressions

    A pack that reads as a pack is one character shown many ways — a reaction to almost anything, not six unrelated pictures. Draw it, commission it, or generate it.

  2. 2
    Export each one as a transparent PNG or WEBP

    One side has to be exactly 512 pixels, the other 512 or smaller — never both under 512, and never a plain rectangle with no transparency.

  3. 3
    Message @Stickers inside Telegram

    Telegram's own bot handles pack creation. Tell it whether you're making a static, animated (.TGS) or video (.WEBM) pack, and follow its prompts to upload each file.

  4. 4
    Give each sticker an emoji and the pack a name

    Every sticker gets a suggested emoji so it turns up under the right search. The pack itself gets a short name Telegram uses to build its shareable link.

  5. 5
    Share the link, or just send one

    Every finished pack gets its own t.me/addstickers/<name> link. Sending someone a single sticker from it works too — they can tap it to add the whole set.

  • Export each sticker at exactly 512px on its longer side, transparent background
  • Keep one recurring character across the whole pack — that's what makes it read as a set
  • Use @Stickers when you're bringing in art already sized to spec
  • Pick static, animated or video up front — they're different files, not a toggle
  • Assume the in-app editor's auto-crop replaces sizing it properly for a whole set
  • Upload a plain rectangle with no transparency and expect it to look right
  • Treat a .TGS file size cap and a .WEBM one as interchangeable — they're not
  • Skip assigning an emoji to each sticker — it's how people actually find yours
Once it's made

What it actually looks like sent — and how people get it

A sticker sits directly on the chat, no bubble behind it — and getting the whole pack is a tap, not a download.

M
marta
online
t.me/addstickers/foxbuddy
lemme show you the pack I made
Sticker sent in a Telegram chat: hey
okay that's actually really good
Sticker sent in a Telegram chat: lol
told you
Sticker sent in a Telegram chat: no way
foxbuddyrecentemoji
hey sticker, in the pack panellol sticker, in the pack panelno way sticker, in the pack panelthanks sticker, in the pack panelsame sticker, in the pack panelbrb sticker, in the pack panel

Every finished pack gets its own link — t.me/addstickers/<name> — built from the short name you give it while creating the pack. But most packs spread without anyone touching that link at all: send someone a single sticker from it in any chat, and Telegram lets them tap that one sticker to add the whole pack for themselves.

Straight answers

Questions people actually ask

One side has to be exactly 512 pixels; the other side can be 512 or anything smaller, depending on the shape of the art. That's Telegram's own requirement (core.telegram.org/stickers), and it's different from Discord or Slack's flat square requirement — a tall or wide sticker is fine as long as the longer side hits 512.

Keep going

Already have a character?
Generate the whole set once.

On Air Kit turns one description or photo into a matching set of transparent images — the same 512px-friendly export this page just walked through, ready to hand to @Stickers. No pressure either way: everything above works whether you draw it, commission it, or generate it here.