iome logo
Documentation
API Documentation
Before driving into API details, it is recommended to understand the solution components of IOMe.
IOMe delivers secure context-based interactions via
  • Digital Me, a self-soverign Identity manager, which manages user digital information by categorizing them into multiple dimensions like `personal`, `social`, `health`, `financial` and `security` etc and thereby exchanging only relevant information.
  • Digital Avatars, a behaviour-based role manager, which manages different digital behaviours/preferences of the user depending on the situation with complete user ownership and comprimising on privacy and security.
  • IGC, InterGalactic Connect, an inter-operability network manager, to enable users to interconnect and interoperate between blockchains, web2 and web3 networks to support stateless and stateful interoperability.
Overview
Base URL
https://api.moinet.io/iome/v0
Authentication
Pass below headers along with every request
Authorization: 'EC_S256-B58 <dat-token>'
Fetching attributes under Personal dimension.
GET: /user/<userID>/digitalme?dimension=personal&attributes=email, phone
Response:

    {
        "code": 200,
        "requestID": "cecce8c0-dde8-11ed-a037-234d4dbf73f6",
        "clientMessage": "DigitalMe details fetched successfully",
        "data": {
            "userID": "0xA007d9E66a4fD262946a81D3C4a1b1eD242DA8c1",
            "dimension": "personal",
            "attributes": ["email","phone"]
            "result": {
                "givenAttributes": {
                    "email/phone": {
                        "scope": "private",
                        "verified": "true/false",
                        "value": "<encrypted_digest>"
                    }
                }
            }
        }
    }
                    
Fetch KYC Status
GET: /user/<userID>/digitalme?dimension=social&attributes=kyc
Response:

    {
        "code": 200,
        "requestID": "cecce8c0-dde8-11ed-a037-234d4dbf73f6",
        "clientMessage": "DigitalMe details fetched successfully",
        "data": {
            "userID": "0xA007d9E66a4fD262946a81D3C4a1b1eD242DA8c1",
            "dimension": "personal",
            "attributes": ["email","phone"]
            "result": {
                "givenAttributes": {
                    "kyc": {
                        "scope": "private",
                        "verified": "true/false",
                        "value": "<encrypted_digest>"
                    }
                }
            }
        }
    }
                    
Fetch social account's verification statuses
GET: /user/<userID>/digitalme?social=social&attributes=twitter,telegram,discord
Response:

    {
        "code": 200,
        "requestID": "cecce8c0-dde8-11ed-a037-234d4dbf73f6",
        "clientMessage": "DigitalMe details fetched successfully",
        "data": {
            "userID": "0xA007d9E66a4fD262946a81D3C4a1b1eD242DA8c1",
            "dimension": "personal",
            "attributes": ["email","phone"]
            "result": {
                "givenAttributes": {
                    "twitter/telegram/discord": {
                        "scope": "private",
                        "verified": "true/false",
                        "value": "<encrypted_digest>"
                    }
                }
            }
        }
    }
                    
Fetch user digital footprint/activity
GET: /user/<userID>/interactions?offset=0&limit=100
Response:

    {
        "code": 200,
        "requestID": "40282b50-ddef-11ed-b217-0b8c143724af",
        "clientMessage": "User interactions fetched successfully",
        "data": [
            {
                "id": "0xe6201b978f85857ebb24da9d6cb710b3992f9adef179e08b81a066cfbbad4339",
                "namespace": "IOME",
                "attr": "-",
                "action": "Joined",
                "actionBy": "Self",
                "instant": "1681673071"
            },
            {
                "id": "0x61df768bf0ec2fe9b7baa2eab6766bdbeb68bf9c50897be2556ef950ec0eb539",
                "namespace": "Digital Me",
                "attr": "KYC",
                "action": "Verified",
                "actionBy": "SUMSUB",
                "instant": "1681821873"
            }
    
        ]
    }
                    
Get app details from given appID
For this request, we need to pass DAT in Authorization headers, that is generated using APP_SECRET.
GET: /developer/<devID>/apps/<appID>
Response:

    {
        "code": 200,
        "requestID": "e2e7a040-3205-11ee-b131-9b90072fe94e",
        "clientMessage": "Fetched developer details successfully",
        "data": {
            "Version": 1,
            "AppID": "0x5aF76cB92344D737CCb85e4fcc98FF1eDDCF8004",
            "Owner": "0x5b9f57d10be27eD67b101F7eB255e7d3686a6d0d",
            "DataPermissions": [
                {
                    "dimension": "personal",
                    "attribute": "email"
                }
            ],
            "OnboardingCriteria": [
                {
                    "attribute": {
                        "dimension": "personal",
                        "attributeName": "email"
                    },
                    "shouldBeVerified": true
                }
            ],
            "Meta": {
                "AppName": "test-app",
                "EncodedAppName": "34n7uczYXuV8v8hqW",
                "Description": "description about the app",
                "Logo": "",
                "Category": "",
                "Tags": [],
                "Website": "",
                "Legal": {
                    "termsOfService": "",
                    "privacyPolicy": ""
                },
                "References": []
            },
            "IgcPath": [
                6174,
                836,
                0,
                0
            ]
        }
    }
                    
