A computing system comprising: one or more processors; and one or more computer-readable media having thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computing system to: manage a plurality of decentralized identifiers, DIDs, and a plurality of storages (660, 670), each of the plurality of storages (660, 670) being associated with at least one of the plurality of DIDs; receive a request from an entity for operating on data stored or to be stored in one of the plurality of storages (660, 670) that is associated with a particular DID; determine a type of the data requested to be operated on, the determining the type of the data comprising: scanning the data's metadata, the metadata including information related to the type of the data, wherein only certain types of data are required to specify its type in the metadata, and based on the scanned metadata, determining the type of the data; access one or more policy rules that are applicable to the type of the data; based on the one or more policy rules, determine if the operation to be performed on the data will result in the data complying with the one or more policy rules; and based on the determination, allow the request when the operation will result in the data complying with the one or more policy rules. one or more processors; and one or more computer-readable media having thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computing system to: manage a plurality of decentralized identifiers, DIDs, and a plurality of storages (660, 670), each of the plurality of storages (660, 670) being associated with at least one of the plurality of DIDs; receive a request from an entity for operating on data stored or to be stored in one of the plurality of storages (660, 670) that is associated with a particular DID; determine a type of the data requested to be operated on, the determining the type of the data comprising: scanning the data's metadata, the metadata including information related to the type of the data, wherein only certain types of data are required to specify its type in the metadata, and based on the scanned metadata, determining the type of the data; access one or more policy rules that are applicable to the type of the data; based on the one or more policy rules, determine if the operation to be performed on the data will result in the data complying with the one or more policy rules; and based on the determination, allow the request when the operation will result in the data complying with the one or more policy rules. manage a plurality of decentralized identifiers, DIDs, and a plurality of storages (660, 670), each of the plurality of storages (660, 670) being associated with at least one of the plurality of DIDs; receive a request from an entity for operating on data stored or to be stored in one of the plurality of storages (660, 670) that is associated with a particular DID; determine a type of the data requested to be operated on, the determining the type of the data comprising: scanning the data's metadata, the metadata including information related to the type of the data, wherein only certain types of data are required to specify its type in the metadata, and based on the scanned metadata, determining the type of the data; scanning the data's metadata, the metadata including information related to the type of the data, wherein only certain types of data are required to specify its type in the metadata, and based on the scanned metadata, determining the type of the data; access one or more policy rules that are applicable to the type of the data; based on the one or more policy rules, determine if the operation to be performed on the data will result in the data complying with the one or more policy rules; and based on the determination, allow the request when the operation will result in the data complying with the one or more policy rules.