æternity Documentation Hub
AeternityGitHub
  • æternity Hub
  • Developer Documentation
  • Welcome to æternity documentation
  • Getting Started
    • What is æternity?
    • How to Use Aeternity
  • æternity core concepts
    • Introduction
    • æternity Protocol
      • æternity Coin
      • Fast Æternity Transaction Engine (FATE VM)
      • æternity Nodes
        • Node architecture
        • Node types
        • Node Roles
      • Transactions
        • Types of transactions
        • Transaction Lifecycle
        • Transaction Fees
        • Meta-transactions and Generalized Accounts
        • State Channel Transactions
      • Networks
      • Consensus Mechanisms
        • Next Generation Nakamoto Consensus (Bitcoin-NG)
        • Cuckoo Cycle Proof of Work
        • Hyperchains and Delegated Proof of Stake
        • Governance and Weighted Coin Voting
      • State Channels
      • Oracles
      • Aeternity Naming System (AENS)
    • Hyperchains
      • Hyperchains Whitepaper
    • Aeternity Governance
    • Aeternity Foundation
  • aeternity user tools and services
    • Introduction
    • Run an æternity node
    • Hyperchains web app
    • Hyperchains Bridge app
    • Mine aeternity coin
    • Superhero DEX
    • Superhero Wallet
    • ærc Bridge
    • Make an NFT
    • aepps: decentralized applications on æternity
    • æScan: æternity blockchain explorer
  • æternity Developer tools
    • Quick Start Guide
      • Development Environment Setup
      • Essential Tools Overview
      • Æternity Stack
      • First Steps in Development
    • Protocol
      • Core Protocol Components
        • æternity Consensus Protocol
        • Generalized Accounts
        • Smart Contracts
          • FATE VM
          • Smart contract languages
            • æternity Sophia Language
              • In-Depth Overview
              • Sophia Compiler
              • Sophia Visual Studio
              • Sophia http
              • æREPL
            • Solidity
          • Contract Transactions
        • State Channels
        • Oracles
      • Network Layer
        • Nodes
          • Node Documentation
          • Node API Reference
        • Sync
        • Gossip
        • Stratum
      • Utility Features
        • æternity Naming System (AENS)
        • Seralization Formats
    • æternity Sophia Language
      • In-Depth Overview
      • Sophia Compiler
      • Sophia Visual Studio
      • Sophia http
      • æREPL
    • Development Infrastructure
      • CLIs
      • SDKs and APIs
        • Javascript/Typescript SDK
        • Java SDK
        • Outdated SDKs
        • APIs
          • Node API reference
      • Middleware
      • Testing and Deployment
        • æproject
        • Testnet
          • Localnet
          • Faucet
        • Testnets and Faucet
    • Token Standards
      • æternity token standards
        • AEXs: Aeternity Expansions
        • AEX-1
        • AEX-9
        • AEX-141
    • Aepps: Building apps on Aeternity
      • Boiler Plates
        • Angular Boiler Plate
        • React JS BoilerPlate
        • Vue BoilerPlate
      • Æpp architecture
      • Implementation Guidelines
      • Reference æpps
        • Case Studies
        • Code Examples
        • Aeternity Graffiti
    • Data and analytics
      • æScan
    • ÆRC Bridge
  • Hyperchains
    • Hyperchains Development Guide
    • Hyperchains Bridge
Powered by GitBook
On this page
  • Understanding AENS
  • Fair Distribution and Anti-Squatting Measures
  • Security and Front-Running Protection
  • Name Management and Lifecycle
  • Applications and Use Cases
  • Related Documentation

Was this helpful?

Export as PDF
  1. æternity core concepts
  2. æternity Protocol

Aeternity Naming System (AENS)

PreviousOraclesNextHyperchains

Last updated 2 days ago

Was this helpful?

The æternity Naming System (AENS) transforms complex blockchain addresses into human-readable names, making the blockchain more accessible and user-friendly. While other blockchains implement naming systems through smart contracts, AENS is built directly into æternity's protocol, offering enhanced efficiency, security, and usability.

Understanding AENS

In the blockchain world, addresses are typically long strings of numbers and letters that are difficult to remember and prone to error when typing. AENS solves this problem by allowing users to register memorable names that point to their accounts, contracts, or oracles. Every name in the system ends with '.chain' (for example, 'superhero.chain'), creating a consistent and recognizable namespace.

What sets AENS apart from other blockchain naming systems is its protocol-level implementation. Instead of relying on smart contracts, AENS uses native blockchain operations, making name registration and management more efficient and cost-effective. When you use a name in a transaction, the translation from name to address happens directly in the protocol, providing better security guarantees than smart contract-based solutions.

Fair Distribution and Anti-Squatting Measures

AENS implements an innovative auction system to ensure fair name distribution and prevent name squatting. Names shorter than thirteen characters are distributed through a first-price auction system, where the auction duration and starting bid are automatically adjusted based on the name length. Shorter names, which are typically more desirable, start with higher minimum bids and longer auction periods. For example, a four-character name might start at 134.6269 coins with an auction period of approximately 62 days after the last bid.

Names longer than twelve characters can be registered instantly, making the system accessible to all users while preserving the value of shorter, more premium names. Each new bid must be at least 5% higher than the previous one, ensuring meaningful price discovery during auctions.

Security and Front-Running Protection

AENS includes sophisticated measures to prevent front-running attacks, where observers might try to steal a name by watching the network's transaction pool. The registration process occurs in two steps: first, a preclaim transaction containing a hash of the desired name and a random number (salt) is submitted. Since observers cannot determine the name from this hash, they cannot front-run the registration.

After the preclaim is accepted, the claimant reveals the name and salt in a claim transaction. To further enhance security, the protocol requires the preclaim and claim transactions to be in different blocks, effectively eliminating the possibility of front-running through block manipulation.

Name Management and Lifecycle

Once a name is registered, owners have full control over their names through a suite of protocol-level operations. They can update their names to point to different addresses or resources, transfer ownership to other users, or revoke names they no longer need. Names expire after a set period unless renewed, ensuring that unused names eventually return to the available pool.

The system's integration with the protocol means that names can be used directly in transactions. Instead of copying long addresses, users can simply reference names, and the protocol handles the resolution automatically. This tight integration reduces the risk of errors and improves the overall user experience.

Applications and Use Cases

AENS enables numerous practical applications that make blockchain interactions more user-friendly. Decentralized applications can use memorable names for their smart contracts, making them easier to discover and interact with. Payment systems can simplify their interfaces by allowing users to send transactions to human-readable names rather than cryptographic addresses.

The system also supports the creation of decentralized identities, where users can build reputations around their .chain names. This feature is particularly valuable for decentralized marketplaces, social platforms, and other applications where persistent identities enhance trust and usability.

Related Documentation

Developers looking to integrate AENS into their applications will find detailed technical specifications and implementation guides in the Developer Tools section. This includes comprehensive information about name auctions, registration processes, and integration patterns. Users interested in registering and managing their own .chain names can find step-by-step guides in the User Guides section of this documentation.

Cover

AENS Developer Documentation

What can you do with a .chain name

How to register yoru own .chain name

Cover
Cover