DID
iOS Decentralized Identity APIs
1. Check if an Address has a SendingNetwork DID
Input Parameters:
address
NSString
wallet address
true
Output Parameters:
MXDIDListResponse
array
NSString
list of DIDs
False
2. Log into a DID or Register an Address
If the returned array is empty, log in using the wallet address; otherwise, use the first element of the array as the 'did' parameter.
Input Parameters:
address
NSString
wallet address
false
did
NSString
user DID
false
Output Parameters:
DID
NSString
user DID (existing or newly created)
true
message
NSString
message to be signed
true
updated
NSString
update time
true
random_server
NSString
random number generated by the DID node
true
3. Sign the Message Returned
Input Parameters: parameter
type
NSString
Login type (e.g., m.login.did.identity
)
true
updated
NSString
update time returned by the pre_login
true
identifier
IdentifierModel
login information
true
device_id
NSString
device id, not needed for a new device
false
random_server
NSString
returned by postPreLoginDID
true
IdentifierModel
Type:
did
NSString
user DID
token
NSString
Token used to sign the message returned by pre_login
Output Parameters:
MXDIDLoginResponse
access_token
NSString
access token
true
user_id
NSString
user ID
true
device_id
NSString
device id
true
The login process and APIs described below are deprecated. Please avoid using them.
(Deprecated) DID login process:
Get DID list. If the list is empty, register a decentralized identity. Otherwise, call
pre_login
in step 4 to log in to an existing DID.Create a DID document with the current wallet address by calling the
DIDCreate
method.Sign the message returned in step 2 and call the
DIDSave
method.Call
pre_login
to get the message to be signed.Sign the message returned in step 4 and use the signature to log in to DID with
postLoginDID
method.
(Deprecated) Get DID list
Parameters:
address
string
Wallet address
true
Returns:
response
string array
User DID list
true
(Deprecated) Get DID information
Parameters:
DID
string
DID string from the getDIDInfo(address)
true
Returns:
controllers
Json
controller information
true
current_public_key
string
current device's public key
true
public_keys
Json
public key information
true
controllers
and public_keys
type:
type
string
EcdsaSecp256k1RecoveryMethod2020/``Ed25519VerificationKey2018
value
string
wallet address or public key
key_id
string
public key id
(Deprecated) Create DID
Parameters:
address
string
wallet address with blockchain information like eip155:1
true
Returns:
DID
string
user DID (existing or newly created)
true
message
string
message to be signed
true
updated
string
update time
true
(Deprecated) Save DID information
Parameters:
DID
string
DID string
true
Parameters:
signature
string
sign the message with web3.eth.personal.sign method
true
operation
string
create, link, unlink, link_key, unlink_key
true
ids
string array
the DID URL of unlink, unlink_key; unnecessary in create, link, link_publick operation
false
address
string
wallet address (with blockchain-specific prefix, e.g., eip155:1 ) in link, create operation
true
updated
string
updated time returned by postCreateDID(address)
true
Message Prefix
create
string
Create an account\n
link
string
Add new address\n
link_key
string
Login with this account\n
unlink/unlin_key
string
Unlink this address\n
burn
string
Burn this account\n
(Deprecated) Update DID
Parameters:
DID
string
DID string
true
POST Body
ids
string array
Wallet address ID that needs to be unbound
false
address
string
Wallet address that needs to be added. The address needs to be prefixed by blockchain specific strings like did:pkh:eip155:1
false
operation
string
link, unlink, link_key, unlink_key
true
Returns:
did
string
User DID (existing or newly created)
true
message
string
Message to be signed
true
updated
string
Update time
true
(Deprecated) DID Pre-login
Parameters:
DID
string
DID string
true
Returns:
DID
string
User DID (existing or newly created)
true
message
string
Message to be signed
true
updated
string
Update time
true
(Deprecated) Log in to DID
Parameters:
type
string
type of login (the type of the above example is m.login.did.identity
)
true
updated
string
updated time returned by the pre_login
method
true
identifier
json
login information
true
device_id
string
device id, not needed for new device
false
identifier type:
DID
string
User DID
token
string
Sign the message
returned by pre_login
method and perform base16
encoding. The signature method is etherum.Sign(accounts.TextHash(message), privateKey) or personal_sign from Metamask.
Returns:
access_token
string
access token
true
user_id
string
user id
true
device_id
string
device id
true
Last updated