Volver a Explorar
EstándarTécnicoIdentidad y CVAvanzado

DCQL — Digital Credentials Query Language

7 minVerificado · 2026-05-18

DCQLDigital Credentials Query Language— es la evolución del lenguaje para que los verificadores especifiquen qué credenciales necesitan en una presentation request. Diseñado para reemplazar a Presentation Exchange (PE) en OID4VP draft 22+, DCQL ofrece sintaxis más limpia y mejor expresividad para casos complejos.

A 2026 está en proceso de adopción. Las wallets serias soportarán DCQL para futuras versiones de OID4VP.

Por qué DCQL en vez de Presentation Exchange

Tres limitaciones de Presentation Exchange motivaron DCQL:

Verbosidad

PE requiere mucho JSON para queries simples. DCQL es más compacto.

Multi-formato fragmentado

PE necesita lógica distinta para SD-JWT VC, mDoc, etc. DCQL unifica la query syntax.

Constraints limitados

PE solo permite filtros básicos (igual, mayor, menor). DCQL soporta filtros más complejos sobre arrays, objetos anidados.

DCQL no obsoleta PE inmediatamente. Coexistirán por años.

La estructura básica de una query DCQL

{
  "credentials": [
    {
      "id": "licencia",
      "format": "vc+sd-jwt",
      "meta": {
        "vct_values": ["LicenciaConducir"]
      },
      "claims": [
        { "path": ["tipo"], "values": ["B1"] },
        { "path": ["validUntil"] }
      ]
    },
    {
      "id": "identidad",
      "format": "mso_mdoc",
      "meta": {
        "doctype_value": "org.iso.18013.5.1.mDL"
      },
      "claims": [
        { "path": ["family_name"] },
        { "path": ["age_over_21"] }
      ]
    }
  ],
  "credential_sets": [
    {
      "options": _"licencia", "identidad"_,
      "purpose": "Confirmar habilitación de conducir + identidad"
    }
  ]
}

Esto dice: "Quiero una credencial de licencia (formato SD-JWT VC) Y una credencial de identidad (formato mDoc). Tengo que recibir ambas para validar habilitación de conducir + identidad."

Las primitivas DCQL

credentials define qué credenciales individuales acepta la query. Cada una tiene:

  • id (interno a la query, para referencia).
  • format (vc+sd-jwt, mso_mdoc, etc.).
  • meta (metadata específica del formato).
  • claims (qué campos pide).

credential_sets combina credenciales en condiciones lógicas (AND, OR). Permite expresar "una de estas dos" o "ambas obligatorias".

La ventaja en multi-formato

DCQL soporta nativamente queries cross-formato. En la misma query, una credencial puede ser SD-JWT VC y otra puede ser mDoc — la wallet sabe cómo procesar cada una basándose en format.

{
  "credentials": [
    {
      "id": "school_diploma",
      "format": "vc+sd-jwt",
      "meta": { "vct_values": ["UniversityDegree"] }
    },
    {
      "id": "drivers_license", 
      "format": "mso_mdoc",
      "meta": { "doctype_value": "org.iso.18013.5.1.mDL" }
    }
  ]
}

PE necesitaba dos input_descriptors con lógica específica por formato. DCQL unifica.

Selectores avanzados

DCQL permite expresar selectores complejos:

{
  "claims": [
    {
      "path": ["address", "country"],
      "values": ["AR", "BR", "MX"]
    },
    {
      "path": ["age"],
      "values": null,
      "purpose": "Necesario para verificar mayoría de edad"
    }
  ]
}
  • El primer claim pide país, debe ser uno de AR/BR/MX.
  • El segundo pide age sin restringir valor (acepta cualquier valor).
  • purpose documenta para el usuario por qué se pide ese dato.

Estado de adopción

ComponenteEstado
OID4VP Draft 22DCQL en spec
eIDAS 2.0DCQL para wallets futuras
SovraEn roadmap
Microsoft EntraAdoptado
Wallets ciudadanasAdopción gradual

A 2026, los proyectos nuevos deberían soportar ambos (PE y DCQL) por compatibilidad. A 2027+, DCQL probablemente sea el default.

Migración PE → DCQL

Si un sistema tiene Presentation Exchange en producción y quiere migrar a DCQL:

  1. 1
    Fase 1: Implementar DCQL en paralelo a PE. Aceptar requests en ambos formatos.
  2. 2
    Fase 2: Marcar PE como deprecado en la API. Solo aceptar para verificadores legacy.
  3. 3
    Fase 3: Cutover total a DCQL.

La fase intermedia puede durar 6-12 meses para dar tiempo a verificadores a migrar.

Referencias

Relacionados

Tagsdcqloid4vpquerieslenguaje