Destination allowlist

The set of recipients an agent is permitted to pay, cryptographically committed into the covenant.

A destination allowlist restricts which recipient addresses an agent may pay. If a vault has an allowlist configured, the covenant rejects any agent spend to a recipient not on that list — there is no way to pay an unlisted address using that agent's authority, regardless of amount or remaining budget.

How it is enforced

The allowlist is not a database check the server performs and then trusts — it is committed cryptographically (as a Merkle tree, so the list can be large without bloating every transaction) into the covenant itself. A spend transaction must include a proof that its recipient is a member of the committed set; the covenant verifies that proof as part of accepting the transaction. This means the allowlist holds even against an agent that skips the PolicyVault app and hand-builds a transaction directly.

Per-agent

In covenant versions supporting multiple independent agents, each agent can have its own recipient set — one agent's allowlist has no bearing on another's.

Changing the allowlist

Adding or removing allowed recipients is an owner-signed covenant operation (an owner may need to reconstruct and re-commit the allowlist's Merkle root). It is not something an agent or approver can do, and it is not something that can be changed by editing PolicyVault's application metadata.

No allowlist configured

A vault (or an individual agent) is not required to have a destination allowlist. Without one, an agent may pay any valid recipient, still subject to its per-transaction limit, periodic budget, and any approval threshold.

See also: Create an allowlist, Destination not allowed.