# OpenPayload Developer Network > Build secure, interoperable applications on the OpenPayload protocol and community-operated data network. - [Welcome to OpenPayload](https://docs.openpayload.io/index.md): A secure, open foundation for moving data between people, applications, devices, and intelligent agents - [Your first OpenPayload requests](https://docs.openpayload.io/quickstart.md): Resolve a public DID, create an identity locally, and send a live Hello World message - [Public alpha endpoints](https://docs.openpayload.io/public-alpha-endpoints.md): Client-facing Directory, Relay, and Cache URLs for the OpenPayload public alpha - [What is an OpenPayload DID?](https://docs.openpayload.io/concepts/what-is-a-did.md): Understand OpenPayload identities before making your first API request - [A complete messaging DID document](https://docs.openpayload.io/concepts/complete-did-document.md): See how identity keys, encryption keys, Relay discovery, and Cache authorization fit together - [Delivery policies](https://docs.openpayload.io/concepts/delivery-policies.md): Understand optional DID and Persona routing rules, constraints, and deterministic policy resolution - [Shared policies and control actions](https://docs.openpayload.io/concepts/policy-v3.md): Policy V3 structure for DID, Persona, and Application scopes - [Applications and Personas](https://docs.openpayload.io/concepts/application-registry.md): Keep integration identity separate from delivery policy - [What these APIs expose](https://docs.openpayload.io/concepts/public-api-boundary.md): Understand the safe public boundary of Directory, Relay, and Cache nodes - [Authorize a Directory update](https://docs.openpayload.io/guides/authorization.md): A beginner-friendly guide to nonces, canonical payloads, and signatures - [Build a DDN message envelope](https://docs.openpayload.io/guides/ddn-envelope.md): Learn the encrypted message format accepted by Relay and Cache nodes - [Register a Persona](https://docs.openpayload.io/guides/register-persona.md): Register a collective name, with DNS proof when the name is a domain - [OpenPayload Directory API](https://docs.openpayload.io/openpayload-directory-api.md): Public identity, policy, Persona, and Application APIs - [Resolve a DID](https://docs.openpayload.io/api-reference/directory/dids/resolve.md): Discover the public keys, services, devices, aliases, and status associated with an OpenPayload identity - [Resolve a delivery target](https://docs.openpayload.io/api-reference/directory/dids/delivery-resolution.md): Read one finalized snapshot of recipient keys and selected delivery policy - [Resolve an alias](https://docs.openpayload.io/api-reference/directory/dids/resolve-alias.md): Look up the OpenPayload DID currently associated with a public alias - [Register a DID](https://docs.openpayload.io/api-reference/directory/dids/register.md): Submit a new public DID record. - [Get registration status](https://docs.openpayload.io/api-reference/directory/dids/registration-status.md): Confirm a DID registration against the chain - [Get authorization nonces](https://docs.openpayload.io/api-reference/directory/dids/get-nonces.md): Read the counters required to build replay-resistant DID updates - [Add a device](https://docs.openpayload.io/api-reference/directory/dids/add-device.md): Add a device to a public DID record. - [Rename a device](https://docs.openpayload.io/api-reference/directory/dids/update-device.md): Change the public identifier of an existing device on an OpenPayload DID - [Remove a device](https://docs.openpayload.io/api-reference/directory/dids/remove-device.md): Permanently remove a device entry from a public OpenPayload DID record - [Tombstone a device](https://docs.openpayload.io/api-reference/directory/dids/tombstone-device.md): Retire a device while preserving a public record that it must no longer be trusted - [Deactivate a DID](https://docs.openpayload.io/api-reference/directory/dids/deactivate.md): Permanently mark an OpenPayload identity as inactive - [Delete a DID](https://docs.openpayload.io/api-reference/directory/dids/delete.md): Submit a signed identity deletion request - [Replace a DID document with proof](https://docs.openpayload.io/api-reference/directory/dids/set-document-proof.md): Replace a public DID document with authorization proof. - [Get DID delivery constraints](https://docs.openpayload.io/api-reference/directory/dids/get-delivery-constraints.md): Read requested and chain-derived delivery limits for a recipient DID - [Set DID delivery constraints](https://docs.openpayload.io/api-reference/directory/dids/set-delivery-constraints.md): Publish clock-time retention, message, chunk, and replica limits for a DID - [Add an alias](https://docs.openpayload.io/api-reference/directory/aliases/add-alias.md): Add a public alias to a DID. - [Update an alias](https://docs.openpayload.io/api-reference/directory/aliases/update-alias.md): Replace an existing public alias. - [Remove an alias](https://docs.openpayload.io/api-reference/directory/aliases/remove-alias.md): Remove a public alias from a DID. - [Create a Persona DNS challenge](https://docs.openpayload.io/api-reference/directory/personas/create-dns-challenge.md): Request the TXT record needed to prove control of a Persona domain - [Verify a Persona DNS challenge](https://docs.openpayload.io/api-reference/directory/personas/verify-dns-challenge.md): Verify the TXT record and prepare an attested canonical Persona payload for local signing - [Submit a Persona registration or renewal](https://docs.openpayload.io/api-reference/directory/personas/put.md): Sign and submit the canonical DNS-attested Persona payload prepared by a Directory - [Prepare a single-label Persona](https://docs.openpayload.io/api-reference/directory/personas/prepare-named.md): Prepare a DID-signed Persona registration without DNS proof - [Register a single-label Persona](https://docs.openpayload.io/api-reference/directory/personas/register-named.md): Submit a prepared, signed Persona registration without DNS proof - [Get a Persona](https://docs.openpayload.io/api-reference/directory/personas/get.md): Read a registered DNS-backed Persona and its effective delivery constraints - [Get Persona nonces](https://docs.openpayload.io/api-reference/directory/personas/get-nonces.md): Read replay-protection counters for Persona and Persona-policy updates - [Create a Persona transfer DNS challenge](https://docs.openpayload.io/api-reference/directory/personas/create-transfer-challenge.md): Begin an authenticated transfer to a new operator DID - [Verify a Persona transfer challenge](https://docs.openpayload.io/api-reference/directory/personas/verify-transfer-challenge.md): Verify fresh DNS control and prepare the new operator acceptance payload - [Prepare a Persona transfer](https://docs.openpayload.io/api-reference/directory/personas/prepare-transfer.md): Bind the new operator acceptance and prepare the current controller authorization payload - [Transfer a Persona operator](https://docs.openpayload.io/api-reference/directory/personas/transfer-operator.md): Submit the DNS-attested, two-party Persona transfer - [Rotate Persona controllers](https://docs.openpayload.io/api-reference/directory/personas/rotate-controllers.md): Replace the controller verification-method IDs authorized for Persona operations - [Set Persona delivery constraints](https://docs.openpayload.io/api-reference/directory/personas/set-delivery-constraints.md): Change message, chunk, replica, and clock-time limits for a Persona - [Revoke a Persona](https://docs.openpayload.io/api-reference/directory/personas/delete.md): Deactivate a Persona so it cannot participate in delivery-policy resolution - [Add verification method](https://docs.openpayload.io/api-reference/directory/document/add-verification-method.md): Add verification method in a public OpenPayload DID document. - [Update verification method](https://docs.openpayload.io/api-reference/directory/document/update-verification-method.md): Update verification method in a public OpenPayload DID document. - [Remove verification method](https://docs.openpayload.io/api-reference/directory/document/remove-verification-method.md): Remove verification method in a public OpenPayload DID document. - [Add authentication method](https://docs.openpayload.io/api-reference/directory/document/add-authentication.md): Add authentication method in a public OpenPayload DID document. - [Remove authentication method](https://docs.openpayload.io/api-reference/directory/document/remove-authentication.md): Remove authentication method in a public OpenPayload DID document. - [Add key agreement](https://docs.openpayload.io/api-reference/directory/document/add-key-agreement.md): Add key agreement in a public OpenPayload DID document. - [Update key agreement](https://docs.openpayload.io/api-reference/directory/document/update-key-agreement.md): Update key agreement in a public OpenPayload DID document. - [Remove key agreement](https://docs.openpayload.io/api-reference/directory/document/remove-key-agreement.md): Remove key agreement in a public OpenPayload DID document. - [Add a DID service](https://docs.openpayload.io/api-reference/directory/document/add-service.md): Add a DID service in a public OpenPayload DID document. - [Update a DID service](https://docs.openpayload.io/api-reference/directory/document/update-service.md): Update a DID service in a public OpenPayload DID document. - [Remove a DID service](https://docs.openpayload.io/api-reference/directory/document/remove-service.md): Remove a DID service in a public OpenPayload DID document. - [Update the root public key](https://docs.openpayload.io/api-reference/directory/document/update-root-key.md): Update the root public key in a public OpenPayload DID document. - [Resolve a delivery policy](https://docs.openpayload.io/api-reference/directory/policies/resolve.md): Ask the Directory for the chain-selected winning rule and effective constraints - [Get a DID delivery policy](https://docs.openpayload.io/api-reference/directory/policies/get-did.md): Read the optional ordered routing rules owned by a recipient DID - [Set a DID delivery policy](https://docs.openpayload.io/api-reference/directory/policies/set-did.md): Create or replace the ordered routing rules owned by a DID - [Delete a DID delivery policy](https://docs.openpayload.io/api-reference/directory/policies/delete-did.md): Remove a DID-scoped policy and restore ordinary DID service fall-through - [Get a Persona delivery policy](https://docs.openpayload.io/api-reference/directory/policies/get-persona.md): Read the optional ordered routing rules owned by a registered Persona - [Set a Persona delivery policy](https://docs.openpayload.io/api-reference/directory/policies/set-persona.md): Create or replace the ordered routing rules owned by a registered Persona - [Delete a Persona delivery policy](https://docs.openpayload.io/api-reference/directory/policies/delete-persona.md): Remove a Persona policy without revoking the Persona - [Manage a shared policy](https://docs.openpayload.io/api-reference/directory/policies/v3.md): V3 Directory routes for DID, Persona, and Application policies - [Get an application](https://docs.openpayload.io/api-reference/directory/applications/get.md): Read an application registry record from finalized chain state - [Prepare Application registration](https://docs.openpayload.io/api-reference/directory/applications/prepare-registration.md): Get the exact bytes and nonce to sign for a new Application - [Submit Application registration](https://docs.openpayload.io/api-reference/directory/applications/register.md): Submit a control DID signature for a prepared Application registration - [Prepare Application authorization](https://docs.openpayload.io/api-reference/directory/applications/prepare-authorization.md): Prepare a domain or linked DID change for a registered Application - [Submit Application authorization](https://docs.openpayload.io/api-reference/directory/applications/authorize.md): Submit signatures for a prepared Application domain or linked DID change - [Get an application policy](https://docs.openpayload.io/api-reference/directory/applications/get-policy.md): Read the control policy attached to a registered application identifier - [OpenPayload Relay API](https://docs.openpayload.io/openpayload-relay-api.md): Send encrypted DDN messages without exposing their contents to the forwarding node - [Send an encrypted message](https://docs.openpayload.io/api-reference/relay/send.md): Submit a DDN envelope to a Relay using the recipient declared in the envelope - [Send to a path-bound recipient](https://docs.openpayload.io/api-reference/relay/send-to-recipient.md): Submit a DDN envelope while binding the recipient DID in both the URL and body - [OpenPayload Cache API](https://docs.openpayload.io/openpayload-cache-api.md): Temporarily store and retrieve encrypted messages for recipients who are not immediately reachable - [Store an encrypted message](https://docs.openpayload.io/api-reference/cache/store.md): Ask a Cache node to temporarily retain one eligible DDN envelope - [Get cached messages](https://docs.openpayload.io/api-reference/cache/get-messages.md): Retrieve pending encrypted envelopes for a recipient using a signed Cache access proof - [Get messages for a device](https://docs.openpayload.io/api-reference/cache/get-device-messages.md): Retrieve encrypted envelopes targeted to one authorized device - [Get message chunks](https://docs.openpayload.io/api-reference/cache/get-chunks.md): Retrieve the encrypted chunks belonging to one message group - [Acknowledge cached messages](https://docs.openpayload.io/api-reference/cache/acknowledge.md): Remove encrypted messages from a Cache after the recipient has safely received them ## Optional - [Community](https://github.com/Mandolare-LLC/OpenPayload/discussions) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.