> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openpayload.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Resolve a delivery target

> Read one finalized snapshot of recipient keys and selected delivery policy

Use this endpoint before encrypting for a full recipient DID, optionally followed by `@persona`. It selects the delivery policy and reads recipient keys from the same finalized chain snapshot. An alias is not accepted here; resolve it to a DID first.

## Request

<ParamField path="target" type="string" required>
  URL-encoded complete `did:openpayload:...` target, optionally followed by `@persona`.
</ParamField>

<ParamField query="tag" type="string">
  Optional public message tag used by policy conditions. It must match the tag on the envelope you later send.
</ParamField>

```bash theme={null}
curl --request GET \
  --url "https://directory.example.com/delivery-resolution/did%3Aopenpayload%3A1111111111111111111111%40example.com"
```

## Response

The `200` response contains `target`, `did_document`, `recipient_key_id`, `recipient_public_key_multibase`, `block_hash`, and the resolved `policy`. A direct result sets `encryption_profile` to `direct`.

When the selected Persona plan requires `RequireProfile`, `encryption_profile` is `openpayload:persona-release:v1`. The response also includes `processor_did`, `processor_key_id`, `processor_public_key_multibase`, `processor_signing_key_id`, and `processor_signing_public_key_multibase`. Use these public keys to build the [Persona release envelope](/guides/ddn-envelope#persona-release-profile). The Relay later checks the public profile shape and policy binding; your client remains responsible for encryption and unlock verification.

The Directory returns an error when the recipient is inactive, a required key is missing, or finalized policy state cannot be read. Do not treat those errors as permission to send without the selected profile.

## Straight to the point

```text theme={null}
GET /delivery-resolution/{target}
Target: full DID, optionally @persona, URL-encoded as one path value
Success: 200 with finalized recipient keys, policy, and encryption_profile
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.