Decentralized Idenitfiers (DIDs1) are designed to be compatible with any distributed ledger or network. In the Ethereum community, a pattern known as ERC-7252, ERC-7343 utilizes smart contracts to be a unique identifiable proxy account used by humans, groups, organizations, objects and machine.
The method implementation allows ERC-725 identities to be treated as valid DIDs.
npm install @xiawpohr/erc725-did-method
const Web3 = require('web3')
const ERC725DID = require('erc725-did-method')
const web3 = new Web3('http://127.0.0.1:8545')
const erc725did = new ERC725DID({ web3 })
const options = {
from: '0x202fB73194756C58B7beD0746DcF570FA6e3B040',
gas: 3000000
}
const identity = await erc725did.register(options)
const did = await identity.getDid()
const identity = await erc725did.connect('did:erc725:202fB73194756C58B7beD0746DcF570FA6e3B040')
const doc = await identity.resolve()
const key = web3.utils.keccak256('0x202fB73194756C58B7beD0746DcF570FA6e3B040')
const purpose = 2
const type = 1
const event = await identity.addKey(key, purpose, type)
const event = await identity.removeKey(key, purpose)
await identity.revoke()
To see spec, read this.