Discordのsnowflakeに埋まったタイムスタンプを読む

DiscordのIDは全てタイムスタンプ+簿記情報です。19桁の数字をデコードして、メッセージ・ユーザー・サーバーの作成時刻を調べます。

このガイドで使う道具

やりたいこと

「このDiscordアカウントはいつ作られた?」「どっちのメッセージが先?」はIDだけで答えられます — snowflakeにはDiscordエポック(2015-01-01)からのミリ秒が埋まっています。IDを貼ると、作成時刻とworker/process/incrementの内訳が出ます。

IDを貼る

snowflakeサイズの整数なら何でも動きます — メッセージID・ユーザーID・ギルドID・Webhook ID。64ビット値がタイムスタンプ・worker・process・incrementに分解され、ローカルタイムゾーンの日時が表示されます。

  • 表示されるエポックはDiscordのものです。他のsnowflake系(Twitter/X、Mastodon)は別エポックを使うため、それらのIDでは日時が誤ります。
  • IDは64ビットに収まる必要があり、収まらないものはフラグされます。

答えの使い方

作成日時は怪しいアカウントの標準的な一次チェック(数日しか経っていない=捨て垢)であり、紛争ログのイベント順序付けにも使えます。これはIDの内容の解読であって検索ではありません — 何も照会・送信されません。