Спочатку стандартом Системи Доменних Імен (DNS) була дозволена реєстрація доменів, що містять лише символи в кодуванні ASCII — 26 літер латинського алфавіту (a-z), цифри (0-9) та символ дефісу (загалом 37 символів).
Однак із зростанням кількості користувачів, мови яких засновані на алфавітах, що відрізняються від латинської, було вирішено ввести реєстрацію доменів у кодуванні Unicode, що включає символи всіх національних алфавітів. В результаті цього рішення з’явилися багатомовні доменні імена — Internationalized Domain Names (IDN-домени).
Punycode — це стандартизований метод перетворення символів, що відносяться до стандарту Unicode, у формат ASCII, який підтримує інфраструктура DNS. Щоб IDN-домен після перетворення не можна було сплутати зі звичайним доменом, усі IDN-домени починаються зі спеціального префіксу XN–. Наприклад, домен «домен.com.ua» у форматі punycode буде виглядати так — xn--d1acufc.com.ua.
Перетворення домену в Punycode і назад проводиться на боці браузера, тому при введенні в адресний рядок IDN-домену браузер сам конвертує введене значення для взаємодії з DNS.