{
  "schema": "concordium.agentDelegatedEligibilityMandate.v0.2",
  "id": "gregers-adult-eligibility-delegation-v0.2",
  "title": "Gregers delegated adult-eligibility mandate",
  "summary": "One-time wallet-approved adult eligibility can create a scoped, revocable mandate; runtime orders use policy checks plus Telegram PIN approval, not repeated raw ID-wallet proofs.",
  "issuer": "https://gregers.dev/.well-known/dfns-agent-card.json#agent-40",
  "agentTokenId": "40",
  "agentTokenAddress": "Mf22pFZuWLFzMWDPP4qzj",
  "ownerAccount": "45aE2HcgANmWhX3dbq7iKT8MeWaYQCT5XYbwZfmPVSqp1maNbt",
  "agentWallet": "45aE2HcgANmWhX3dbq7iKT8MeWaYQCT5XYbwZfmPVSqp1maNbt",
  "capability": {
    "type": "delegated_eligibility_mandate",
    "proofSystem": "Concordium Web3ID / Verifiable Presentation for enrolment; signed mandate + runtime approval for use",
    "enrolment": {
      "oneTimeWalletProofRequired": true,
      "acceptedProofs": [
        "age_over_18",
        "adult_eligibility"
      ],
      "holderApprovalRequiredAtEnrolment": true,
      "storesRawCredential": false,
      "storesRawVerifiablePresentation": false,
      "storesDobOrLegalName": false,
      "storedEvidence": [
        "mandate_hash",
        "eligibility_receipt_hash",
        "issuer",
        "subject_pairwise_hash",
        "issued_at",
        "expires_at"
      ]
    },
    "delegatedClaims": [
      "principal_age_over_18_verified"
    ],
    "allowedPurposes": [
      "food_delivery_age_restricted_addon",
      "restaurant_order_age_restricted_item",
      "vendor_preflight"
    ],
    "allowedMerchantCategories": [
      "restaurant",
      "food_delivery",
      "registered_age_restricted_vendor"
    ],
    "merchantRegistryRequirement": "merchant agent should be registry-verifiable or explicitly allowlisted before restricted order use",
    "runtimeAuthorisation": {
      "method": "telegram_pin_or_explicit_telegram_approval",
      "requiredForEachRestrictedOrder": true,
      "bindsTo": [
        "order_hash",
        "merchant_agent",
        "items_summary",
        "amount",
        "currency",
        "expires_at"
      ],
      "pinIsNotAgeProof": true,
      "maxApprovalTtlSeconds": 300
    },
    "policyLimits": {
      "maxOrderValue": {
        "amount": 75,
        "currency": "EUR"
      },
      "maxAlcoholUnitsPerOrder": 6,
      "requiresFoodItem": true,
      "jurisdiction": "merchant must verify local legality before fulfilment",
      "defaultMandateTtlDays": 180
    },
    "revocation": {
      "revocableBy": "principal_or_owner",
      "channels": [
        "Telegram owner command",
        "mandate registry/state update"
      ],
      "effect": "agent must stop using mandate immediately after revocation is recorded"
    },
    "challengeBindingFields": [
      "merchant_agent",
      "order_hash",
      "nonce",
      "expires_at",
      "requested_claim",
      "runtime_approval_id"
    ],
    "rawCredentialAccess": false,
    "rawProofStorage": false,
    "rawProofReplay": false,
    "productionBoundary": "This is a mandate/receipt architecture. It does not give Gregers custody of the identity credential; it lets Gregers use a pre-verified eligibility claim within narrow policy and runtime approval constraints."
  },
  "receipt": {
    "type": "delegated-eligibility-order-receipt",
    "schema": "gregers.delegated-adult-eligibility-order.v1",
    "algorithm": "Ed25519 or registry-bound signer",
    "disclosedToMerchant": [
      "claim",
      "mandate_hash",
      "mandate_expires_at",
      "order_hash",
      "runtime_approval_id",
      "approval_timestamp",
      "agent_token_id",
      "signature"
    ],
    "notDisclosedToMerchant": [
      "birthdate",
      "legal_name",
      "raw_id_document",
      "raw_verifiable_presentation",
      "credential_secret",
      "telegram_pin",
      "global_subject_identifier"
    ],
    "subjectIdentifier": "pairwise_hash_per_mandate_or_merchant"
  },
  "identityBoundary": {
    "registryStoresRawProof": false,
    "agentCardStoresRawProof": false,
    "publicChainDisclosesLegalName": false,
    "permissionedDisclosureRequiredForLegalNameOrDOB": true,
    "oneLineRule": "Enrol once with wallet proof; use only a scoped mandate plus per-order Telegram approval at runtime."
  },
  "status": "candidate-for-cis8004-agent-card-anchor",
  "version": "0.2.0"
}
