1001Ferramentas
❄️Geradores

Gerador de Discord Snowflake ID

Gera IDs Snowflake do Discord (Twitter-like) — 64 bits com timestamp embutido. Para mockups de bot e testes de bibliotecas.


  

IDs do Discord: Snowflakes com epoch de 2015

O Discord é a plataforma de chat e voz lançada em maio de 2015 pela Hammer & Chisel (hoje Discord Inc.). Toda entidade dentro do Discord — usuários, servidores (guilds), canais, mensagens, cargos, emojis, threads — recebe um Snowflake ID de 64 bits, mesmo formato introduzido pelo Twitter em 2010, mas com epoch e divisão de campos próprios. Em string, um Snowflake do Discord costuma ter 17 a 19 dígitos, o que já não cabe em inteiro de 32 bits e precisa trafegar como string em JavaScript para evitar perda silenciosa de precisão.

Layout de bits do Snowflake do Discord

 42 bits          | 5 bits     | 5 bits        | 12 bits
 timestamp ms     | worker id  | process id    | incremento
 desde epoch      | (0-31)     | (0-31)        | (0-4095)
 (1º jan 2015)

O epoch do Discord é 1420070400000 (1º de janeiro de 2015, 00:00 UTC). Para recuperar o instante de criação de qualquer objeto, faça shift à direita de 22 bits e some o epoch:

const id = 175928847299117063n;
const ts = Number((id >> 22n)) + 1420070400000;
new Date(ts).toISOString();
// → 2016-04-30T11:18:25.796Z

Usernames, discriminadores e a migração de 2023

De 2015 a 2023, o Discord usou o esquema Username#1234: um nome escolhido mais um discriminador de quatro dígitos que desambiguava duplicatas. Em 2023, a plataforma migrou para @handles globalmente únicos, deixando toda conta legada com o discriminador-placeholder #0. O Snowflake nunca se mexeu nessa migração — ele continua sendo a única fonte da verdade e por isso é a chave primária correta para qualquer integração.

API, gateway e bots

  • RESThttps://discord.com/api/v10/ para criar/ler/atualizar guilds, canais e mensagens.
  • Gateway — conexão WebSocket que entrega eventos em tempo real (typing, presence, message create). Bots precisam declarar intents; GUILD_MEMBERS e MESSAGE_CONTENT são privilegiadas e exigem aprovação.
  • Tokens — tokens de bot são enviados como Authorization: Bot <token>; tokens de usuário (selfbots) são proibidos pelos termos de uso.
  • Bibliotecasdiscord.js (Node), discord.py (retomada após o hiato de 2021), serenity-rs (Rust), JDA (Java).
  • Bots famosos — MEE6, Dyno e Carl-bot indexam seus dados internos pelo Snowflake.

Perguntas frequentes

Consigo decodificar um ID do Discord? Sim — os 42 bits superiores são um timestamp em milissegundos a partir do epoch do Discord, então qualquer ferramenta consegue recuperar o instante exato de criação de um usuário, servidor ou mensagem.

O ID muda se eu renomear ou migrar para handle global? Não. O Snowflake é atribuído na criação e é imutável, inclusive durante a migração de usernames de 2023.

IDs do Discord são únicos globalmente? Sim, em toda a plataforma — usuários, guilds, canais e mensagens compartilham o mesmo namespace Snowflake e nunca colidem.

Por que meus IDs perdem dígitos em JSON? Porque números JavaScript são doubles IEEE-754 com apenas 53 bits de precisão inteira. Sempre trate Snowflakes como string no transporte, ou faça parse com BigInt.

Ferramentas Relacionadas