# Quick setup: verification context

ProofPack uses different setup for (1) **wallet-only verification** (IsDelegate) and (2) **full proof verification** (AttestedMerkleExchangeReader with attestation verifier factory and routing). The exact APIs and config shapes are in the ProofPack repo.

* **JavaScript:** [Path 1](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation/path1-wallet-only-javascript) shows the real `IsDelegateAttestationVerifier` config (`delegationSchemaUid`, `acceptedRoots`, `preferredSubjectSchemas`, `schemaPayloadValidators`). For full-document verification, the repo uses `createVerificationContextWithAttestationVerifierFactory` with an `AttestationVerifierFactory` and routing config — see [ProofPack JavaScript README](https://github.com/zipwireapp/ProofPack/tree/main/javascript#readme) and [Ethereum package: Using with Verification Context](https://github.com/zipwireapp/ProofPack/blob/main/javascript/packages/ethereum/README.md#using-with-verification-context).
* **C# / .NET:** Verifier uses `IsDelegateVerifierConfig` (AcceptedRoots, DelegationSchemaUid, etc.) and `IsDelegateVerifierOptions` (Chains or Lookup). Reader uses `AttestedMerkleExchangeVerificationContext.WithAttestationVerifierFactory` with routing. See [ProofPack .NET README](https://github.com/zipwireapp/ProofPack/blob/main/dotnet/README.md) and [EXAMPLES.md](https://github.com/zipwireapp/ProofPack/blob/main/dotnet/EXAMPLES.md).

Conceptually you configure trusted roots and schemas, then create a verifier (for wallet checks) and a reader + verification context (for JWS/JWT). Copy-paste config from the repo rather than from this page.

See [ProofPack & Agent Delegation](https://docs.zipwire.io/tools-and-integrations/proofpack-agent-delegation) and [ProofPack on GitHub](https://github.com/zipwireapp/ProofPack).
