---
title: "introduction"
---

## Public-Key Addressable Resource Records

[PKARR](https://github.com/pubky/pkarr) is a revolutionary system that bridges the gap between the Domain Name System ([DNS](https://pubky.org/explore/technologies/dns.md)) and peer-to-peer overlay networks. It allows self-issued public keys to function as sovereign, publicly addressable domains. This means that anyone with a private key can have a domain that is accessible to everyone.

The core idea is to streamline the process of publishing and resolving resource records for keys, leveraging the Distributed Hash Table ([DHT](https://pubky.org/explore/technologies/dht.md)) for efficient and scalable data distribution.

## Key Features

- **Simplicity**: PKARR streamlines the integration between [DNS](https://pubky.org/explore/technologies/dns.md) and peer-to-peer networks.
- **Sovereignty**: Public keys can be used as domains, enabling users to maintain control over their digital identities.
- **Accessibility**: The system is designed to be accessible to anyone capable of maintaining a private key. [Pubky Ring](https://pubky.org/explore/technologies/pubky-ring.md) provides a user-friendly mobile app for managing these keys securely.
- **Scalability and Resilience**: Designed with scalability and resilience in mind, using the [Mainline DHT](https://pubky.org/explore/technologies/mainline-dht.md) for storing ephemeral data, and employing caching strategies to minimize [DHT](https://pubky.org/explore/technologies/dht.md) traffic.
- **Compatibility with Existing Applications**: Supports existing applications through [DNS](https://pubky.org/explore/technologies/dns.md) over [HTTPS](https://pubky.org/explore/technologies/https.md) ([DoH](https://pubky.org/explore/technologies/doh.md)) queries to PKARR servers, ensuring broad compatibility.

## How It Works

1. **Publishing Records**: To publish resource records for a key, create a small encoded [DNS](https://pubky.org/explore/technologies/dns.md) packet (<= 1000 bytes), sign it, and publish it on the DHT. This can be done directly or through a relay if necessary.
2. **Resolving Records**: To find resources associated with a key, applications can query the [DHT](https://pubky.org/explore/technologies/dht.md) directly or through a relay, verifying the signature themselves.
3. **Fallback for Existing Applications**: Applications unaware of PKARR can make normal [DNS](https://pubky.org/explore/technologies/dns.md) Queries over [HTTPS](https://pubky.org/explore/technologies/https.md) (DoH) to PKARR servers, ensuring accessibility.
4. **Caching and Republishing**: Both clients and PKARR servers cache records extensively to improve scalability. The [DHT](https://pubky.org/explore/technologies/dht.md) drops records after a few hours, necessitating periodic republishing to keep records alive.

For more technical details on PKARR's architecture and how it works, refer to the [architecture](https://pubky.org/explore/pubkycore/pkarr/architecture.md) note.

## Getting Started

[To start using PKARR](2.Getting%20Started%20with%20Pkarr.md), you can visit the [web app demo](https://pkdns.net) or explore the Rust examples provided in [PKARR repository](https://github.com/pubky/pkarr).

To access public-key domains from your browser, use [PKDNS](https://pubky.org/explore/technologies/pkdns.md), a DNS server that resolves PKARR records. You can use public [PKDNS](https://pubky.org/explore/technologies/pkdns.md) instances or run your own server—see the [PKDNS](https://pubky.org/explore/technologies/pkdns.md) documentation for setup instructions.
