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
didstringDID generado con did-gen did.
baseDocumentstringnoJSON-string con el @context del DID Document. Si se omite, se usa el por defecto.
vMethodIdstringID del verification method. 32 bytes en base64url (43 chars sin padding).
proofstringProof devuelto por did-gen did.
publicKeyTypeenumSolo secp256k1 en este endpoint.
publicKeystringClave pública uncompressed con prefijo 0x04.
notBeforenumberTimestamp Unix desde el que la clave es válida.
notAfternumberTimestamp Unix de expiración.
alsoKnownAsstringIdentificador alternativo (p. ej. urn:oid:organizationIdentifier:...).
fromstringEOA 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
didstringDID existente.
baseDocumentstringnoNuevo JSON-string del @context.
vMethodIdstringID del nuevo verification method.
proofstringProof de la nueva clave.
publicKeyTypeenumSolo secp256k1.
publicKeystringNueva clave pública uncompressed.
notBeforenumberTimestamp de inicio.
notAfternumberTimestamp de fin.
fromstringEOA 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
didstring
alsoKnownAsstring
fromstring

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
didstring
baseDocumentstring (JSON serializado)
fromstring