Gerador de Discord Snowflake ID
Gere um Snowflake ID no estilo do Discord (64 bits com timestamp embutido) para testes. Útil para simular IDs de mensagens, usuários e canais em desenvolvimento.
Snowflakes do Discord como strings puramente numéricas
Esta ferramenta entrega Snowflakes do Discord como string numérica pura — sem formatação, sem prefixo, sem aspas — prontos para colar em um script de bot, em um fixture de log de debug ou em uma linha SQL. O gerador mira especificamente na variante Discord da família Snowflake, com seu epoch fixado em 1420070400000 ms (1º de janeiro de 2015) e a divisão de bits 42 / 5 / 5 / 12 que todo ID do Discord herda, de user IDs a webhook IDs.
Reverter um ID para o timestamp de criação
A propriedade mais útil de um Snowflake do Discord: os 42 bits superiores são um timestamp em milissegundos relativo ao epoch do Discord. A fórmula é reversível com um único shift:
// JavaScript (BigInt — o ID é grande demais para Number)
const id = 175928847299117063n
const ms = Number(id >> 22n) + 1420070400000
new Date(ms).toISOString() // → 2016-04-30T11:18:25.796Z
// Python (discord.py / disnake)
disnake.utils.snowflake_time(175928847299117063)
// Node (discord.js)
SnowflakeUtil.deconstruct('175928847299117063').timestamp
Casos de uso concretos para IDs brutos
- Analytics de idade de conta — extrair a data de criação de cada membro do servidor sem tocar no audit log; contas antigas têm IDs pequenos, contas novas têm IDs enormes.
- Fallback de ordenação de mensagens — quando o Gateway entrega eventos fora de ordem, ordenar mensagens por ID equivale a ordenar por timestamp, sem coluna extra.
- Timing de bulk actions — agrupamento de IDs consecutivos revela spam coordenado em DM ou enxurrada de webhooks dentro de um único milissegundo.
- Indexação de webhooks e embeds — IDs de webhook, IDs de mensagens de embed e IDs de interação são todos Snowflakes no mesmo namespace; uma única coluna de primary key lida com todos.
- Bot IDs são iguais a user IDs — aplicações entram como usuários, então o ID de todo bot é apenas mais um Snowflake; útil ao cruzar um diretório de bots com a API do Discord.
Anatomia em detalhe
bits 63..22 timestamp (42 bits, ms desde o epoch do Discord)
bits 21..17 worker id (5 bits, 0-31)
bits 16..12 process id (5 bits, 0-31)
bits 11..0 incremento (12 bits, 0-4095, reseta a cada ms)
O contador de incremento de 12 bits é resetado a cada milissegundo e é livre de colisão dentro do mesmo par worker/process. Globalmente, porém, Snowflakes não são estritamente monotonicamente crescentes: dois workers cunhando IDs em paralelo no mesmo milissegundo podem produzir IDs cuja ordem não bate com a ordem absoluta de geração. Se você depende de uma ordem total global, ordene primeiro por timestamp e desempate pelos 22 bits inferiores.
Pegadinhas comuns de debug
Um ID igual a 0 significa que todos os campos são zero, o que decodifica para o próprio epoch do Discord (1º jan 2015, 00:00 UTC) — quase sempre sinal de campo não setado, não de entidade real. Um ID de 16 dígitos é suspeito: IDs reais ultrapassaram 16 dígitos em 2018, então qualquer coisa menor está truncada por perda de precisão IEEE-754 ou é placeholder. Helpers externos como snowsta.mp decodificam qualquer Snowflake contra o epoch do Discord, do Twitter ou do Instagram — checagem de sanidade conveniente quando um ID desconhecido cai na sua caixa de entrada.
Implicações de privacidade
Um ID do Discord codifica o instante exato em que o dono se cadastrou, entrou num servidor ou postou uma mensagem. Usuários do Discord enxergam isso como metadado normal, mas um vazamento de banco de IDs é, na prática, um vazamento da linha do tempo de toda conta com precisão de milissegundo. Trate IDs como sensíveis ao correlacioná-los com handle ou dado de IP.
Perguntas frequentes
Consigo descobrir quando uma conta do Discord foi criada? Sim — divida o ID por 222, some 1420070400000 e passe o resultado para new Date(...). Funciona para usuários, servidores, canais e mensagens.
Posso forjar um ID do Discord? Não. Snowflakes são gerados no servidor no momento da criação do objeto; a API nunca aceita um ID fornecido pelo usuário. Você pode cunhar um número que parece Snowflake válido (esta ferramenta faz exatamente isso para testes offline), mas o Discord não vai reconhecer.
O ID muda em algum momento? Não — Snowflakes são imutáveis pelo tempo de vida do objeto, inclusive em rename, na migração de handles de 2023, em transferência de servidor e em rename de canal.
Por que Snowflakes não são estritamente monotônicos? Vários pares worker/process cunham IDs em paralelo. Dentro de um worker a sequência é estritamente crescente, mas entre workers dois IDs podem sair fora de ordem se caírem no mesmo milissegundo.
Ferramentas Relacionadas
Gerador de TikTok User ID
Gera IDs de usuário fictícios do TikTok (19 dígitos, formato Snowflake). Útil para testes de scrapers e dashboards analíticos.
Gerador Snowflake Instagram
Gera IDs Snowflake no formato usado pelo Instagram (54 bits, epoch 2011-01-01), com timestamp, shard e sequência.
Gerador de Twitter Snowflake ID
Gere um Snowflake ID no estilo do Twitter/X (64 bits com timestamp) para testes. Útil para simular IDs de tweets, usuários e mensagens em desenvolvimento.