# Common use cases

Short patterns for agent verification. Agents prove things about their owner (nationality, clear AML, age or DoB, and that a real human authorized them) so services can gate commerce, finance, and access without holding full ID. Full code: [Path 1](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path1-wallet-only-javascript), [Path 2](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path2-jws-claims-javascript), [Express](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/express-middleware), [ASP.NET Core](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/aspnet-core-agent-verification).

## 1. MCP Server Integration

**Goal:** Only let human-authorized agents use tools or resources.

* Agent connects with its wallet (e.g. in handshake or header).
* Server calls `verifier.verifyByWallet(agentWallet)` and grants or restricts access.

```javascript
const result = await verifier.verifyByWallet(agentWallet);
if (result.isValid) {
  // Grant agent full MCP access
} else {
  // Restrict access or reject agent
}
```

Use [Path 1 (wallet-only)](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path1-wallet-only-javascript). No claims needed—just “is there a human behind this wallet?”

## 2. Payment and Payout Verification

**Goal:** Let an agent check payment status or receive payouts on behalf of a human, without the service storing KYC.

* Agent sends request with wallet (e.g. `GET /api/payments/status` with `x-agent-wallet` or query param).
* Service verifies: wallet is authorized by a human and not revoked, then returns status or allows payout.

Use [Path 1 (wallet-only)](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path1-wallet-only-javascript) or [Express middleware](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/express-middleware). For payouts that require “clear AML” or residency, use Path 2 with those claims (see Compliance below).

## 3. Age-Restricted Commerce

**Goal:** Sell age-restricted goods (alcohol, tobacco, certain OTC, games, content) without storing the buyer’s DoB.

* Agent places order or confirms eligibility with `Authorization: Bearer <token>` (JWS or JWT).
* Proof reveals only what’s needed: e.g. “over 18” or age band; service never sees full DoB.
* Service verifies token, checks age claim, then fulfils order.

Use [Path 2 (JWS/JWT with claims)](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path2-jws-claims-javascript) or [Express](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/express-middleware). Same pattern for digital content, streaming age gates, or in-person handover checks.

## 4. Residency or Nationality-Gated Access

**Goal:** Restrict offers, pricing, or product access by region or nationality without seeing full ID.

* Agent requests content, subscription, or product with a proof (JWS/JWT) that reveals e.g. nationality or residency.
* Service verifies proof and reads only the disclosed claim (e.g. “UK national”, “EU resident”), then applies policy.

Use [Path 2](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path2-jws-claims-javascript). Enables regional pricing, cross-border eligibility, right-to-rent style checks, and compliant geo-gating.

## 5. Compliance (KYC/AML) and Regulated Transactions

**Goal:** Let an agent execute financial actions (payments, withdrawals, gambling, lending) where the service must know the human is verified and compliant.

* Agent sends request with `Authorization: Bearer <token>` (JWS/JWT) that includes the needed claims: e.g. clear AML, nationality, age.
* Service verifies proof and checks claims (e.g. “clear AML”, “over 18”, “allowed jurisdiction”), then processes the transaction.

Use [Path 2 (JWS + claims)](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path2-jws-claims-javascript) or the [ASP.NET Core](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/aspnet-core-agent-verification) pattern. Covers payouts, crypto/DeFi access, gambling, insurance, and any flow that today would re-ask for KYC or full ID.

***

**Summary:** Path 1 = “Is this wallet acting for a verified human?” (wallet-only). Path 2 = “Is this wallet acting for a human who meets these criteria?” (JWS/JWT with selective claims: age, nationality, AML, etc.). Full guide: [ProofPack & Agent Delegation](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation).
