The cost of a domain varies based on a few factors, including the wholesale fee set by the registry and whether you buy a domain from a reseller, registrar, or from a private party.
A registrar is a company that is accredited by ICANN (see below) to handle registrations for certain Top Level Domains (TLD). Some of the larger registrars are GoDaddy, Tucows and Network Solutions, but there are a few hundred worldwide, including Dominion Domains.
When you buy from a registrar they markup the cost they pay to the TLD registry associated with the domain, for example .com, .net, .homes, and .xyz. So for example, a .com domain may cost $8.00 for a registrar which they then add $3-4 to, making the price $11 or $12 to the consumer. Markups vary, as does the cost of the domain purchase from the registry, which is one component of why some TLD cost more than others.
ICANN, the not-for-profit governing body responsible for the domain system as part of its mission to keep the Internet safe, stable and interoperable through the Internet’s naming system. ICANN charges a $0.18 fee for TLDs for each year of registration in addition to a variable fee that is charged to registrars each month. These fees are included in the total cost that the registrar charges.
A reseller might be a hosting company that has a specific market focus or a domain broker that does not want to acquire ICANN accreditation to sell domain names directly. Therefore they enter into an agreement with a registrar to sell domain names. They generally charge a markup based on the price they receive from the registrar, or charge for their service in buying the domain for a customer. Although resellers do not generally have accreditation from ICANN, there are certain rules they need to follow based on the 2013 Registrar Accreditation Agreement (RAA), which is pro-buyer protection to ensure resellers align with their registrars’ commitments to ICANN.
Resellers are less likely to have the lowest domain prices as they may markup the registrars cost of domains by as much as 50%, or in the case of a domain owner who sells through a reseller it might be many multiples of that in a flat cost or auction sales process (the most expensive domain cost $872 million!).
ICANN - Charges an 18 cents per year of registration fee for the domains they manage in addition to variable fees that are collected each month based on total registrations
Registry Operators - Charge a specific wholesale price for a domain that varies based on the TLD
Registrars - Charge a markup on top of the wholesale cost of the domain from the registry, plus the ICANN fees
Reseller - Charge an additional markup on the fee charged by their registrar partner.