Ethernity Docs
  • Welcome to Ethernity CLOUD
  • Getting Started
  • Ethernity Node Quick Start
    • Hardware Requirements
    • BIOS Settings
    • Supported Platforms
    • Blockchain Settings
    • Security Considerations
    • Installation
  • Ethernity Client Quick Start
    • Platforms and dependencies
    • Blockchain Settings
    • Security Considerations
    • Installation
  • ethernity node
    • Prerequisites
      • Hardware with SGX Support
      • Check SGX Support
      • Installing Linux
        • Download
        • USB Installation Media
        • Ubuntu 18.04 LTS
        • Ubuntu 20.04 LTS (Recommended)
        • Ubuntu 22.04 LTS (Experimental)
        • SSH Connection
      • Blockchain Wallets
    • Download
    • Installing the Node
    • Update the node
    • Configuring the Node
      • Select the network
        • Mainnet on Bloxberg
          • ETNY on Bloxberg
        • Testnet on Bloxberg
          • Data Processors
          • Bloxberg (BERGS)
          • tETNY on Bloxberg
          • tETNY Faucet
        • Mainnet on Polygon
          • ECLD on Polygon
        • Testnet on Polygon (MUMBAI)
      • Task execution price
      • Resources configuration
    • Monitoring the Node
    • Troubleshooting issues
    • Firewall Rules
    • Proof of eXecution
      • Blockchain Metadata
      • IPFS
    • Node Reset
      • Node Connect
        • DHCP
        • Static IP
        • Console
      • Change Password
      • Node wallets
  • Mainnet
    • Mainnet on Bloxberg
    • ETNY on Bloxberg
    • Mainnet on Polygon
    • ECLD on Polygon
  • TESTNET
    • Data Processors
    • Bloxberg (BERGS)
    • tETNY on Bloxberg
    • tETNY Faucet
    • Polygon (MUMBAI)
  • Developer Guide
    • Introduction
    • The EC Protocol
      • Data flow inside EC
    • The GUIDE
      • Environment Prerequisites
      • Step-by-Step dApp
  • ENS Domain Registration
    • Introduction
    • ENS Smart Contract Details
      • Polygon Mainnet
      • Bloxberg Mainnet
    • Registration Steps (ENSRegistrarController)
  • Ethernity Client
    • Prerequisites
      • Python 3.6+
      • git
      • Blockchain Wallet
    • Download
    • Running the Client
    • Configuring the Client
    • Proof of eXecution
      • Blockchain metadata
      • IPFS
  • Ethernity Smart Contract
    • Data Owner API
    • Data Processor API
  • Wallet
    • MetaMask
    • Installation
    • New Wallet
    • Restore Wallet
    • Wallet Validation
    • Contract Upgrade
    • Receive ETNY - Optional step
    • Send ETNY - Optional step
    • Change RPC URL
  • Public Sale Buying Journey
    • Round 1
      • Interest Registration
      • Public sale start
      • Queue placement
      • Crypto (USDT) payment
      • Bloxberg receiving address
      • Troubleshooting
    • Round 2
      • ❗VERY IMPORTANT
      • Interest Registration
      • Login
      • KYC - R2
      • Queue placement
      • Payment Options
        • USDT
        • Coin Payments - Crypto
        • Coin Payments - Paypal
    • Round 3
      • ❗VERY IMPORTANT
      • Interest Registration
      • Login
      • KYC
      • Package Selection
      • Payment Methods
        • DIRECT
          • USDT - ERC-20
          • USDT - TRC-20
          • USD - Polygon
          • BUSD - BSC
        • COINPAYMENTS
        • PAYPAL
        • CEXs and Hot Wallets Withdraw
          • Binance
          • Coinbase
          • Kraken
          • MetaMask
          • Trust Wallet
        • Receive ETNY
  • Staking dApp
    • Intro
    • Node address and private key
    • Import private key
    • Connect wallet to dApp
    • Change connected wallet
      • Disconnect wallet address
    • Staking dApp homepage
      • Account
      • Pending
      • Approved
      • Terminated
      • Marketplace
    • Base stake
      • Create base stake
      • Approve base stake
    • Extended stake
      • Create extended stake
      • Apply for an extended stake
      • Approve extended stake
    • Open Beta Staking dApp
  • SWAP dAPP
    • Intro
    • Create Account
    • Login
    • KYC
    • Setting up the profile
    • Dashboard
    • Confirmation
    • Sign transactions
  • LIQUIDITY PROGRAM
    • Liquidity Supply Guide
    • Connect wallet
    • Select range
    • Choose contribution
    • Viewing pools
    • Remove liquidity
  • Hardware Affiliate Program
    • Intro
    • Hardware Affiliate
      • Create Account
      • Login
      • Dashboard
      • Generate codes
      • Upload Codes
      • Profile information
    • Node operator
      • Register
      • Login
      • KYC
      • Activate Device
  • Contact
    • Social Media
