4. Link an address to the identity

Multiple blockchain addresses can be linked to an identity controlled by an IdentityWallet instance. Right now two types of ethereum addresses are supported: EOAs (externally owned accounts) and EIP1271 contracts. Support for other types and blockchains can be easily added by contributing to the 3id-blockchain-utils module.

To link an address simply use the linkAddress method as shown in the example below. The ethProvider needs to be able to sign a message using personal_sign for the given address.

const ethAddress = '0xabc...'
const ethProvider = // an ethereum json-rpc provider
await idWallet.linkAddress(ethAddress, ethProvider)