Identity
Find Identity
💡
secret-key
required
Route - /v1/identity
Method - GET
URL Query - ?id=satyam@metamask
or ?signedMessage=SIGNATURE
Response -
{
"status": 200,
"timestamp": "",
"data": {
"id": "sax@metamask",
"identifier": "sax",
"provider": {...provider object},
"default": {
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": {...chain object},
"isContract": false
},
"secondary": [
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": {...chain object},
"isContract": false
},
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": {...chain object},
"isContract": false
}
],
"dataSourceTx": {
"txId": "ARWEAVE_IPFS_CID",
"txURL": "ARWEAVE_IPFS_URL"
},
"currentSignature": "SIGNATURE"
}
}
Generate Message
💡 Sign this message with the default address so that smart contract can validate
Route - /v1/identity/generate-message
Method - POST
Request body -
{
"identifier": "satyam",
"provider": "metamask",
"default": {
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": 3,
"isContract": false
},
"secondary": [
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": 1,
"isContract": false
},
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": 2,
"isContract": false
}
],
}
Response -
{
"status": 200,
"timestamp": "",
"data": {
"message": "Creating sax@fetcch onbehalf of user evm:0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c\n\n{\"id\":\"sax@fetcch\",\"identifier\":\"sax\",\"provider\":{\"id\":\"fetcch\",\"delimiter\":\"@\"},\"default\":{\"address\":\"0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c\",\"chain\":{\"id\":3,\"name\":\"Binance Smart Chain Mainnet\",\"chainId\":56,\"type\":\"EVM\"},\"isContract\":false},\"others\":[],\"nonce\":1}\n\nProvider: fetcch\nChain ID: 56\nNonce: 1",
"nonce": 1,
"identity": {
...identity object
},
"providerSignature": "0x020b48ac334f0af6f51205f2efb437c800ccffb7f59f55445dcbafdee0068420"
}
}
Create Identity
💡
secret-key
required
If using APTOS as default chain, send public key of the user instead of address, public key is needed to verify signed messages, though we convert it to address and then store, so further interactions can be done using addresses and not public keys
Above point valid only for default chain
Route - /v1/identity/
Method - POST
Request Body -
{
"identifier": "sax",
"provider": "metamask",
"default": {
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": 3,
"isContract": false
},
"secondary": [
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": 1,
"isContract": false
},
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": 2,
"isContract": false
}
],
"currentSignature": "SIGNATURE"
}
Response -
{
"status": 200,
"timestamp": "",
"data": {
"id": "sax@metamask",
"identifier": "sax",
"provider": {...provider object},
"default": {
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": {...chain object},
"isContract": false
},
"secondary": [
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": {...chain object},
"isContract": false
},
{
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": {...chain object},
"isContract": false
}
],
"dataSourceTx": {
"txId": "ARWEAVE_IPFS_CID",
"txURL": "ARWEAVE_IPFS_URL"
},
"currentSignature": "SIGNATURE"
}
}
Update Identity
💡
secret-key
required
Updating secondary addresses from previous identity
💡 if
default.address
is being updated from APTOS to some chain, you must sendextraData
along with identity in format mentioned below,extraData
will contain previouspublicKey
which will be used to verifypreviousSignature
signed by previousdefault.address
{
...identity,
"extraData": {
"publicKey": "0x...."
}
}
💡 Above is only applicable if
default.chain
is updated from APTOS to some chain (incl APTOS)
Route - /v1/identity/
Method - PATCH
Request Body -
{
"identifier": "sax",
"provider": "metamask",
"default": {
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": 3,
"isContract": false
},
"secondary": [],
"currentSignature": "SIGNATURE"
}
Response -
{
"status": 200,
"timestamp": "",
"data": {
"id": "sax@metamask",
"identifier": "sax",
"provider": {...provider object},
"default": {
"address": "0x9aDF83d1bB317DA878C8677E5d108CecFcFe290c",
"chain": {...chain object},
"isContract": false
},
"secondary": [],
"currentSignature": "SIGNATURE"
}
}