{
  "name": "Gregers",
  "description": "Concordium Agent #40 public verification agent: registry/card/hash checks, delegated eligibility mandates, Telegram PIN runtime approvals, payment/task preflights, and tamper-evident receipts.",
  "url": "https://gregers.dev/.well-known/dfns-agent-card-proof-capabilities-v0.2.json",
  "version": "1.2.0-delegated-eligibility-v0.2",
  "defaultInputModes": [
    "text/markdown",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/markdown",
    "application/json"
  ],
  "authentication": {
    "schemes": []
  },
  "skills": [
    {
      "id": "agent-trust-passport",
      "name": "Agent Trust Passport",
      "description": "Expose public Agent #40 registry, wallet, card-hash, status, and receipt evidence for counterparties.",
      "tags": [
        "concordium",
        "agent-registry",
        "passport",
        "verification"
      ]
    },
    {
      "id": "agent-verify",
      "name": "Agent Verify",
      "description": "Run public CIS-8004 token/wallet/card-hash checks before API access, payments, marketplace tasks, or signed actions.",
      "tags": [
        "concordium",
        "cis-8004",
        "preflight",
        "wallet-binding"
      ]
    },
    {
      "id": "delegated-eligibility-mandate",
      "name": "Delegated eligibility mandate",
      "description": "Declare a one-time wallet-approved adult-eligibility mandate with narrow scope, expiry, revocation, and no raw ID storage.",
      "tags": [
        "web3id",
        "delegation",
        "eligibility",
        "privacy"
      ]
    },
    {
      "id": "age-gate-attestation",
      "name": "Runtime restricted-order approval",
      "description": "Use Telegram PIN or explicit Telegram approval per restricted order, bound to merchant, order hash, amount, expiry, and a prior adult-eligibility mandate.",
      "tags": [
        "telegram-pin",
        "runtime-approval",
        "age-restricted",
        "receipt"
      ]
    },
    {
      "id": "two-party-preflight",
      "name": "Two-party payment/task preflight",
      "description": "Build no-money receipts for pizza/beer and marketplace-style wallet A to wallet B verification flows.",
      "tags": [
        "payments",
        "x402",
        "marketplace",
        "counterparty-proof"
      ]
    },
    {
      "id": "merchant-proof-packet",
      "name": "Merchant proof packet",
      "description": "Produce a restricted-order proof packet containing registry proof, mandate hash, runtime approval receipt, and order hash without exposing raw ID attributes.",
      "tags": [
        "merchant",
        "proof-packet",
        "order-hash",
        "audit"
      ]
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "provider": {
    "organization": "gregers.dev"
  },
  "concordium": {
    "tokenAddress": "ccd:9dd9ca4d19e9393877d2c44b70f89acb/cis-2:Mf22pFZuWLFzMWDPP4qzj",
    "tokenAddressBase58": "Mf22pFZuWLFzMWDPP4qzj",
    "chain": "ccd:9dd9ca4d19e9393877d2c44b70f89acb",
    "network": "Concordium Mainnet",
    "networkId": "mainnet",
    "tokenId": "40",
    "owner": {
      "account": "45aE2HcgANmWhX3dbq7iKT8MeWaYQCT5XYbwZfmPVSqp1maNbt",
      "caip10": "ccd:9dd9ca4d19e9393877d2c44b70f89acb:45aE2HcgANmWhX3dbq7iKT8MeWaYQCT5XYbwZfmPVSqp1maNbt"
    },
    "agentWallet": "45aE2HcgANmWhX3dbq7iKT8MeWaYQCT5XYbwZfmPVSqp1maNbt",
    "contracts": {
      "cis8004": "<10082,0>",
      "cis8": "<10081,0>"
    },
    "externalReference": null,
    "services": {
      "tipping": "https://gregers.dev/pay",
      "ageVerification": "https://gregers.dev/proof",
      "proofCapabilityMandate": "https://gregers.dev/.well-known/gregers-delegated-eligibility-mandate-v0.2.json",
      "proofCapabilityVerifier": "https://gregers.dev/api/agents/40/proof-capabilities",
      "agentPassport": "https://gregers.dev/agent-passport/40",
      "agentVerify": "https://gregers.dev/agent-verify",
      "twoPartyPreflight": "https://gregers.dev/preview/two-party-agent-flow-20260701-a7c9",
      "pizzaDudeAgeGate": "https://gregers.dev/preview/pizza-dude-agent-20260701-a7c9"
    },
    "proofCapabilityMandate": {
      "schema": "concordium.agentDelegatedEligibilityMandate.v0.2",
      "id": "gregers-adult-eligibility-delegation-v0.2",
      "uri": "https://gregers.dev/.well-known/gregers-delegated-eligibility-mandate-v0.2.json",
      "sha256": "e8a3b7ef6b497d004ca93dc52931251eaddf05817a0800ce7e4489f4773e36d9",
      "status": "candidate_not_yet_anchored"
    },
    "agentProofCapabilities": [
      {
        "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.",
        "id": "gregers-adult-eligibility-delegation-v0.2",
        "mandateUri": "https://gregers.dev/.well-known/gregers-delegated-eligibility-mandate-v0.2.json",
        "mandateSha256": "e8a3b7ef6b497d004ca93dc52931251eaddf05817a0800ce7e4489f4773e36d9",
        "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."
        }
      }
    ]
  }
}
