Identity
Find Identity
💡
secret-keyrequired
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-keyrequired
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-keyrequired
Updating secondary addresses from previous identity
💡 if
default.addressis being updated from APTOS to some chain, you must sendextraDataalong with identity in format mentioned below,extraDatawill contain previouspublicKeywhich will be used to verifypreviousSignaturesigned by previousdefault.address
{
...identity,
"extraData": {
"publicKey": "0x...."
}
}💡 Above is only applicable if
default.chainis 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"
}
}