> For the complete documentation index, see [llms.txt](https://fabco.gitbook.io/dappy-spec/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fabco.gitbook.io/dappy-spec/specs-and-web-standards/authorized-characters-for-names-idna.md).

# Authorized characters for names / IDNA

IDNA (Internationalizing Domain Names in Applications) refers to an effort to make all characters available for registering domain names and distributing web applications accross the web.

Previously only some ASCII characters were available, a-z, 0-9 as well as - (dash) and \_ (underscore). The goal was of course to make the web more international and less tied with the latin/western alphabet.

![An example of Cyrillic and Latin characters that are similar, but have a different UTF-8 code](/files/-Mh2vOE9OEpE-rRtzcmP)

We believe this feature has a lot more disadvantages than advantages, some obvious flaws of supporting a large portions of UTF-8 is the ease with which you can perform phishing attacks. **Internationalization of domain names It is not at all a gain in security or accuracy, quite the opposite in fact.**

[This phishing attack](https://thehackernews.com/2017/04/unicode-Punycode-phishing-attack.html) on [www.apple.com](http://www.apple.com) is an example.

Right now there is a per-extension policy going on to authorize certain characters depending on if you are deploying to .us, .com, .cn, .ru etc. Again it is a monkey patch thing, not a unified policy. Hundreds of issues and discussions have emerged as a consequence of this feature.

Our approach is simply to drop UTF-8 or large characters, and go straight back to \[a-z0-9] 36 characters. **36 latin/characters system is very trustworthy and hard to mismatch, even for the uninformed users and/or users that are primarly familiar with non-latin set of characters.**

[See this IETF document](https://datatracker.ietf.org/doc/html/rfc3490) (2003)

[See how we validate names](https://github.com/fabcotech/dappy-node/blob/master/src/get-x-records.js#L91) in dappy node software.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://fabco.gitbook.io/dappy-spec/specs-and-web-standards/authorized-characters-for-names-idna.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
