igrantio-dcql-postal-codeslisted
Install: claude install-skill L3-iGrant/skills
# DCQL: claim value matching (restricted postal codes)
## Scenario
A delivery service requests the holder's residential address credential but
accepts it only when `postal_code` is in its allowed delivery zones. The
`values` array on a claim query makes the wallet match the claim VALUE, not
just its presence.
**Before you build**: run the integrator intake in `igrantio-ows-overview` - environment, API key, tenancy, backend host, webhooks, frontend - one question at a time, a recommended default with each.
## The DCQL query
```json
{
"credentials": [
{
"id": "residential_address",
"format": "dc+sd-jwt",
"meta": {
"vct_values": [
"https://credentials.gov.example/address_credential"
]
},
"claims": [
{ "id": "full_address", "path": ["street_address"] },
{
"id": "postal_code",
"path": ["postal_code"],
"values": ["43242", "234234"]
},
{ "id": "city", "path": ["locality"] },
{ "id": "country", "path": ["country"] }
],
"claim_sets": [
["full_address", "postal_code", "city", "country"]
]
}
]
}
```
## Run it on OWS
1. Store as a presentation definition; send the verification request (v3).
2. A wallet whose postal code is outside `values` simply has no match - the
holder cannot present. Design the UX for that outcome (clear "not in
delivery area" message, not an error).
3. On `presentation_acked` + `verified === tru