Fetch the user system details
GET: /user/<userID>/settings?attributes=username, participantID, version
Response:

    {
        "code": 200,
        "requestID": "6d75e6e0-3206-11ee-b131-9b90072fe94e",
        "clientMessage": "Fetched settings of the user: 0x9781Be62AcA6baB260B49ADbd06f7979847f5dc0 successfully",
        "data": {
            "userID": "0x9781Be62AcA6baB260B49ADbd06f7979847f5dc0",
            "settings": {
                "participantID":"the actual participant ID",
                "username": "test-username",
                "version":0.6.0
            }   
        }
    }
            
Fetch user Authentication proof
GET: /user/auth/<userID>
Response:

    {
        "code": 200,
        "requestID": "43e747c0-3205-11ee-b131-9b90072fe94e",
        "clientMessage": "Authentication data/proof added successfully",
        "data": {
            "version": 0,
            "digest": {
                "pub": {
                    "curve": {
                        "id": "secp256k1"
                    },
                    "point": "A5ENFu3/HuNKlQ8Lt0DMkq+UHZ608CzscGbcDLRjwE8h"
                },
                "keyfn": {
                    "salt": "YmkmDxuBzdPDTN1wLugnVnw4NhT8ZFVx0CUAsW+JoV0=",
                    "id": "scrypt",
                    "normalization-form": "NFKC",
                    "n": 16384,
                    "r": 8,
                    "p": 1,
                    "key-length": 32
                }
            }
        }
    }
                    
Fetch user profile image
GET: /user/<userID>/profileimage
Fetch user avatars & individual avatar
GET: /user/<userID>/avatars and /user/<userID>/avatars/:avatarName
Response:

    {
        "code": 200,
        "requestID": "006ed480-3206-11ee-b131-9b90072fe94e",
        "clientMessage": "Fetched all accounts of 0x9781Be62AcA6baB260B49ADbd06f7979847f5dc0 successfully",
        "data": {
            "userID": "0x9781Be62AcA6baB260B49ADbd06f7979847f5dc0",
            "avatars": [
                {
                    "name": "weqfqw",
                    "description": "qewfqef",
                    "elements": [
                        {
                            "dimension": "personal",
                            "attributes": [
                                "phone"
                            ]
                        }
                    ],
                    "avatarImage": "DEFAULT_AVATAR_2",
                    "version": "new"
                }
            ]
        }
    }
                    
Fetch userID or Assymmetric publicKey from username
GET: /user/usernames/:encodedUserName
Response:

    {
        "code": 200,
        "requestID": "ec9d0e10-35e6-11ee-8235-f16d628a973f",
        "clientMessage": "UserID aganist username: '35q8p428Hwiu5cqXq' fetched successfully",
        "data": {
            "encodedUsername": "35q8p428Hwiu5cqXq",
            "userID": "0x21c9fF449fF85627B55dF2Fbc6eb7f03b9B7B27b"
        }
    }
                    
Fetch developer details
GET: /developer/<devID>
Response:

    {
        "code": 200,
        "requestID": "461412d0-3205-11ee-b131-9b90072fe94e",
        "clientMessage": "Fetched developer details successfully",
        "data": {
            "DeveloperId": "0x5b9f57d10be27eD67b101F7eB255e7d3686a6d0d",
            "Subscription": {...},
            "Contact": {...}
        }
    }
                    
Get all apps under developer
GET: /developer/<devID>/apps
Response:

    {
        "code": 200,
        "requestID": "46701580-3205-11ee-b131-9b90072fe94e",
        "clientMessage": "Fetched developer details successfully",
        "data": {
            "devID": "0x5b9f57d10be27eD67b101F7eB255e7d3686a6d0d",
            "Apps": [
                {
                    "AppName": "google",
                    "EncodedAppName": "34n7uczYXuV8v8hqW",
                    "AppID": "0x5aF76cB92344D737CCb85e4fcc98FF1eDDCF8004",
                    "Desc": "goole app",
                    "LogoURL": "https://s3.amazonaws.com/images.seroundtable.com/google-history-1537962383.jpg"
                }
            ]
        }
    }