Oxen Name System (ONS): The Facts
Disclaimer: At the time of writing, Oxen was known as The Loki Project — this piece has been updated to reflect this name change
The new Oxen Name System (ONS) was released in a limited capacity on the 25th of March alongside the Valiant Vidar hardfork. At launch, ONS can assign human-readable usernames to Session IDs and Oxen Wallet addresses, with other uses (and features) planned for future updates.
If you’re looking for info on registering an ONS name, check out our how-to for name registration.
The ONS namespace is broken up into two distinct sections — one section is responsible for all Lokinet name mappings, referred to as .loki names, and the other section is responsible for Oxen Wallet and Session ID username mappings.
In the version of ONS released with the Valiant Vidar hardfork, we will only be allowing the registration of Session ID usernames.
Each ONS name can resolve (be assigned) to a Session public key, wallet address, or .loki address. Session ID and Wallet names exist within the same namespace. When purchasing a Session ID ONS record, the corresponding Wallet ONS record is automatically included. Lokinet names are in their own namespaces. For example, when purchasing ‘KeeJef’ in the Session/Wallet namespace, you can assign the name to a Session public key (Session ID), and you can also update the Wallet record using a second update transaction (note: this functionality is not yet enabled).
When a user looks up ‘KeeJef’ they are returned both a Session ID and Wallet address,
Wallet Address: LBMTVEK8WRiC9rmfoKEjyrZSRje6PdiTU6926LjMkGMUdzyApMvXUbH4LswHnLjMjMPLUbDKiL3RCRQe5XFiobWb8jQrApR
It would also be possible to purchase ‘KeeJef.loki’ in the Lokinet namespace, which is unique from the Session/Wallet namespace. However, Lokinet namespace purchases will not be available until a later hardfork.
The relevant mapping will automatically be used depending on the context in which the name is being used — the Oxen Wallet will use Wallet mappings, and the Session client will use Session ID mappings.
ONS naming rules
Both the Session/Wallet and Lokinet namespaces have restrictions on the characters allowed in the name. All names are case-insensitive.
For Session and Wallet ONS mappings, names must start and end with an alphanumeric character or an underscore. There can be any mix of alphanumeric characters, hyphens, or underscores in the body of a name. Users may register names with special characters or emojis by using the equivalent Punycode representation. Names must be between 1 and 64 characters long.
Lokinet ONS domains must start with an alphanumeric character, and can have any mix of alphanumeric characters or hyphens in between. The character immediately before the domain suffix <char>’.loki’ must be alphanumeric, followed by the suffix ‘.loki’. Users may register names with special characters or emojis by using the equivalent Punycode representation. The domain name must be at most 253 characters long, including the ‘.loki’ suffix.
Name registration periods
By default, all mappings in the Session/Wallet namespace will be preserved forever. This is important to guarantee to users that previously-used Wallet name mappings will remain valid. The Lokinet namespace will have reregistration periods to deter domain squatting, and so that names will be released if the keys that registered them are lost.
Ownership, transfer, updates, and management
By default, names are owned by the Oxen Wallet address that purchased the name. However, names can also be purchased on behalf of another user. Up to 2 wallet addresses may be specified as the owners of a name. This means up to 2 wallets are able to update and/or transfer ownership of a name record.
Once a domain is owned, it can be transferred to another user’s Oxen wallet by specifying the address of that wallet and paying the standard transaction fee to transfer the ownership record.
Updates to mappings can be made at any time by the owner, at the cost of the standard transaction fee to include the new mapping in the blockchain.
Initially, management of all owned names will be possible through the Oxen Desktop Wallet; however, we also intend to add name registration and management functionality to Session clients in future.
Names in the Session/Wallet namespace cost 20 OXEN to register. We will aim to update this cost with each hardfork to keep it within the $5-10 USD range.
Note: This 20 OXEN fee is burnt (permanently destroyed), rather than being paid to any entity. This is to help ensure the long-term economic stability of the Oxen ecosystem. You can read more about the rationale behind burning Oxen in our cryptoeconomic paper.
Because ONS mappings are stored in the Oxen blockchain, these mappings are public information. It is up to each user to choose what information, if any, they map publicly. If you don’t want to map your Session ID to your real-world identity, you might want to choose an alias for your ONS mapping, instead of something related to your name. Basic encryption is employed to mask surface-level publicity of data, but this should not be relied upon in privacy-critical circumstances. Refer to the Oxen Name Service technical documentation (coming soon) for more information.
All wallet sub-addresses generated via the account new command are supported as owners. In future, addresses generated by address new may be supported, but they are not supported in the initial Valiant Vidar ONS release.