Each TLD has exactly one registry. Verisign runs .com, DENIC runs .de, TRABİS runs .tr. The registry decides (within ICANN contracts for gTLDs, or under local policy for ccTLDs) who may register names and on what terms, publishes the delegations in the TLD zone, and provides the WHOIS or RDAP service for the TLD.
Registries normally do not sell to the public. They accept registrations from registrars, which creates the three-level model: the registrant holds the name, the registrar manages it, the registry records it.
It helps to know which party is responsible for what. Status codes beginning with "server" are set by the registry; those beginning with "client" are set by the registrar. Eligibility rules, redemption procedures and how much data a lookup shows are registry matters, which is why they vary from one TLD to another.