// For reference only and subject to change
string constant didPrefix = "did:io:";
mapping(string => DID) dids;
function createDID(string id, bytes32 hash, string uri) public returns (string) {
if (bytes(id).length > 0) {
require(compareStrings(id, addrToString(msg.sender)), "id does not match creator");
string memory resultDID = generateDIDString();
require(!dids[resultDID].exist, "did already exists");
dids[resultDID] = DID(true, hash, uri);
function generateDIDString() private view returns (string) {
return string(abi.encodePacked(didPrefix, addrToString(msg.sender)));