Verification Relationships
Una verification relationship expresa para qué se puede usar una clave previamente registrada en el DID. Una clave puede tener varias relaciones simultáneas, pero al menos una es obligatoria para que la clave sea operativa.
addVerificationRelationship
POST /api/v1/contract/addVerificationRelationship
Asocia una relación de verificación a una clave existente en el DID.
Cuerpo
| Campo | Tipo | Required | Descripción |
|---|---|---|---|
did | string | sí | DID afectado. |
name | string | sí | Nombre de la relación. Valores típicos: assertionMethod, authentication, keyAgreement, capabilityInvocation, capabilityDelegation. |
vMethodId | string | sí | ID del verification method al que se asocia la relación. Debe existir previamente. |
notBefore | number | sí | Timestamp Unix desde el que la relación es válida. |
notAfter | number | sí | Timestamp Unix en el que la relación expira. |
from | string | sí | EOA del controlador firmante. |
Valores de name admitidos
name | Significado |
|---|---|
authentication | La clave puede autenticarse como el DID (p. ej. SIOPv2, login). |
assertionMethod | La clave puede firmar credenciales y acreditaciones verificables. |
keyAgreement | La clave puede participar en acuerdos de clave (DH, ECDH-ES). |
capabilityInvocation | La clave puede invocar capacidades delegadas. |
capabilityDelegation | La clave puede delegar capacidades. |
Ejemplo
{
"did": "did:isbe:uc:z12kVar5p6bD5WCjEJcQ18Zyt8XV",
"name": "assertionMethod",
"vMethodId": "WqpsDjTHnYVNvX8qx4a1FER8NgnEBS6DjLbDVrX-Fg4",
"notBefore": 1774603242,
"notAfter": 2090222442,
"from": "0xAe0E493C67f75381b0954644836A3C16c79D0dFD"
}
Respuesta
200 OK con la transacción sin firmar.
Errores frecuentes
400sivMethodIdno existe en el DID (debes registrarlo antes conaddVerificationMethod).400sinotBefore >= notAfter.
Patrón habitual
Para una entidad emisora, el patrón completo de alta de una clave operacional es:
addVerificationMethodconpublicKeyType=JsonWebKey2020.addVerificationRelationshipconname=assertionMethod.
Sin el segundo paso, la clave no se puede usar para firmar credenciales.
Notas sobre revocación de relaciones
Actualmente la API no expone un endpoint específico para revocar una relación individual. Para invalidar una relación:
- Revoca o expira el verification method completo con
revokeVerificationMethodoexpireVerificationMethod. La relación deja automáticamente de aplicar. - Si solo quieres cambiar el uso (por ejemplo, pasar de
authenticationaassertionMethod), añade la nueva relación y deja que la antigua expire pornotAfter.