Lossless Aegis GraphQL API reference
In order to get started on using the API, you would need to generate an API key using Lossless Aegis. https://aegis.lossless.io/ (API Keys) section.
Contact
Lossless
API Endpoints
https://aegis-api.lossless.io/graphql
Headers
# Auth header
x-api-key: <YOUR_TOKEN_HERE>
Queries
apiKeys
Description
Get organisation API keys
Response
Returns
[OrganisationApiKeyEntity!]!
Example
Query
query ApiKeys {
apiKeys {
id
apiKeyName
apiKey
organisationId
createdAt
}
}
Response
{
"data": {
"apiKeys": [
{
"id": "xyz789",
"apiKeyName": "abc123",
"apiKey": "xyz789",
"organisationId": "xyz789",
"createdAt": "2007-12-03T10:15:30Z"
}
]
}
}
authenticate
Description
Authenticate user
Response
Returns a
UserEntity!
Example
Query
query Authenticate(
$email: String!,
$password: String!,
$mfaCode: String,
$recoveryCode: String
) {
authenticate(
email: $email,
password: $password,
mfaCode: $mfaCode,
recoveryCode: $recoveryCode
) {
id
socialId
email
verified
lastOrganizationId
mfaSecret
createdAt
updatedAt
emailPreferences {
userId
generalMarketingEmailsEnabled
organisationEmailsEnabled
}
organisation {
id
name
ownerUserId
updatedAt
createdAt
organisationMember {
...OrganisationMemberEntityFragment
}
protectedAddresses {
...ProtectedAddressEntityFragment
}
owner {
...UserEntityFragment
}
apiKeys {
...OrganisationApiKeyEntityFragment
}
notificationSettings {
...NotificationSettingsEntityFragment
}
organisationInvite {
...OrganisationInviteEntityFragment
}
organisationSubscription {
...OrganisationSubscriptionEntityFragment
}
}
organisationMember {
userId
organisationId
role
updatedAt
createdAt
user {
...UserEntityFragment
}
organisation {
...OrganisationEntityFragment
}
}
}
}
Variables
{
"email": "xyz789",
"password": "xyz789",
"mfaCode": "xyz789",
"recoveryCode": "abc123"
}
Response
{
"data": {
"authenticate": {
"id": "abc123",
"socialId": "xyz789",
"email": "abc123",
"verified": false,
"lastOrganizationId": "abc123",
"mfaSecret": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z",
"emailPreferences": UserEmailPreferences,
"organisation": [OrganisationEntity],
"organisationMember": [OrganisationMemberEntity]
}
}
}
authenticateGoogle
Description
Authenticate user with Google Auth
Response
Returns a
UserEntity!
Example
Query
query AuthenticateGoogle(
$googleAuthToken: String!,
$mfaCode: String,
$recoveryCode: String
) {
authenticateGoogle(
googleAuthToken: $googleAuthToken,
mfaCode: $mfaCode,
recoveryCode: $recoveryCode
) {
id
socialId
email
verified
lastOrganizationId
mfaSecret
createdAt
updatedAt
emailPreferences {
userId
generalMarketingEmailsEnabled
organisationEmailsEnabled
}
organisation {
id
name
ownerUserId
updatedAt
createdAt
organisationMember {
...OrganisationMemberEntityFragment
}
protectedAddresses {
...ProtectedAddressEntityFragment
}
owner {
...UserEntityFragment
}
apiKeys {
...OrganisationApiKeyEntityFragment
}
notificationSettings {
...NotificationSettingsEntityFragment
}
organisationInvite {
...OrganisationInviteEntityFragment
}
organisationSubscription {
...OrganisationSubscriptionEntityFragment
}
}
organisationMember {
userId
organisationId
role
updatedAt
createdAt
user {
...UserEntityFragment
}
organisation {
...OrganisationEntityFragment
}
}
}
}
Variables
{
"googleAuthToken": "abc123",
"mfaCode": "xyz789",
"recoveryCode": "xyz789"
}
Response
{
"data": {
"authenticateGoogle": {
"id": "xyz789",
"socialId": "abc123",
"email": "abc123",
"verified": true,
"lastOrganizationId": "xyz789",
"mfaSecret": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z",
"emailPreferences": UserEmailPreferences,
"organisation": [OrganisationEntity],
"organisationMember": [OrganisationMemberEntity]
}
}
}
contractAnalysis
Description
Retrieves watchlist addresses analysis data
Response
Returns a
ContractAnalysisEntity
Arguments
Name | Description |
---|---|
protectedAddressId -
String!
|
Watchlist address ID |
Example
Query
query ContractAnalysis($protectedAddressId: String!) {
contractAnalysis(protectedAddressId: $protectedAddressId) {
protectedAddressId
reviewed
analysisData {
general {
...ContractAnalysisGeneralEntityFragment
}
recommendedEvents {
...ContractAnalysisRecommendedEventsEntityFragment
}
integratedContracts {
...ContractAnalysisIntegratedContractsEntityFragment
}
privellegedAddresses {
...ContractAnalysisPrivellegedAddressEntityFragment
}
modifierFunctions {
...ContractAnalysisFnModifiersEntityFragment
}
}
}
}
Variables
{"protectedAddressId": "abc123"}
Response
{
"data": {
"contractAnalysis": {
"protectedAddressId": "xyz789",
"reviewed": false,
"analysisData": ContractAnalysisDataEntity
}
}
}
getActiveTier
Description
Get active tier
Response
Returns an
ActiveTierResponse!
Example
Query
query GetActiveTier {
getActiveTier {
tier
tierBillingType
currentPeriodStart
currentPeriodEnd
subscriptionLimits {
maxTeamMembers
notificationsEnabled
maxPhoneNotifications
maxNotificationChannels
maxProtectedAddresses
maxApiKeys
teamsMaxLimit
onChainSecurity
offChainSecurity
mempoolSecurity
smsEnabled
customEventsAlertsEnabled
smsLimit
currentSmsUsage
}
paymentMethodDetails {
billingEmail
last4
expMonth
expYear
cardBrand
}
paymentType
billingEmail
}
}
Response
{
"data": {
"getActiveTier": {
"tier": "FREE",
"tierBillingType": "MONTHLY",
"currentPeriodStart": 987.65,
"currentPeriodEnd": 987.65,
"subscriptionLimits": SubscriptionLimits,
"paymentMethodDetails": PaymentMethodDetailsResponse,
"paymentType": "abc123",
"billingEmail": "xyz789"
}
}
}
getNotificationSettings
Description
Retrieve all organisation notification channel settings which are associated to the Team. This is a read-only endpoint.
Response
Returns
[NotificationSettingsEntity!]!
Example
Query
query GetNotificationSettings {
getNotificationSettings {
id
organisationId
type
name
typeData {
webhookUrl
telegramChatId
telegramBotToken
emailList
phoneList
}
updatedAt
createdAt
}
}
Response
{
"data": {
"getNotificationSettings": [
{
"id": "abc123",
"organisationId": "xyz789",
"type": "abc123",
"name": "abc123",
"typeData": NotificationSettingsMetadata,
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z"
}
]
}
}
getProtectedAddressCustomEventsNotificationSettings
Description
Retrieve all watchlist address custom events alert settings. This query will retrieve all notification channel which are associated to the watchlist address. The retrieved IDs will be used to either update, or remove the alerts associated to the address.
Response
Returns a
ProtectedAddressCustomEventsNotificationSettingsEntity
Arguments
Name | Description |
---|---|
protectedAddressId -
String!
|
Watchlist address ID |
Example
Query
query GetProtectedAddressCustomEventsNotificationSettings($protectedAddressId: String!) {
getProtectedAddressCustomEventsNotificationSettings(protectedAddressId: $protectedAddressId) {
id
organisationId
protectedAddressId
isPaused
notificationSettings {
id
organisationId
type
name
typeData {
...NotificationSettingsMetadataFragment
}
updatedAt
createdAt
}
updatedAt
createdAt
}
}
Variables
{"protectedAddressId": "xyz789"}
Response
{
"data": {
"getProtectedAddressCustomEventsNotificationSettings": {
"id": "xyz789",
"organisationId": "abc123",
"protectedAddressId": "abc123",
"isPaused": true,
"notificationSettings": [
NotificationSettingsEntity
],
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z"
}
}
}
getProtectedAddressNotificationSettings
Description
Retrieve all watchlist address alert settings. This query will retrieve all notification channel which are associated to the watchlist address. The retrieved IDs will be used to either update, or remove the alerts associated to the address.
Response
Arguments
Name | Description |
---|---|
protectedAddressId -
String!
|
Watchlist address ID |
Example
Query
query GetProtectedAddressNotificationSettings($protectedAddressId: String!) {
getProtectedAddressNotificationSettings(protectedAddressId: $protectedAddressId) {
id
organisationId
notificationSettingsId
protectedAddressId
riskScoreThreshold
riskTypesToNotify
isPaused
notificationSettings {
id
organisationId
type
name
typeData {
...NotificationSettingsMetadataFragment
}
updatedAt
createdAt
}
protectedAddress {
id
name
address
tvlEnabled
chain
createdAt
organisationId
protectedAddressTypes {
...ProtectedAddressTypeEntityFragment
}
protectedAddressAbi {
...ProtectedAddressAbiEntityFragment
}
lastBackTestingReportProcess {
...BackTestingReportProcessEntityFragment
}
addressNotificationSettings {
...ProtectedAddressNotificationSettingsEntityFragment
}
protectedAddressImplementation {
...ProtectedAddressImplementationEntityFragment
}
addressAnalysis {
...ContractAnalysisEntityFragment
}
}
updatedAt
createdAt
}
}
Variables
{"protectedAddressId": "abc123"}
Response
{
"data": {
"getProtectedAddressNotificationSettings": [
{
"id": "xyz789",
"organisationId": "abc123",
"notificationSettingsId": "xyz789",
"protectedAddressId": "xyz789",
"riskScoreThreshold": 987.65,
"riskTypesToNotify": ["TORNADO_TX"],
"isPaused": true,
"notificationSettings": NotificationSettingsEntity,
"protectedAddress": ProtectedAddressEntity,
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z"
}
]
}
}
getProtectedAddressTVLNotificationSettings
Description
Retrieve all watchlist address TVL alert settings by tokens. This query will retrieve all notification channel which are associated to the watchlist address. The retrieved IDs will be used to either update, or remove the alerts associated to the address.
Response
Returns
[TVLSettingsEntity!]
Arguments
Name | Description |
---|---|
protectedAddressId -
String!
|
Watchlist address ID |
Example
Query
query GetProtectedAddressTVLNotificationSettings($protectedAddressId: String!) {
getProtectedAddressTVLNotificationSettings(protectedAddressId: $protectedAddressId) {
id
organisationId
tokenId
thresholdPercentage
timePeriod
monitoredToken {
id
tokenName
tokenLogo
tokenDivisor
tokenSymbol
contractAddress
}
notificationSettings {
id
organisationId
type
name
typeData {
...NotificationSettingsMetadataFragment
}
updatedAt
createdAt
}
createdAt
}
}
Variables
{"protectedAddressId": "abc123"}
Response
{
"data": {
"getProtectedAddressTVLNotificationSettings": [
{
"id": "abc123",
"organisationId": "xyz789",
"tokenId": "xyz789",
"thresholdPercentage": 123,
"timePeriod": "abc123",
"monitoredToken": TokenLockedInContractEntity,
"notificationSettings": [
NotificationSettingsEntity
],
"createdAt": "2007-12-03T10:15:30Z"
}
]
}
}
getSubscriptionTiers
Description
Get a list of available subscriptions
Response
Returns
[SubscriptionTierEntity!]!
Example
Query
query GetSubscriptionTiers {
getSubscriptionTiers {
id
tier
tierBillingType
}
}
Response
{
"data": {
"getSubscriptionTiers": [
{
"id": "xyz789",
"tier": "FREE",
"tierBillingType": "MONTHLY"
}
]
}
}
protectedAddress
Description
Using this query you can obtain a single watchlist address details (settings, ABI, alert settings, etc.)
Response
Returns a
ProtectedAddressEntity!
Example
Query
query ProtectedAddress(
$address: String!,
$chain: String!
) {
protectedAddress(
address: $address,
chain: $chain
) {
id
name
address
tvlEnabled
chain
createdAt
organisationId
protectedAddressTypes {
id
protectedAddressId
addressType
}
protectedAddressAbi {
id
abi
protectedAddressId
}
lastBackTestingReportProcess {
id
authorId
organisationId
protectedAddressId
status
createdAt
finishedAt
startDate
approximateFinishDate
endDate
protectedAddress {
...ProtectedAddressEntityFragment
}
organisation {
...OrganisationEntityFragment
}
author {
...UserEntityFragment
}
}
addressNotificationSettings {
id
organisationId
notificationSettingsId
protectedAddressId
riskScoreThreshold
riskTypesToNotify
isPaused
notificationSettings {
...NotificationSettingsEntityFragment
}
protectedAddress {
...ProtectedAddressEntityFragment
}
updatedAt
createdAt
}
protectedAddressImplementation {
protectedAddressId
implementationAddress
}
addressAnalysis {
protectedAddressId
reviewed
analysisData {
...ContractAnalysisDataEntityFragment
}
}
}
}
Variables
{
"address": "abc123",
"chain": "xyz789"
}
Response
{
"data": {
"protectedAddress": {
"id": "abc123",
"name": "abc123",
"address": "abc123",
"tvlEnabled": false,
"chain": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"organisationId": "abc123",
"protectedAddressTypes": [
ProtectedAddressTypeEntity
],
"protectedAddressAbi": ProtectedAddressAbiEntity,
"lastBackTestingReportProcess": BackTestingReportProcessEntity,
"addressNotificationSettings": [
ProtectedAddressNotificationSettingsEntity
],
"protectedAddressImplementation": ProtectedAddressImplementationEntity,
"addressAnalysis": ContractAnalysisEntity
}
}
}
protectedAddressEvents
Description
Using this query you can obtain protected address events, if it is a contract
Response
Returns
[ProtectedAddressTopicType!]
Arguments
Name | Description |
---|---|
protectedAddressId -
String!
|
Watchlist address ID |
Example
Query
query ProtectedAddressEvents($protectedAddressId: String!) {
protectedAddressEvents(protectedAddressId: $protectedAddressId) {
id
protectedAddressId
monitored
topic
topicId
}
}
Variables
{"protectedAddressId": "abc123"}
Response
{
"data": {
"protectedAddressEvents": [
{
"id": "xyz789",
"protectedAddressId": "xyz789",
"monitored": false,
"topic": "xyz789",
"topicId": "xyz789"
}
]
}
}
protectedAddressMonitoredTokens
Description
Using this query you can retrieve all of the tokens locked in this watchlist address
Response
Returns
[TokenLockedInContractEntity!]!
Arguments
Name | Description |
---|---|
protectedAddressId -
String!
|
Watchlist address ID |
Example
Query
query ProtectedAddressMonitoredTokens($protectedAddressId: String!) {
protectedAddressMonitoredTokens(protectedAddressId: $protectedAddressId) {
id
tokenName
tokenLogo
tokenDivisor
tokenSymbol
contractAddress
}
}
Variables
{"protectedAddressId": "xyz789"}
Response
{
"data": {
"protectedAddressMonitoredTokens": [
{
"id": "abc123",
"tokenName": "xyz789",
"tokenLogo": "abc123",
"tokenDivisor": 987.65,
"tokenSymbol": "xyz789",
"contractAddress": "abc123"
}
]
}
}
protectedAddressSuspiciousTransactionCount
Description
Get the number of suspicious transactions by watchlist address.
Response
Returns an
Int!
Example
Query
query ProtectedAddressSuspiciousTransactionCount(
$protectedAddress: String!,
$chain: String!
) {
protectedAddressSuspiciousTransactionCount(
protectedAddress: $protectedAddress,
chain: $chain
)
}
Variables
{
"protectedAddress": "xyz789",
"chain": "xyz789"
}
Response
{"data": {"protectedAddressSuspiciousTransactionCount": 987}}
protectedAddressSuspiciousTransactions
Description
Get all suspicious transactions by organisation, and its filters
Response
Returns
[SuspiciousTransactionEntity!]!
Example
Query
query ProtectedAddressSuspiciousTransactions(
$skip: Float!,
$take: Float!,
$orderBy: String,
$protectedAddress: String!,
$chain: String!
) {
protectedAddressSuspiciousTransactions(
skip: $skip,
take: $take,
orderBy: $orderBy,
protectedAddress: $protectedAddress,
chain: $chain
) {
txHash
to
createdAt
blockNumber
chain
from
risks
riskScore
suspiciousAddress {
address
riskScore
createdAt
}
protectedAddresses {
id
name
address
tvlEnabled
chain
createdAt
organisationId
protectedAddressTypes {
...ProtectedAddressTypeEntityFragment
}
protectedAddressAbi {
...ProtectedAddressAbiEntityFragment
}
lastBackTestingReportProcess {
...BackTestingReportProcessEntityFragment
}
addressNotificationSettings {
...ProtectedAddressNotificationSettingsEntityFragment
}
protectedAddressImplementation {
...ProtectedAddressImplementationEntityFragment
}
addressAnalysis {
...ContractAnalysisEntityFragment
}
}
}
}
Variables
{
"skip": 987.65,
"take": 987.65,
"orderBy": "xyz789",
"protectedAddress": "abc123",
"chain": "xyz789"
}
Response
{
"data": {
"protectedAddressSuspiciousTransactions": [
{
"txHash": "abc123",
"to": "xyz789",
"createdAt": "xyz789",
"blockNumber": 123.45,
"chain": "abc123",
"from": "xyz789",
"risks": ["xyz789"],
"riskScore": 123,
"suspiciousAddress": [SuspiciousAddressEntity],
"protectedAddresses": [ProtectedAddressEntity]
}
]
}
}
protectedAddressTokens
Description
Using this query you can retrieve all of the tokens locked in this watchlist address
Response
Returns
[TokenLockedInContractEntity!]!
Arguments
Name | Description |
---|---|
protectedAddressId -
String!
|
Watchlist address ID |
Example
Query
query ProtectedAddressTokens($protectedAddressId: String!) {
protectedAddressTokens(protectedAddressId: $protectedAddressId) {
id
tokenName
tokenLogo
tokenDivisor
tokenSymbol
contractAddress
}
}
Variables
{"protectedAddressId": "abc123"}
Response
{
"data": {
"protectedAddressTokens": [
{
"id": "abc123",
"tokenName": "xyz789",
"tokenLogo": "xyz789",
"tokenDivisor": 987.65,
"tokenSymbol": "abc123",
"contractAddress": "xyz789"
}
]
}
}
protectedAddresses
Description
Using the 'protectedAddresses' query you can retrieve all of the watchlist addresses, which are monitored.
Response
Returns
[ProtectedAddressEntity!]!
Example
Query
query ProtectedAddresses(
$skip: Float!,
$take: Float!,
$orderBy: String
) {
protectedAddresses(
skip: $skip,
take: $take,
orderBy: $orderBy
) {
id
name
address
tvlEnabled
chain
createdAt
organisationId
protectedAddressTypes {
id
protectedAddressId
addressType
}
protectedAddressAbi {
id
abi
protectedAddressId
}
lastBackTestingReportProcess {
id
authorId
organisationId
protectedAddressId
status
createdAt
finishedAt
startDate
approximateFinishDate
endDate
protectedAddress {
...ProtectedAddressEntityFragment
}
organisation {
...OrganisationEntityFragment
}
author {
...UserEntityFragment
}
}
addressNotificationSettings {
id
organisationId
notificationSettingsId
protectedAddressId
riskScoreThreshold
riskTypesToNotify
isPaused
notificationSettings {
...NotificationSettingsEntityFragment
}
protectedAddress {
...ProtectedAddressEntityFragment
}
updatedAt
createdAt
}
protectedAddressImplementation {
protectedAddressId
implementationAddress
}
addressAnalysis {
protectedAddressId
reviewed
analysisData {
...ContractAnalysisDataEntityFragment
}
}
}
}
Variables
{
"skip": 987.65,
"take": 123.45,
"orderBy": "xyz789"
}
Response
{
"data": {
"protectedAddresses": [
{
"id": "xyz789",
"name": "xyz789",
"address": "abc123",
"tvlEnabled": false,
"chain": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"organisationId": "xyz789",
"protectedAddressTypes": [
ProtectedAddressTypeEntity
],
"protectedAddressAbi": ProtectedAddressAbiEntity,
"lastBackTestingReportProcess": BackTestingReportProcessEntity,
"addressNotificationSettings": [
ProtectedAddressNotificationSettingsEntity
],
"protectedAddressImplementation": ProtectedAddressImplementationEntity,
"addressAnalysis": ContractAnalysisEntity
}
]
}
}
protectedAddressesCount
Description
Get the total number of watchlist addresses added.
Response
Returns an
Int!
Example
Query
query ProtectedAddressesCount {
protectedAddressesCount
}
Response
{"data": {"protectedAddressesCount": 123}}
refreshToken
Description
Request a refresh token, if the refresh token is valid and is not expired.
Response
Returns a
Boolean!
Example
Query
query RefreshToken {
refreshToken
}
Response
{"data": {"refreshToken": false}}
suspiciousTransactionCount
Description
Get the number of suspicious transactions by organisation, and its filters
Response
Returns an
Int!
Example
Query
query SuspiciousTransactionCount(
$protectedAddress: String,
$suspiciousAddressOrTxHash: String,
$chain: String
) {
suspiciousTransactionCount(
protectedAddress: $protectedAddress,
suspiciousAddressOrTxHash: $suspiciousAddressOrTxHash,
chain: $chain
)
}
Variables
{
"protectedAddress": "abc123",
"suspiciousAddressOrTxHash": "xyz789",
"chain": "xyz789"
}
Response
{"data": {"suspiciousTransactionCount": 987}}
suspiciousTransactions
Description
Get all suspicious transactions by organisation, and its filters
Response
Returns
[SuspiciousTransactionEntity!]!
Example
Query
query SuspiciousTransactions(
$skip: Float!,
$take: Float!,
$orderBy: String,
$protectedAddress: String,
$suspiciousAddressOrTxHash: String,
$chain: String
) {
suspiciousTransactions(
skip: $skip,
take: $take,
orderBy: $orderBy,
protectedAddress: $protectedAddress,
suspiciousAddressOrTxHash: $suspiciousAddressOrTxHash,
chain: $chain
) {
txHash
to
createdAt
blockNumber
chain
from
risks
riskScore
suspiciousAddress {
address
riskScore
createdAt
}
protectedAddresses {
id
name
address
tvlEnabled
chain
createdAt
organisationId
protectedAddressTypes {
...ProtectedAddressTypeEntityFragment
}
protectedAddressAbi {
...ProtectedAddressAbiEntityFragment
}
lastBackTestingReportProcess {
...BackTestingReportProcessEntityFragment
}
addressNotificationSettings {
...ProtectedAddressNotificationSettingsEntityFragment
}
protectedAddressImplementation {
...ProtectedAddressImplementationEntityFragment
}
addressAnalysis {
...ContractAnalysisEntityFragment
}
}
}
}
Variables
{
"skip": 123.45,
"take": 987.65,
"orderBy": "xyz789",
"protectedAddress": "abc123",
"suspiciousAddressOrTxHash": "xyz789",
"chain": "xyz789"
}
Response
{
"data": {
"suspiciousTransactions": [
{
"txHash": "abc123",
"to": "xyz789",
"createdAt": "xyz789",
"blockNumber": 123.45,
"chain": "xyz789",
"from": "abc123",
"risks": ["abc123"],
"riskScore": 987,
"suspiciousAddress": [SuspiciousAddressEntity],
"protectedAddresses": [ProtectedAddressEntity]
}
]
}
}
tokenBalances
Description
Using this query you can obtain token balance by date range
Response
Returns
[TokenBalanceEntity!]!
Example
Query
query TokenBalances(
$tokenId: String!,
$startDate: DateTime!,
$endDate: DateTime!,
$timePeriod: String!
) {
tokenBalances(
tokenId: $tokenId,
startDate: $startDate,
endDate: $endDate,
timePeriod: $timePeriod
) {
date
value
}
}
Variables
{
"tokenId": "abc123",
"startDate": "2007-12-03T10:15:30Z",
"endDate": "2007-12-03T10:15:30Z",
"timePeriod": "abc123"
}
Response
{
"data": {
"tokenBalances": [
{
"date": "2007-12-03T10:15:30Z",
"value": 987.65
}
]
}
}
user
Description
Return the curent logged in user details
Response
Returns a
UserDetailsEntity!
Example
Query
query User {
user {
id
socialId
email
verified
lastOrganizationId
mfaSecret
createdAt
updatedAt
emailPreferences {
userId
generalMarketingEmailsEnabled
organisationEmailsEnabled
}
organisation {
id
name
ownerUserId
updatedAt
createdAt
organisationMember {
...OrganisationMemberEntityFragment
}
protectedAddresses {
...ProtectedAddressEntityFragment
}
owner {
...UserEntityFragment
}
apiKeys {
...OrganisationApiKeyEntityFragment
}
notificationSettings {
...NotificationSettingsEntityFragment
}
organisationInvite {
...OrganisationInviteEntityFragment
}
organisationSubscription {
...OrganisationSubscriptionEntityFragment
}
}
organisationMember {
userId
organisationId
role
updatedAt
createdAt
user {
...UserEntityFragment
}
organisation {
...OrganisationEntityFragment
}
}
loggedInOrganisation {
userId
organisationId
role
updatedAt
createdAt
user {
...UserEntityFragment
}
organisation {
...OrganisationEntityFragment
}
}
}
}
Response
{
"data": {
"user": {
"id": "xyz789",
"socialId": "xyz789",
"email": "abc123",
"verified": true,
"lastOrganizationId": "abc123",
"mfaSecret": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z",
"emailPreferences": UserEmailPreferences,
"organisation": [OrganisationEntity],
"organisationMember": [OrganisationMemberEntity],
"loggedInOrganisation": OrganisationMemberEntity
}
}
}
usersOrganisations
Description
Get all of the users joined organisations including his owned ones.
Response
Returns
[OrganisationMemberEntity!]!
Example
Query
query UsersOrganisations {
usersOrganisations {
userId
organisationId
role
updatedAt
createdAt
user {
id
socialId
email
verified
lastOrganizationId
mfaSecret
createdAt
updatedAt
emailPreferences {
...UserEmailPreferencesFragment
}
organisation {
...OrganisationEntityFragment
}
organisationMember {
...OrganisationMemberEntityFragment
}
}
organisation {
id
name
ownerUserId
updatedAt
createdAt
organisationMember {
...OrganisationMemberEntityFragment
}
protectedAddresses {
...ProtectedAddressEntityFragment
}
owner {
...UserEntityFragment
}
apiKeys {
...OrganisationApiKeyEntityFragment
}
notificationSettings {
...NotificationSettingsEntityFragment
}
organisationInvite {
...OrganisationInviteEntityFragment
}
organisationSubscription {
...OrganisationSubscriptionEntityFragment
}
}
}
}
Response
{
"data": {
"usersOrganisations": [
{
"userId": "xyz789",
"organisationId": "xyz789",
"role": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z",
"user": UserEntity,
"organisation": OrganisationEntity
}
]
}
}
Types
ActiveTierResponse
Fields
Field Name | Description |
---|---|
tier -
Tier!
|
Subscription tier |
tierBillingType -
TierBillingType!
|
Subscription tier billing type |
currentPeriodStart -
Float
|
Current period start |
currentPeriodEnd -
Float
|
Current period end |
subscriptionLimits -
SubscriptionLimits
|
|
paymentMethodDetails -
PaymentMethodDetailsResponse
|
|
paymentType -
String
|
|
billingEmail -
String
|
Example
{
"tier": "FREE",
"tierBillingType": "MONTHLY",
"currentPeriodStart": 123.45,
"currentPeriodEnd": 123.45,
"subscriptionLimits": SubscriptionLimits,
"paymentMethodDetails": PaymentMethodDetailsResponse,
"paymentType": "abc123",
"billingEmail": "abc123"
}
AddressRiskType
Description
Watchlist address risk types
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"TORNADO_TX"
BackTestingReportProcessEntity
Description
This is description the Watchlist entity. Every organisation can have multiple watchlist addresses. For Lossless Aegis in order to start monitoring the address, the organisation must add it to the watchlist.
Fields
Field Name | Description |
---|---|
id -
String!
|
Backtesting report process ID |
authorId -
String!
|
ID of the user initiated report |
organisationId -
String!
|
ID of the organisation initiated report |
protectedAddressId -
String!
|
ID of the protected address |
status -
String!
|
Process status |
createdAt -
DateTime!
|
Created at |
finishedAt -
DateTime
|
Finished at |
startDate -
DateTime!
|
Start Date of the range |
approximateFinishDate -
DateTime
|
Approximate end date of the backtesting process |
endDate -
DateTime!
|
End Date of the range |
protectedAddress -
ProtectedAddressEntity!
|
Protected Address |
organisation -
OrganisationEntity!
|
Owner of the report |
author -
UserEntity!
|
User who initiated report |
Example
{
"id": "xyz789",
"authorId": "abc123",
"organisationId": "abc123",
"protectedAddressId": "abc123",
"status": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"finishedAt": "2007-12-03T10:15:30Z",
"startDate": "2007-12-03T10:15:30Z",
"approximateFinishDate": "2007-12-03T10:15:30Z",
"endDate": "2007-12-03T10:15:30Z",
"protectedAddress": ProtectedAddressEntity,
"organisation": OrganisationEntity,
"author": UserEntity
}
Boolean
Description
The Boolean
scalar type represents true
or false
.
ContractAnalysisDataEntity
Fields
Field Name | Description |
---|---|
general -
ContractAnalysisGeneralEntity
|
|
recommendedEvents -
[ContractAnalysisRecommendedEventsEntity!]
|
|
integratedContracts -
[ContractAnalysisIntegratedContractsEntity!]
|
|
privellegedAddresses -
[ContractAnalysisPrivellegedAddressEntity!]
|
|
modifierFunctions -
[ContractAnalysisFnModifiersEntity!]
|
Example
{
"general": ContractAnalysisGeneralEntity,
"recommendedEvents": [
ContractAnalysisRecommendedEventsEntity
],
"integratedContracts": [
ContractAnalysisIntegratedContractsEntity
],
"privellegedAddresses": [
ContractAnalysisPrivellegedAddressEntity
],
"modifierFunctions": [ContractAnalysisFnModifiersEntity]
}
ContractAnalysisEntity
Fields
Field Name | Description |
---|---|
protectedAddressId -
String!
|
Protected address Id |
reviewed -
Boolean!
|
Is smart contract analysis reviewed |
analysisData -
ContractAnalysisDataEntity
|
Analysis data |
Example
{
"protectedAddressId": "xyz789",
"reviewed": true,
"analysisData": ContractAnalysisDataEntity
}
ContractAnalysisFnModifiersEntity
ContractAnalysisGeneralEntity
Fields
Field Name | Description |
---|---|
isVerified -
Boolean!
|
Indicates if the contract is verified |
Example
{"isVerified": false}
ContractAnalysisIntegratedContractsEntity
ContractAnalysisPrivellegedAddressEntity
ContractAnalysisRecommendedEventsEntity
DateTime
Description
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
Example
"2007-12-03T10:15:30Z"
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by
IEEE 754.
Example
123.45
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
NotificationSettingsEntity
Description
The notification settings entity represents the user added notification channels. In order to receive notifications the user must add at least one notification channel. And the assign the notification channel to the watchlist address.
Fields
Field Name | Description |
---|---|
id -
String!
|
Notification channel ID |
organisationId -
String!
|
Notification channel owner ID |
type -
String!
|
Notification channel type |
name -
String!
|
Notification channel name |
typeData -
NotificationSettingsMetadata!
|
Notification channel metadata |
updatedAt -
DateTime!
|
Updated at |
createdAt -
DateTime!
|
Created at |
Example
{
"id": "xyz789",
"organisationId": "abc123",
"type": "abc123",
"name": "xyz789",
"typeData": NotificationSettingsMetadata,
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z"
}
NotificationSettingsMetadata
Description
Describes a watchlist address notification settings metadata. This is a general entity that stores the nescessary data for the notification settings channels e.g: SLACK, EMAIL and etc..
Example
{
"webhookUrl": "xyz789",
"telegramChatId": "abc123",
"telegramBotToken": "xyz789",
"emailList": ["abc123"],
"phoneList": ["abc123"]
}
OrganisationApiKeyEntity
Description
Describes the Organisation API key entity
Example
{
"id": "xyz789",
"apiKeyName": "xyz789",
"apiKey": "xyz789",
"organisationId": "xyz789",
"createdAt": "2007-12-03T10:15:30Z"
}
OrganisationEntity
Fields
Field Name | Description |
---|---|
id -
String!
|
Organisation ID |
name -
String!
|
Organisation name |
ownerUserId -
String!
|
Organisation owners user Id |
updatedAt -
String
|
Organisation updated at |
createdAt -
DateTime!
|
Organisation created at |
organisationMember -
[OrganisationMemberEntity!]
|
Organisation members |
protectedAddresses -
[ProtectedAddressEntity!]
|
Users watchlist addresses |
owner -
UserEntity
|
Organisation owner |
apiKeys -
OrganisationApiKeyEntity
|
|
notificationSettings -
[NotificationSettingsEntity!]
|
Users notification channels |
organisationInvite -
[OrganisationInviteEntity!]
|
User organisation invites |
organisationSubscription -
OrganisationSubscriptionEntity
|
Organisation subscription details |
Example
{
"id": "xyz789",
"name": "xyz789",
"ownerUserId": "abc123",
"updatedAt": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"organisationMember": [OrganisationMemberEntity],
"protectedAddresses": [ProtectedAddressEntity],
"owner": UserEntity,
"apiKeys": OrganisationApiKeyEntity,
"notificationSettings": [NotificationSettingsEntity],
"organisationInvite": [OrganisationInviteEntity],
"organisationSubscription": OrganisationSubscriptionEntity
}
OrganisationInviteEntity
Fields
Field Name | Description |
---|---|
senderEmail -
String!
|
Invite senders email |
receiverEmail -
String!
|
Invite receivers email |
organisationId -
String!
|
Invitations organisation id |
pendingRole -
String!
|
Pending invitation user role |
status -
String!
|
Invitations status |
createdAt -
DateTime!
|
Invitations created at |
updatedAt -
DateTime!
|
Invitations updated at |
Example
{
"senderEmail": "xyz789",
"receiverEmail": "xyz789",
"organisationId": "xyz789",
"pendingRole": "abc123",
"status": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z"
}
OrganisationLimitsEntity
Fields
Field Name | Description |
---|---|
maxTeamMembers -
Int!
|
|
notificationsEnabled -
Boolean!
|
|
maxPhoneNotifications -
Int!
|
|
maxNotificationChannels -
Int!
|
|
maxProtectedAddresses -
Int!
|
|
maxApiKeys -
Int!
|
|
onChainSecurity -
Boolean!
|
|
offChainSecurity -
Boolean!
|
|
mempoolSecurity -
Boolean!
|
|
smsEnabled -
Boolean!
|
|
customEventsAlertsEnabled -
Boolean!
|
|
smsLimit -
Int!
|
|
currentSmsUsage -
Int!
|
Example
{
"maxTeamMembers": 987,
"notificationsEnabled": false,
"maxPhoneNotifications": 987,
"maxNotificationChannels": 123,
"maxProtectedAddresses": 123,
"maxApiKeys": 987,
"onChainSecurity": true,
"offChainSecurity": false,
"mempoolSecurity": false,
"smsEnabled": false,
"customEventsAlertsEnabled": true,
"smsLimit": 123,
"currentSmsUsage": 987
}
OrganisationMemberEntity
Fields
Field Name | Description |
---|---|
userId -
String!
|
Organisation member id |
organisationId -
String!
|
Organisation id |
role -
String!
|
Organisation member role |
updatedAt -
DateTime!
|
Organisation member updated at |
createdAt -
DateTime!
|
Organisation member created at |
user -
UserEntity!
|
Organisation member user details |
organisation -
OrganisationEntity!
|
Organisation details |
Example
{
"userId": "xyz789",
"organisationId": "abc123",
"role": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z",
"user": UserEntity,
"organisation": OrganisationEntity
}
OrganisationSubscriptionEntity
Fields
Field Name | Description |
---|---|
organisationId -
String!
|
Organisation id |
subscriptionTierId -
String!
|
Subscription tier id |
subscriptionTier -
OrganisationSubscriptionLimitsEntity!
|
Example
{
"organisationId": "abc123",
"subscriptionTierId": "xyz789",
"subscriptionTier": OrganisationSubscriptionLimitsEntity
}
OrganisationSubscriptionLimitsEntity
Fields
Field Name | Description |
---|---|
tier -
String!
|
Organisation tier |
tierLimits -
OrganisationLimitsEntity!
|
Organisation limits |
Example
{
"tier": "abc123",
"tierLimits": OrganisationLimitsEntity
}
PaymentMethodDetailsResponse
Example
{
"billingEmail": "xyz789",
"last4": "xyz789",
"expMonth": 123.45,
"expYear": 123.45,
"cardBrand": "abc123"
}
ProtectedAddressAbiEntity
Description
Describes the watchlist address ABI entity. Watchlist address ABI is used in the Aegis app, in order for the organisation to interact with the smart contract. The Aegis APP will attempt to fetch the ABI first, if ABI is not detected you have an ability upload the ABI by your own.
Example
{
"id": "xyz789",
"abi": "abc123",
"protectedAddressId": "abc123"
}
ProtectedAddressCustomEventsNotificationSettingsEntity
Description
In order to receive notifications about custom events detected associated to a watchlist address, the user must first add at least one notification channel. And them assign the notification channel to the watchlist address.
Fields
Field Name | Description |
---|---|
id -
String!
|
Watchlist alert ID |
organisationId -
String!
|
Watchlist address alert owner ID |
protectedAddressId -
String!
|
Watchlist address ID |
isPaused -
Boolean!
|
Are notifications paused for the watchlist address |
notificationSettings -
[NotificationSettingsEntity!]!
|
Notification channels settings |
updatedAt -
DateTime!
|
Updated at |
createdAt -
DateTime!
|
Created at |
Example
{
"id": "xyz789",
"organisationId": "abc123",
"protectedAddressId": "abc123",
"isPaused": false,
"notificationSettings": [NotificationSettingsEntity],
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z"
}
ProtectedAddressEntity
Description
This is description the Watchlist entity. Every organisation can have multiple watchlist addresses. For Lossless Aegis in order to start monitoring the address, the organisation must add it to the watchlist.
Fields
Field Name | Description |
---|---|
id -
String!
|
Watchlist address ID |
name -
String!
|
Watchlist address name |
address -
String!
|
Watchlist address |
tvlEnabled -
Boolean!
|
Watchlist tvl enabled |
chain -
String!
|
Watchlist address chain |
createdAt -
DateTime!
|
Created at |
organisationId -
String!
|
Watchlist address owner ID |
protectedAddressTypes -
[ProtectedAddressTypeEntity!]!
|
Watchlist address types |
protectedAddressAbi -
ProtectedAddressAbiEntity
|
Watchlist address ABI |
lastBackTestingReportProcess -
BackTestingReportProcessEntity
|
Watchlist address latest backtesting report process |
addressNotificationSettings -
[ProtectedAddressNotificationSettingsEntity!]!
|
Watchlist address alert settings |
protectedAddressImplementation -
ProtectedAddressImplementationEntity
|
|
addressAnalysis -
ContractAnalysisEntity
|
Example
{
"id": "xyz789",
"name": "xyz789",
"address": "xyz789",
"tvlEnabled": true,
"chain": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"organisationId": "abc123",
"protectedAddressTypes": [ProtectedAddressTypeEntity],
"protectedAddressAbi": ProtectedAddressAbiEntity,
"lastBackTestingReportProcess": BackTestingReportProcessEntity,
"addressNotificationSettings": [
ProtectedAddressNotificationSettingsEntity
],
"protectedAddressImplementation": ProtectedAddressImplementationEntity,
"addressAnalysis": ContractAnalysisEntity
}
ProtectedAddressImplementationEntity
Description
This entity represents an upgradeable proxy contract, implementation address. It is used to determine the actuall contract, which is being used for interaction
Example
{
"protectedAddressId": "abc123",
"implementationAddress": "abc123"
}
ProtectedAddressNotificationSettingsEntity
Description
In order to receive notifications associated to a watchlist address, the user must first add at least one notification channel. And them assign the notification channel to the watchlist address.
Fields
Field Name | Description |
---|---|
id -
String!
|
Watchlist alert ID |
organisationId -
String!
|
Watchlist address alert owner ID |
notificationSettingsId -
String!
|
Notification channel ID |
protectedAddressId -
String!
|
Watchlist address ID |
riskScoreThreshold -
Float!
|
Risk score threshold number. 0 means all notifications will be sent |
riskTypesToNotify -
[AddressRiskType!]!
|
Array of Address Risk Types to notify on |
isPaused -
Boolean!
|
Are notifications paused for the watchlist address |
notificationSettings -
NotificationSettingsEntity!
|
Notification channel settings |
protectedAddress -
ProtectedAddressEntity!
|
Watchlist address |
updatedAt -
DateTime!
|
Updated at |
createdAt -
DateTime!
|
Created at |
Example
{
"id": "xyz789",
"organisationId": "abc123",
"notificationSettingsId": "xyz789",
"protectedAddressId": "xyz789",
"riskScoreThreshold": 987.65,
"riskTypesToNotify": ["TORNADO_TX"],
"isPaused": false,
"notificationSettings": NotificationSettingsEntity,
"protectedAddress": ProtectedAddressEntity,
"updatedAt": "2007-12-03T10:15:30Z",
"createdAt": "2007-12-03T10:15:30Z"
}
ProtectedAddressTopicType
Description
This entity describes the watchlist address event e.g: MINT, PAUSE and etc..
Example
{
"id": "xyz789",
"protectedAddressId": "xyz789",
"monitored": true,
"topic": "abc123",
"topicId": "xyz789"
}
ProtectedAddressTypeEntity
Description
Describes the watchlist address type entity. Lossless Aegis can track multiple types of contracts. This entity describes the watchlist address type e.g: WALLET, PAUSABLE and etc..
Example
{
"id": "abc123",
"protectedAddressId": "xyz789",
"addressType": "xyz789"
}
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
SubscriptionLimits
Fields
Field Name | Description |
---|---|
maxTeamMembers -
Int!
|
|
notificationsEnabled -
Boolean!
|
|
maxPhoneNotifications -
Int!
|
|
maxNotificationChannels -
Int!
|
|
maxProtectedAddresses -
Int!
|
|
maxApiKeys -
Int!
|
|
teamsMaxLimit -
Int!
|
|
onChainSecurity -
Boolean!
|
|
offChainSecurity -
Boolean!
|
|
mempoolSecurity -
Boolean!
|
|
smsEnabled -
Boolean!
|
|
customEventsAlertsEnabled -
Boolean!
|
|
smsLimit -
Int!
|
|
currentSmsUsage -
Int!
|
Example
{
"maxTeamMembers": 123,
"notificationsEnabled": true,
"maxPhoneNotifications": 987,
"maxNotificationChannels": 987,
"maxProtectedAddresses": 123,
"maxApiKeys": 987,
"teamsMaxLimit": 123,
"onChainSecurity": true,
"offChainSecurity": false,
"mempoolSecurity": false,
"smsEnabled": true,
"customEventsAlertsEnabled": false,
"smsLimit": 987,
"currentSmsUsage": 987
}
SubscriptionTierEntity
Fields
Field Name | Description |
---|---|
id -
String!
|
Subscription tier id |
tier -
Tier!
|
Subscription tier |
tierBillingType -
TierBillingType!
|
Subscription tier billing type |
Example
{
"id": "abc123",
"tier": "FREE",
"tierBillingType": "MONTHLY"
}
SuspiciousAddressEntity
SuspiciousTransactionEntity
Fields
Field Name | Description |
---|---|
txHash -
String!
|
Transaction hash |
to -
String
|
Transaction's 'to' address |
createdAt -
String!
|
Transaction date |
blockNumber -
Float!
|
Transaction's block number |
chain -
String!
|
Chain |
from -
String!
|
Transaction's 'from' address |
risks -
[String!]!
|
Transaction risk types |
riskScore -
Int!
|
Transaction risk score |
suspiciousAddress -
[SuspiciousAddressEntity!]
|
Transaction related suspicious addresses |
protectedAddresses -
[ProtectedAddressEntity!]
|
Transaction related protected addresses |
Example
{
"txHash": "abc123",
"to": "xyz789",
"createdAt": "abc123",
"blockNumber": 987.65,
"chain": "xyz789",
"from": "xyz789",
"risks": ["abc123"],
"riskScore": 123,
"suspiciousAddress": [SuspiciousAddressEntity],
"protectedAddresses": [ProtectedAddressEntity]
}
TVLSettingsEntity
Description
In order to receive notifications about custom events detected associated to a watchlist address, the user must first add at least one notification channel. And them assign the notification channel to the watchlist address.
Fields
Field Name | Description |
---|---|
id -
String!
|
Notification ID |
organisationId -
String!
|
Watchlist address alert owner ID |
tokenId -
String!
|
Monitored token ID |
thresholdPercentage -
Int!
|
Value change percentage to notify |
timePeriod -
String!
|
Time Period to monitor |
monitoredToken -
TokenLockedInContractEntity!
|
|
notificationSettings -
[NotificationSettingsEntity!]!
|
Notification channels settings |
createdAt -
DateTime!
|
Created at |
Example
{
"id": "abc123",
"organisationId": "xyz789",
"tokenId": "xyz789",
"thresholdPercentage": 123,
"timePeriod": "xyz789",
"monitoredToken": TokenLockedInContractEntity,
"notificationSettings": [NotificationSettingsEntity],
"createdAt": "2007-12-03T10:15:30Z"
}
Tier
Description
The tier of the subscription
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"FREE"
TierBillingType
Description
Tier billing type of the subscription
Values
Enum Value | Description |
---|---|
|
|
|
Example
"MONTHLY"
TokenBalanceEntity
TokenLockedInContractEntity
Description
Describes the token locked in contract entity.
Example
{
"id": "abc123",
"tokenName": "xyz789",
"tokenLogo": "xyz789",
"tokenDivisor": 123.45,
"tokenSymbol": "xyz789",
"contractAddress": "abc123"
}
UserDetailsEntity
Description
Describes the user entity
Fields
Field Name | Description |
---|---|
id -
String!
|
User ID |
socialId -
String
|
Social ID |
email -
String!
|
User email |
verified -
Boolean!
|
User email verified |
lastOrganizationId -
String!
|
|
mfaSecret -
String
|
MFA Secret ID |
createdAt -
DateTime!
|
User created at |
updatedAt -
DateTime!
|
User updated at |
emailPreferences -
UserEmailPreferences
|
User weekly emails preferences |
organisation -
[OrganisationEntity!]
|
|
organisationMember -
[OrganisationMemberEntity!]
|
|
loggedInOrganisation -
OrganisationMemberEntity
|
Example
{
"id": "abc123",
"socialId": "xyz789",
"email": "xyz789",
"verified": true,
"lastOrganizationId": "xyz789",
"mfaSecret": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z",
"emailPreferences": UserEmailPreferences,
"organisation": [OrganisationEntity],
"organisationMember": [OrganisationMemberEntity],
"loggedInOrganisation": OrganisationMemberEntity
}
UserEmailPreferences
Example
{
"userId": "xyz789",
"generalMarketingEmailsEnabled": true,
"organisationEmailsEnabled": true
}
UserEntity
Description
Describes the user entity
Fields
Field Name | Description |
---|---|
id -
String!
|
User ID |
socialId -
String
|
Social ID |
email -
String!
|
User email |
verified -
Boolean!
|
User email verified |
lastOrganizationId -
String!
|
|
mfaSecret -
String
|
MFA Secret ID |
createdAt -
DateTime!
|
User created at |
updatedAt -
DateTime!
|
User updated at |
emailPreferences -
UserEmailPreferences
|
User weekly emails preferences |
organisation -
[OrganisationEntity!]
|
|
organisationMember -
[OrganisationMemberEntity!]
|
Example
{
"id": "xyz789",
"socialId": "abc123",
"email": "abc123",
"verified": true,
"lastOrganizationId": "abc123",
"mfaSecret": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"updatedAt": "2007-12-03T10:15:30Z",
"emailPreferences": UserEmailPreferences,
"organisation": [OrganisationEntity],
"organisationMember": [OrganisationMemberEntity]
}