Self network is formed of different entities with the ability to interact between them.
We name these entities identities and they own a self_id, an array of device ids and an array of public keys.
An identity can only communicate with another identity if IdentityA is a connection of IdentityB. If this connection is in place IdentityA will be able to request the IdentityB properties (device_ids and public keys) to interact with it.
At the moment identities can be divided into users and apps.
Getting the public keys
Every single identity on the Self network has at least one public key assigned to it. Lets see how you can get the public keys related to a Self user.
@user = @client.identity.public_key "1112223334", "1"
identity, _ := client.IdentityService().GetPublicKey("1112223334", "1")
let key = await client.identity().publicKey("1112223334", "1")
Same as with public keys each identity has at least one device.
@devices = @client.identity.devices "1112223334"
devices _ := client.IdentityService().GetDevices("1112223334")
let devices = await client.identity().devices("1112223334")