Each Discord permission is one bit in a large integer (for example KICK_MEMBERS = 1 << 1 = 2, ADMINISTRATOR = 1 << 3 = 8). APIs and bot invite links expect the sum of those bits. This tool converts both ways.
How to use the tool
Tick the permissions you want, or start from a preset (basic, moderator, administrator).
Read the computed decimal (or hexadecimal) integer in the “Result” panel.
Copy it into the permissions parameter of the invite link (see the “Bot invite link” tool) or into your code.
To decode an existing integer, paste it in the field: the matching boxes get ticked.
Good to know
ADMINISTRATOR grants every permission and bypasses channel overwrites: only give it to a bot when truly necessary. Integers exceed 2^53, so use strings or BigInt in your code. The T/V/S column shows the channel types concerned (text, voice, stage). Values checked against the official Discord developer documentation on 2026-10-09; bit 47 is not defined there.
// discord.js
const { PermissionsBitField } = require('discord.js');
const perms = new PermissionsBitField(['ViewChannel', 'SendMessages']);
console.log(perms.bitfield.toString()); // 3072Frequently asked questions
- Why is the integer so large?
- Recent permissions use high bits (up to 1 << 52), so the sum exceeds ordinary JavaScript integers. The calculation therefore uses BigInt.
- Is my data sent anywhere?
- No. Everything is computed in your browser; only the last value is kept in your browser's local storage.
