What characters are allowed in a domain name?

For common domains, Latin letters (a-z), numbers (0-9) and hyphen are allowed. The hyphen cannot be at the beginning and end of the domain name. Although recently in domains it has become possible to use Cyrillic alphabet.

However, this is not appropriate: first, so far there are few users who have installed software for working with multilingual domains; secondly, even for these users, their operating systems may not support Cyrillic characters.