IOTA Name CLI
The iota name
command enables interactions with the IOTA Names via the command line, such as registration, resolution and renewal of .iota
names.
Commands
The iota name
command manages name registration and resolution on IOTA. Run iota name --help
for the latest list of subcommands.
iota name --help
Manage names registered in IOTA-Names
Usage: iota name [OPTIONS] <COMMAND>
Commands:
auction Auction related operations, like bidding and claiming
availability Check the availability of a domain and return its price if available. Subdomains are always free to register by the parent domain owner
burn Burn an expired IOTA-Names NFT
get-user-data Get user data by its key
list List the domains owned by the given address, or the active address
lookup Lookup the address of a domain
register Register a domain
renew Renew an existing domain. Cost is the domain price * years
reverse-lookup Lookup a domain by its address if reverse lookup was set
set-reverse-lookup Set the reverse lookup of the domain to the transaction sender address
set-target-address Set the target address for a domain
set-user-data Set arbitrary keyed user data
subdomain Commands for managing subdomains
transfer Transfer a registered domain to another address via the owned NFT
unset-reverse-lookup Unset reverse lookup
unset-user-data Unset keyed user data
help Print this message or the help of the given subcommand(s)
Options:
--client.config <CONFIG> The file storing the state of the user accounts
--json Return command outputs in json format
-h, --help Print help
-V, --version Print version
Over the next sections, we will cover the most commonly used subcommands of iota name
in detail.
Auction
Used only during the initial launch phase, the iota name auction
subcommand enables users to acquire .iota
domains through a fair and open bidding process.
During this temporary period (e.g. ~1 month), all domains must be obtained via auction — no direct registration is available. This approach ensures a fair distribution of names, particularly short or in-demand ones, and prevents issues like front-running or squatting.
To participate in the auction, users can place bids on available names. The auction will conclude after a set period, and the highest bidder for each name will win the right to register it.
iota name auction --help
Auction related operations, like bidding and claiming
Usage: iota name auction [OPTIONS] <COMMAND>
Commands:
bid Place a new bid
claim Claim the name if the auction winner is the sender
metadata Get metadata of an auction
start Start an auction, if it's not started yet, and make the first bid
help Print this message or the help of the given subcommand(s)
Options:
--json Return command outputs in json format
-h, --help Print help
-V, --version Print version
Example: Start and Bid in an Auction
To start an auction for a name, use the start
command. This command initializes the auction and allows you to place the first bid.
iota name auction start awesome.iota
Successfully started auction for awesome.iota
Auction status: Active
╭────────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────────┼────────────────────────────────────────────────────────────────────┤
│ Start │ 2025-06-03 17:53:01.182000000 UTC │
│ End │ 2025-06-03 18:53:01.182000000 UTC │
│ Current Bid │ 10000000 │
│ Current Bidder │ 0xc9f649324694c0c18c6278c3a81945fb3ef0c9b91f21dd5b6a4364447ee348df │
╰────────────────┴────────────────────────────────────────────────────────────────────╯
Transaction digest: HCUc5QjaunVPUwqj6vWCMxJ8nTBkDw88stNb4r2o4a1X
To place a new bid, use the bid
command. This command allows you to increase the current bid for the auctioned name.
In this example, we will switch to another account to place a bid for the name awesome.iota
.
iota client switch <account_2_alias>
iota name auction bid awesome.iota --amount 1010000000
The output will confirm the successful bid placement and display the current auction status, including the start and end times, current bid amount, and the current bidder's address.
iota name auction bid awesome.iota
Successfully placed bid for awesome.iota
Auction status: Active
╭─ ───────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────────┼────────────────────────────────────────────────────────────────────┤
│ Start │ 2025-06-03 17:53:01.182000000 UTC │
│ End │ 2025-06-03 18:53:01.182000000 UTC │
│ Current Bid │ 1010000000 │
│ Current Bidder │ 0x55771a075822ffe446b638d64f5b69641992c556471f3c0055fd9646e0c4c3f6 │
╰────────────────┴────────────────────────────────────────────────────────────────────╯
NFT:
╭────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────┼────────────────────────────────────────────────────────────────────┤
│ ID │ 0x896cee37d691bf053e5883fa3f696be90329d67adf879b1323f01982d9a00466 │
│ Domain │ awesome.iota │
│ Expiration │ 1780509181182 (2026-06-03 17:53:01.182000000 UTC) │
╰────────────┴────────────────────────────────────────────────────────────────────╯
Transaction digest: BYzwdmW3AM8b9WA7eA6kDvxbH4jf5ftg1ofPX4R6ZXW4
After the auction ends, the highest bidder can claim the name using the claim
command. This command transfers ownership of the name to the winning bidder.
If you try to claim a name before the auction ends, you will receive an error message indicating that the auction is still active.
iota name auction claim awesome.iota
Error executing transaction 'G9Xmyyso2DznMe7Y1fTB12TbvzFtfuSA82JsTVgbnAt9': 2nd command aborted within function '0x5e7a300e640f645a4030aeb507c7be16909e6fa9711e7ca2d4397bbd967d5c50::auction::claim' at line 228. Aborted with 'EAuctionNotEnded' -- 'The auction has not ended.'
Once the auction has ended, the winning bidder can successfully claim the name:
iota name auction claim awesome.iota
Successfully claimed awesome.iota
╭────────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────────┼────────────────────────────────────────────────────────────────────┤
│ NFT ID │ 0x896cee37d691bf053e5883fa3f696be90329d67adf879b1323f01982d9a00466 │
│ Target Address │ none │
│ Expiration │ 1780509181182 (2026-06-03 17:53:01.182000000 UTC) │
╰────────────────┴────────────────────────────────────────────────────────────────────╯
Created NFT:
╭────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────┼────────────────────────────────────────────────────────────────────┤
│ ID │ 0x896cee37d691bf053e5883fa3f696be90329d67adf879b1323f01982d9a00466 │
│ Domain │ awesome.iota │
│ Expiration │ 1780509181182 (2026-06-03 17:53:01.182000000 UTC) │
╰────────────┴────────────────────────────────────────────────────────────────────╯
Transaction digest: Ap53V8mwCK5rP38CxbCMJgaeNe9NfxqrofzkdJzZzJrh
Register
After the auction phase, users can register .iota
names directly using the iota name register
command. This command allows you to register a name that is not currently owned by anyone.
The register
command is only available after the auction period ends. During the auction phase, you must use the iota name auction
commands to acquire names.
Example: Register a Name
To register a name, use the register
command followed by the desired name. To set reverse lookup of the domain to the transaction sender address, you can use the --reverse-lookup
flag.
If you want to set reverse lookup of the domain to the transaction sender address, you must set the --set-target-address
flag to the address of the sender.
iota name register abc.iota --set-reverse-lookup --set-target-address=<sender_address>
Registered record:
╭────────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────────┼────────────────────────────────────────────────────────────────────┤
│ NFT ID │ 0x831b7d983d20914950fe98ca49ffcd366b55fca593ede95805869c9a090a8de8 │
│ Target Address │ 0x55771a075822ffe446b638d64f5b69641992c556471f3c0055fd9646e0c4c3f6 │
│ Expiration │ 1780512084730 (2026-06-03 18:41:24.730000000 UTC) │
╰────────────────┴───────────── ───────────────────────────────────────────────────────╯
Created NFT:
╭────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────┼────────────────────────────────────────────────────────────────────┤
│ ID │ 0x831b7d983d20914950fe98ca49ffcd366b55fca593ede95805869c9a090a8de8 │
│ Domain │ abc.iota │
│ Expiration │ 1780512084730 (2026-06-03 18:41:24.730000000 UTC) │
╰────────────┴────────────────────────────────────────────────────────────────────╯
Transaction digest: 7XRX6zr3As7UgXNw7BnuYsxYsJbavnMfvrFEC2AHJcdf
Lookup
The iota name lookup
command allows you to resolve a .iota
name to its associated address. This is useful for checking the ownership of a name or finding the address linked to it.
Since we registered the name abc.iota
in the previous example, we can now look it up to see its associated address:
iota name lookup abc.iota
0x55771a075822ffe446b638d64f5b69641992c556471f3c0055fd9646e0c4c3f6
Reverse Lookup
The iota name reverse-lookup
command allows you to find the .iota
name associated with a specific address. This is useful for checking if an address has a registered name and retrieving that name.
To perform a reverse lookup, you can use the reverse-lookup
command followed by the address you want to check. If the address has a registered name with reverse lookup set, it will return that name.
iota name reverse-lookup 0x55771a075822ffe446b638d64f5b69641992c556471f3c0055fd9646e0c4c3f6
abc.iota
Subdomain
Once you own a .iota
domain, you can create and manage subdomains using the iota name subdomain
command. This command allows you to register subdomains under your main domain, enabling a hierarchical structure for your names.
iota name subdomain
Commands for managing subdomains
Usage: iota name subdomain [OPTIONS] <COMMAND>
Commands:
register-leaf Register a new leaf subdomain, which can only be managed by the parent's NFT
register-node Register a new node subdomain, which will create an NFT for management
update-metadata Update the metadata flags for a subdomain
extend-expiration Extend the expiration of a subdomain
help Print this message or the help of the given subcommand(s)
Options:
--json Return command outputs in json format
-h, --help Print help
-V, --version Print version
Leaf vs Node Subdomains
Subdomains in IOTA can be either leaf or node types:
-
Leaf subdomains are lightweight and fully controlled by the parent domain. They do not have their own NFT, cannot be transferred, and are ideal for internal or programmatic use.
-
Node subdomains have their own NFT, allowing independent ownership, customization, and transfer. They support features like expiration control, reverse lookup, and target address updates.
Use leaf subdomains when centralized control is needed, and node subdomains when delegating ownership or creating standalone identities.
Example: Register a Subdomain
To register a subdomain, use the register
command under the subdomain
subcommand. Specify the parent domain and the desired subdomain name.
iota name subdomain register-leaf first.abc.iota
Registered record:
╭────────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────────┼────────────────────────────────────────────────────────────────────┤
│ NFT ID │ 0x831b7d983d20914950fe98ca49ffcd366b55fca593ede95805869c9a090a8de8 │
│ Target Address │ 0x55771a075822ffe446b638d64f5b69641992c556471f3c0055fd9646e0c4c3f6 │
│ Expiration │ 0 (1970-01-01 00:00:00.000000000 UTC) │
╰────────────────┴──────────────────────────────────── ────────────────────────────────╯
Transaction digest: 9R6ABmmMDLdKvbVqa8QS99d2JXFmYwHk1dUZVo81xeE7
Availability
The iota name availability command checks whether a .iota
domain is available for registration. If the domain is available, the command also returns the price required to register it. This is useful for determining domain availability before attempting an auction or registration.
iota name availability new.iota
"new.iota" is available for 500000000 NANOs
Burn
The iota name burn
command allows you to burn an expired .iota
name NFT that you do not want to renew. This is useful for cleaning up expired names and freeing up resources on the network.
If you try to burn a name that is not expired, you will receive an error message indicating that the name is still active.
iota name burn awesome.iota
NFT for awesome.iota has not expired yet: 2026-06-03 17:53:01.182000000 UTC
List
The iota name list
command displays all domains currently owned by the active wallet address (or a specified address).
iota name list
╭────────────────────────────────────────────────────────────────────┬──────────────┬───────────────────────────────────────────────────╮
│ id │ domain │ expiration │
├────────────────────────────────────────────────────────────────────┼──────────────┼───────── ──────────────────────────────────────────┤
│ 0x831b7d983d20914950fe98ca49ffcd366b55fca593ede95805869c9a090a8de8 │ abc.iota │ 1780512084730 (2026-06-03 18:41:24.730000000 UTC) │
│ 0x896cee37d691bf053e5883fa3f696be90329d67adf879b1323f01982d9a00466 │ awesome.iota │ 1780509181182 (2026-06-03 17:53:01.182000000 UTC) │
╰────────────────────────────────────────────────────────────────────┴──────────────┴───────────────────────────────────────────────────╯
Renew
The iota name renew
command extends the expiration of an existing .iota
name. The renewal cost is calculated as the domain's base price multiplied by the number of years.
iota name renew abc.iota 2
Renewed record:
╭────────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────────┼────────────────────────────────────────────────────────────────────┤
│ NFT ID │ 0x831b7d983d20914950fe98ca49ffcd366b55fca593ede95805869c9a090a8de8 │
│ Target Address │ 0x55771a075822ffe446b638d64f5b69641992c556471f3c0055fd9646e0c4c3f6 │
│ Expiration │ 1843584084730 (2028-06-02 18:41:24.730000000 UTC) │
╰────────────────┴────────────────────────────────────────────────────────────────────╯
Updated NFT:
╭────────────┬────────────────────────────────────────────────────────────────────╮
│ field │ value │
├────────────┼────────────────────────────────────────────────────────────────────┤
│ ID │ 0x831b7d983d20914950fe98ca49ffcd366b55fca593ede95805869c9a090a8de8 │
│ Domain │ abc.iota │
│ Expiration │ 1843584084730 (2028-06-02 18:41:24.730000000 UTC) │
╰────────────┴────────────────────────────────────────────────────────────────────╯
Transaction digest: 5F2B4saqVPzDExdnCm3p9goCLDx3BCApt3zpDfvWz9Lq
Transfer
The iota name transfer
command transfers a domain to a different address by transferring the NFT associated with the domain.
iota name transfer awesome.iota <to_address>
Successfully transferred awesome.iota to <to_address>
Transaction digest: 4JwitxtpCGtLgh1PGpTWRxfv4ajzeozgnpuHtmLwDVC7