Choosing a readable .k name lets a Kaspa payment address be reached without copying a long string of characters. Once the registration is complete, the holder keeps that name without a yearly bill and can transfer or release it later. Supertypo brought this to Kaspa mainnet with dotk.

A word that can be read at the moment of payment
A Kaspa payment address is a long string that is hard to recognise at a glance, awkward to read aloud, and clumsy to show on a screen or a card. Copying and QR scanning already help a sender avoid typing it by hand, but a long unfamiliar identifier is still easier to mix up than a readable name. A .k name does not prove legal identity and it does not remove every mistake, yet it gives people something they can check with their own eyes.
A .k name is a short label that stands in for the address. If someone is paid as alice.k, the sender can type a word they can check by eye, and the coins still move to the address that owns the name. The purpose of the label is to make sending and displaying an account less brittle.
When a wallet understands the name, the sender types alice.k, the app resolves it to the current owner's address, and the person approves the payment. The keys stay in the wallet. A wallet that never looks up .k names will still ask for the long address.
Registering uses up the free place
A .k name is a coin on the Kaspa base layer. Registering one creates it, transferring it moves it, and releasing it destroys it and frees the word (why).
Kaspa can attach rules to coins and check those rules whenever the coins are spent. Those attached rules are known as covenants. They are conditions the existing chain already enforces.
Registration spends the registry's relevant record of free space before the name is activated. Once that record is used, two people cannot both complete a valid claim on the same name, because the second attempt would have to consume space that is already gone. Uniqueness is settled there.
Once that registration is completed, the name does not expire. There is no renewal to remember. An incomplete reservation can still be cleared after a waiting period, so an abandoned pending request does not lock the word forever (developers).
Names are first-come and transferable. For five characters or more, the listed price is 40 KAS plus network fees. Two KAS of that sum stays with the name and comes back if it is later released. The remaining 38 KAS is a one-time development fee. It funds the protocol, the libraries that wallets and explorers can build on, and the integrations that carry names beyond the registration site. Shorter names cost more, because a flat cheap price would make bulk buying too easy.

The deployed rules are frozen, with no admin key that could upgrade them or redirect the fee.
A directory answers, a node can check
When software needs to pay alice.k, it can ask a directory who the name belongs to and then check the answer against a node. The directory is how an app discovers the owner. The node is how it refuses to take that answer on trust.
Someone who already knows the name and owner can check the claim without the directory. Knowing those details does not authorize a transfer. Only the owner's required authorization can move the name, and that authorized transfer can also be done without the directory. A node still cannot list every name an address holds by itself (integrators).
Integrations that omit the node check still trust the lookup. With a properly connected and trusted node, replies are checked against the chain. A failed lookup should stop the payment rather than substitute a similar name or an old cached address.
Published libraries already let a wallet or app resolve, verify, register, transfer, release, and attach records, with a transaction plan built before anything is signed. The packages are @dotk/sdk and @dotk/sdk-tx. The signer remains the wallet. The registry website does not take the keys.
At launch, the dotk webapp can work with KasWare, Kastle, and Kaspire on desktop, and with Kaspire on Android. Supertypo said no suitable iOS wallet was available then. That support is for the registration site. It is not automatic .k handling inside every wallet's ordinary send screen.
The profile belongs to the current owner
An address may hold several names. A record on one of them can designate a primary name, so software can show one label instead of the raw address. Optional records can also carry a URL, an avatar, social handles, and an email address. They sit beside the name and can be checked against current ownership (why).
After a transfer, the seller's records stop counting, so the buyer does not inherit those claims. For example, consider a person who buys alice.k from someone whose card still advertised an old website and a social account. If those claims travelled with the name, the new holder would appear to stand behind them. Because the records belong only to the current owner, the buyer starts without that borrowed profile. The records are the owner's own statements. They are not proof of an off-chain identity or control of a claimed social account.
The deployed rules already allow a contract to own a name. While a contract holds it, that contract is the only route back out, which is the kind of hold a later sale or escrow would need. A marketplace of that kind is listed among dotk's later plans, perhaps as a partnership (what's next).
The covenant, directory, command-line, and package sources remain planned for release.
The app is offered without warranty. Supertypo asked people to treat the new site with caution, said bugs may remain despite testing, and told them to inspect the deducted amount in the wallet before signing (thread) (disclaimer). Losing the keys, or transferring ownership to a destination nobody can spend, can strand the name permanently.
Until a person's own wallet resolves .k names inside its send flow, the name can be owned on the chain and still be ignored by the app they actually pay with. Supertypo said he aims to have wallets add support for the names (thread).


