Skip to main content

Controllers

A controller is an account authorized to modify the DID Document. Any write transaction on a DID is validated against the list of active controllers.

addController

POST /api/v1/contract/addController

Adds a new controller to the DID.

Body

{
"did": "did:isbe:uc:z12kVar5p6bD5WCjEJcQ18Zyt8XV",
"controller": "0x<NEW_EOA>",
"from": "0x<CURRENT_CONTROLLER_EOA>"
}
FieldTypeRequiredDescription
didstringyesDID to which the controller is added.
controllerstringyesDID or EOA to be authorized as an additional controller.
fromstringyesEOA of a current controller that will sign the transaction.

Response

200 OK with the unsigned transaction.

Use Cases

  • Delegating the administration of the DID to another area of the organization.
  • Distributing responsibility among multiple EOAs (redundancy model).
  • Migrating control to an HSM or a custody service.

revokeController

POST /api/v1/contract/revokeController

Revokes an existing controller.

Body

{
"did": "did:isbe:uc:z12kVar5p6bD5WCjEJcQ18Zyt8XV",
"controller": "0x<EOA_TO_REVOKE>",
"from": "0x<CURRENT_CONTROLLER_EOA>"
}
FieldTypeRequiredDescription
didstringyesAffected DID.
controllerstringyesController to remove.
fromstringyesEOA of another controller with permissions to sign.

Response

200 OK with the unsigned transaction.

Do not leave yourself without a controller

Revoking the last controller leaves the DID irreversibly locked: it will never be possible to modify or rotate it again. Before revoking, verify that at least one other active controller exists.