Saltar al contenido principal

DID Document

Endpoints para gestionar el cuerpo principal del DID Document: alta inicial, sustitución y actualización de campos.

Todos devuelven una transacción sin firmar que debe firmarse y enviarse a /transactions/send.

insertFirstDidDocument​

POST /api/v1/contract/insertFirstDidDocument

Crea la transacción de alta inicial de un DID. Solo se invoca una vez por entidad, y requiere que la EOA from esté autorizada por ISBE para hacer onboarding.

Cuerpo​

CampoTipoRequiredDescripción
didstringsíDID generado con did-gen did.
baseDocumentstringnoJSON-string con el @context del DID Document. Si se omite, se usa el por defecto.
vMethodIdstringsíID del verification method. 32 bytes en base64url (43 chars sin padding).
proofstringsíProof devuelto por did-gen did.
publicKeyTypeenumsíSolo secp256k1 en este endpoint.
publicKeystringsíClave pública uncompressed con prefijo 0x04.
notBeforenumbersíTimestamp Unix desde el que la clave es válida.
notAfternumbersíTimestamp Unix de expiración.
alsoKnownAsstringsíIdentificador alternativo (p. ej. urn:oid:organizationIdentifier:...).
fromstringsíEOA de la secp256k1 que firmará.

Ejemplo de cuerpo​

{
"did": "did:isbe:uc:z12kVar5p6bD5WCjEJcQ18Zyt8XV",
"vMethodId": "9lfZ28jdUsYo75lVHmGNIc6oUpkjSFtxiCLjDGn28IM",
"proof": "0x70bc9d8cdf...",
"publicKeyType": "secp256k1",
"publicKey": "0x041243f50ac70fc996ccc92a...",
"notBefore": 1774602263,
"notAfter": 2090221463,
"alsoKnownAs": "urn:oid:organizationIdentifier:ISBE",
"from": "0xAe0E493C67f75381b0954644836A3C16c79D0dFD"
}

Respuesta​

200 OK con la transacción sin firmar (ver estructura común).

Errores​

  • 400 — Validación de campos.
  • 500 — Error de la API o de la red.

Para el flujo completo de onboarding, ver Registro del DID.


insertDidDocument​

POST /api/v1/contract/insertDidDocument

Sustituye el DID Document de una entidad que ya está registrada. Útil para rotar la clave de control inicial o reescribir contextos.

Diferencias con insertFirstDidDocument​

  • No requiere alsoKnownAs en el cuerpo (no es obligatorio).
  • La autorización se valida contra el controlador actual del DID, no contra la lista de onboarding.

Cuerpo​

CampoTipoRequiredDescripción
didstringsíDID existente.
baseDocumentstringnoNuevo JSON-string del @context.
vMethodIdstringsíID del nuevo verification method.
proofstringsíProof de la nueva clave.
publicKeyTypeenumsíSolo secp256k1.
publicKeystringsíNueva clave pública uncompressed.
notBeforenumbersíTimestamp de inicio.
notAfternumbersíTimestamp de fin.
fromstringsíEOA del controlador firmante.

Respuesta​

200 OK con la transacción sin firmar.


updateAlsoKnownAs​

POST /api/v1/contract/updateAlsoKnownAs

Cambia el valor del campo alsoKnownAs del DID Document.

Cuerpo​

{
"did": "did:isbe:uc:z12kVar5p6bD5WCjEJcQ18Zyt8XV",
"alsoKnownAs": "urn:oid:organizationIdentifier:NUEVO_CODIGO",
"from": "0xAe0E493C67f75381b0954644836A3C16c79D0dFD"
}
CampoTipoRequired
didstringsí
alsoKnownAsstringsí
fromstringsí

updateBaseDocument​

POST /api/v1/contract/updateBaseDocument

Actualiza el @context del DID Document. Útil si la entidad necesita añadir un contexto JSON-LD adicional.

Cuerpo​

{
"did": "did:isbe:uc:z12kVar5p6bD5WCjEJcQ18Zyt8XV",
"baseDocument": "{\"@context\":[\"https://www.w3.org/ns/did/v1\",\"https://w3id.org/security/suites/jws-2020/v1\"]}",
"from": "0xAe0E493C67f75381b0954644836A3C16c79D0dFD"
}
CampoTipoRequired
didstringsí
baseDocumentstring (JSON serializado)sí
fromstringsí