Powered by GitBook
On this page
  • 1. Commit Reveal Process
  • 2. Register Domain
  • 3. Transfer NFT Token using NameWrapper

Was this helpful?

  1. ENS Domain Registration

Registration Steps (ENSRegistrarController)

1. Commit Reveal Process

The ENSRegistrarController uses a commit-reveal scheme to prevent front-running. Here’s how to perform the commit and reveal process:

1.1. Make Commitment

First, generate a commitment hash using the makeCommitment function. This hash is opaque and is revealed during the registration process.

Function:

function makeCommitment( string memory name, address owner, uint256 duration, bytes32 secret, address resolver, bytes[] memory data, bool reverseRecord, uint16 ownerControlledFuses ) public pure returns (bytes32)

Example:

makeCommitment( "myname", // Domain label 0x1234567890abcdef, // Owner address 31536000, // Duration (1 year in seconds) 0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890, // Secret (32 bytes) 0x1234567890abcdef, // Resolver address [], // Data false, // Set as primary name 0 // Owner-controlled fuses );

1.2. Commit

Once you have the commitment hash, call the commit function.

Function:

function commit(bytes32 commitment) public

Example:

commit(0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890);

Notes: - This requires an on-chain transaction. - Wait at least MIN_COMMITMENT_AGE (~60 seconds) before proceeding to register.

2. Register Domain

After the commitment period, you can proceed to register your domain.

2.1. Register

Ensure the domain name is available and meets the duration requirement. The actual duration is set to 584,554 years, but the input duration must be more than 28 days for validation. It should contain the same informations inputed during make commitment.

Make sure to approve an allowance of 100 ecld/etny to the controller address before registering, otherwise, the transfer will not be possible.

Function:

function register( string memory name, address owner, uint256 duration, bytes32 secret, address resolver, bytes[] memory data, bool reverseRecord, uint16 ownerControlledFuses ) public payable

Example:

register( "myname", // Domain label 0x1234567890abcdef, // Owner address 31536000, // Duration (1 year in seconds) 0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890, // Secret (32 bytes) 0x1234567890abcdef, // Resolver address [], // Data false, // Set as primary name 0 // Owner-controlled fuses );

Notes: - Ensure the domain is available: available(name) == true. - Input duration must be >= MIN_REGISTRATION_DURATION (28 days). - Commitments must be between 1 minute and 24 hours old. - The cost is fixed at 100 ECLD/ETNY.

3. Transfer NFT Token using NameWrapper

Once the domain is registered, you may need to transfer the NFT token associated with the domain to your account.

Function:

function safeTransferFrom( address from, address to, uint256 tokenId ) public

Example:

transferFrom( 0xOriginalOwner, // Current owner's address 0xNewOwner, // New owner's address 123456 // Token ID of the domain );

PreviousBloxberg MainnetNextPrerequisites

Last updated 11 months ago

Was this helpful?