? the ultimate web3 identity ?
Arweave Names Service
a Domain Names Service & De-Gravatar hybrid on the Arweave network
the protocol has no token yet, any associated token’s smart contract address is for testing purposes only
Using and adopting names service accross Arweave ecosystem has several benefits:
- faciliate of sharing addresses and sending AR/PSTs
- create an economic cycle through domains financial activities (trading)
- the ability to be used as social profiles contructors in Arweave based social networks (e.g. decent.land users)
- a decentralized gravatar-like use-case
- label: equivalent to domain’s name in DNS, such as “decent” in decent.ar
- user: the controller of the label
- name: full ANS identifier such as “decent.ar” (label and ‘ar’ TLD sepperated by a dot)
Label’s string handling
ANS registry contract uses the NFKC (Normalization Form Compatibility Composition) unicode normalization algorithm and case folding to normalize the label’s string before comparing its length and allowed unicodes that are predefined in the contract. Then, the label get minted and stored according to its processed format (after normalization), following a Nameprep-like methodology.
Allowed unicodes The allowed unicode are those of the lowercase alphabetical characters in addition to integers from 0 to 9. Thus, usernames as known as labels are alphanumeric. The supported UTF-16 code units range from 48 to 57 (0 -> 9) and from 27 to 122 (a -> z).
The usage of the NFKC algorithm allows to reduce the visual security issues like:
- visual spoofing
- reduce visual confuses. examples
- Punnycode and Script spoofing
ANS labels minting is based and limited using the arrangement without repitition of the conditional probability
p is that arbitrary label string entered by the user that may be alphanumerical, and
n is the total number of allowed characters which is 36 (26 characters from alphabetical characters and 10 characters from the allowed integers).
For a better UX, labels of length equal to one are disallowed and cannot be minted, hence, that total number of labels that can ever exist is more than 43B labels. Breakdown:
|label type||label length||label supply|
Label scarcity is determined by its length, the lower length it has, the more scarce it is. No renewal fees.
Label Asset Type
ANS labels are digital properties fully owned and managed by the
user (aka label’s owner post-minting). ANS spec introduces a new asset / tokenized mechanism to the Arweave ecosystem that applies the profit sharing concept introduced in PSCs and PSTs.
ANS-labels are Profit Sharing Domains (PSD) for having the following features:
- Basic token functionalities: ownership, transferability, & trade-ability.
- The first in-contract, on-chain profit sharing mechanism through the PoR incentives model.
- Domain Name Service: address resolving & DeGravatar.
ANS testnet has been launched distributing domains for hundred of addresses during the Genesis phase. Learn more about the airdrop here.
Interacting With ANS Contract
The docs.decent.land contains a set of guide and documentations explaining how to interact with the ANS smart contract.
ANS Metrics API
The ans-stats repository is an API for ANS data and statistics. API endpoint: ans-stats.decent.land
ans-for-all is a drop in module to utilize the ANS protocol in React apps. Check repo
If you have a suggestion that would make this protocol or the API better, please fork the repository and create a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/xyz)
- Commit your Changes (
git commit -m 'feat: abc-xyz')
- Push to the Branch (
git push origin feature/xyz)
- Open a Pull Request
Contributions are greatly appreciated !
The project is licensed under the MIT license.