Skip to content

TrustScore

Introduction

TrustScore aggregates multiple on/off-chain sources of reputation into an overall social graph where each source counts towards some points in building the overall TrustScore for any Ethereum Address. This score is continuously evolving. As more platforms get integrated, the weights and the score will update too.

Current Integrations and Score Weightage.

#IntegrationFactors and Score
1Aave- totalCollateralETH
- totalDebtETH
- availableBorrowsETH
- currentLiquidationThreshold
- ltv
- healthFactor
Across: Main Market, AMM Market, Polygon Market, Avalanche Market
2AgeAge of Ethreum Address in days
3ArcX- ArcX Loyalty Score
- IndexCoop Loyalty Score
4Async Art- NFTs Sold
- Average Sale Value
5Boardroom- Number of Votes given
- DAOs participated In
- Voting History
6BrightId37 Points for Verification
7Celo Verified Attestations1 Point for each valid Attestation
8Coinvise- Tokens Created(a) : (a)^0.5 Points
- NFTs Created(b) : (b)^0.5 Points
- Total NFTs Sold(c): c Points
- Airdrops Sent(d): d Points
- Multisends(e): e Points
- Liquidity Pools Created(f): f Points
9Context- Followers
- Folowing
10CoordinapeNumber of teammates.
12CryptoScamDB-20 Points for being flagged
13Cyberconnect- Followers
- Following
- Social
- Display Name
14DeepDAO- score
- rank
- relativeScore
- daos
- proposals
- votes
15ENS10 Points for Reverse Resolution to your Address.
16Foundation- NFTs Sold
- Average Sale Value
- Followers
- Following
17Gitcoin10 Points for funding a Grant.
18Idena1 Point for Verification
19KnownOrigin- NFTs Sold
- Average Sale Value
20Mirror10 Points for being a writer on Mirror
21POAP1 Point for Each POAP Received
22Polygon EcosystemRelative Score out of 100 based on,
- Number of Transactions
- Net Volume Transacted
- Retention
23Proof of Humanity8 Points for Verification
24RabbitHole- Points equal to the Levels you cross on RabbitHole.
- TaskIDs of the tasks Completed
25Rarible- Total NFTs Sold
- Total NFTs Created
- Total NFTs Owned
- Average Sale Value
- Followers
- Following
26RSS3- Profile
- Backlinks
- Accounts
- Links
27Showtime- Followers
- Following
28SuperRare- NFTs Sold
- Average Sale Value
- Followers
- Following
29Uniswap Sybil10 Points for Verification
30Unstoppable Domains10 Points for Reverse Resolution to your Address.
31Zora- Number of NFTs Sold
- Average Sale Value

Integration

ℹ️

You can add a noCache=true query paramter to manually rebuild and cache the Social Graph anytime. Otherwise our indexers update your score every 8 hours.

Querying TrustScore

API Request format,

https://theconvo.space/api/identity?address=<ethereum-address-or-ens>&apikey=CONVO

Example 1,

https://theconvo.space/api/identity?address=vitalik.eth&apikey=CONVO
View Response
{
  "score": 54,
  "success": true,
  "poh": false,
  "brightId": false,
  "poap": 43,
  "ens": "vitalik.eth",
  "idena": false,
  "cryptoScamDb": false,
  "unstoppableDomains": false,
  "uniswapSybil": false,
  "deepdao": 0,
  "rabbitHole": {
    "level": 1,
    "tasksCompleted": [
      "UNI_V2_SWAP",
      "GNOSIS_SAFE_OWNER"
    ]
  },
  "mirror": false,
  "foundation": {
    "totalCountSold": 0,
    "totalAmountSold": 0,
    "followerCount": 0,
    "followingCount": 0
  },
  "superrare": {
    "totalCountSold": 0,
    "totalAmountSold": 0,
    "following": 0,
    "followers": 0
  },
  "rarible": {
    "totalCountSold": 0,
    "totalAmountSold": 0,
    "ownershipsWithStock": 0,
    "itemsCreated": 68,
    "ownerships": 208,
    "hides": 0,
    "followers": 29,
    "following": 0,
    "likes": 0
  },
  "knownorigin": {
    "totalCountSold": 0,
    "totalAmountSold": 0
  },
  "asyncart": {
    "totalCountSold": 0,
    "totalAmountSold": 0
  },
  "zora": {
    "totalCountSold": 0,
    "totalAmountSold": 0
  },
  "coinvise": {
    "tokensCreated": 0,
    "nftsCreated": 0,
    "totalCountSold": 0,
    "totalAmountSold": 0,
    "totalPoolTvl": 0,
    "totalPoolCount": 0,
    "multisendCount": 0,
    "airdropCount": 0
  },
  "gitcoin": {
    "funder": true
  },
  "coordinape": {
    "teammates": 0
  },
  "celo": {
    "attestations": 0
  },
  "polygon": {
    "Score100": 0
  },
  "showtime": {},
  "cyberconnect": {
    "displayName": "",
    "address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
    "followingCount": 0,
    "followerCount": 201,
    "social": {
      "twitter": ""
    }
  },
  "rss3": {
    "profile": {},
    "backlinks": [],
    "accounts": [],
    "links": []
  },
  "aave": {
    "totalHf": 0,
    "mainMarket": {
      "healthFactor": false
    },
    "ammMarket": {
      "healthFactor": false
    },
    "polygonMarket": {
      "healthFactor": false
    },
    "avalancheMarket": {
      "healthFactor": false
    }
  },
  "context": {
    "followerCount": 10,
    "followingCount": null
  },
  "arcx": {
    "totalScore": 0,
    "details": {}
  },
  "age": 2251,
  "boardroom": {
    "totalVotes": 0,
    "daos": [],
    "votes": []
  },
  "signature": "0x304ab9a93eea560b64a5574d5f63782041350e069f15068cd5521ed953a48ca64bd2a12fdbca4a3b83e5af6fef08174d0fc535395a29f5e3b1ee64bc374908fc1b",
  "signatureAddress": "0xCCcccCcC54317EE02C2dBfdD832a67C7acD28e06"
}

Example 2,

https://theconvo.space/api/identity?address=0xD665afb9A4019a8c482352aaa862567257Ed62CF&apikey=CONVO
View Response
{
  "score": 1,
  "success": true,
  "poh": false,
  "brightId": false,
  "poap": 1,
  "ens": false,
  "idena": false,
  "cryptoScamDb": false,
  "unstoppableDomains": false,
  "uniswapSybil": false,
  "deepdao": 0,
  "rabbitHole": {
    "level": 1,
    "tasksCompleted": [
      "SEA1",
      "SEA2",
      "UNI_V3_SWAP",
      "UNI_V2_SWAP",
      "SNAPSHOT_VOTE"
    ]
  },
  "mirror": false,
  "foundation": {
    "totalCountSold": 18,
    "totalAmountSold": 2254086.85725954,
    "followerCount": 1540,
    "followingCount": 48
  },
  "superrare": {
    "totalCountSold": 2,
    "totalAmountSold": 28718.991565550437,
    "following": 36,
    "followers": 71
  },
  "rarible": {
    "totalCountSold": 22,
    "totalAmountSold": 1448805.47133634,
    "ownershipsWithStock": 1,
    "itemsCreated": 94,
    "ownerships": 52,
    "hides": 0,
    "followers": 2156,
    "following": 108,
    "likes": 33
  },
  "knownorigin": {
    "totalCountSold": 3,
    "totalAmountSold": 16335.698895
  },
  "asyncart": {
    "totalCountSold": 0,
    "totalAmountSold": 0
  },
  "zora": {
    "totalCountSold": 0,
    "totalAmountSold": 0
  },
  "coinvise": {
    "tokensCreated": 0,
    "nftsCreated": 0,
    "totalCountSold": 0,
    "totalAmountSold": 0,
    "totalPoolTvl": 0,
    "totalPoolCount": 0,
    "multisendCount": 0,
    "airdropCount": 0
  },
  "gitcoin": {
    "funder": false
  },
  "coordinape": {
    "teammates": 0
  },
  "celo": {
    "attestations": 0
  },
  "polygon": {
    "Score100": 0
  },
  "showtime": {},
  "cyberconnect": {
    "displayName": "",
    "address": "0xd665afb9a4019a8c482352aaa862567257ed62cf",
    "followingCount": 0,
    "followerCount": 0,
    "social": {
      "twitter": "TheArchangel22"
    }
  },
  "rss3": {
    "profile": {},
    "backlinks": [],
    "accounts": [],
    "links": []
  },
  "aave": {
    "totalHf": 0,
    "mainMarket": {
      "healthFactor": false
    },
    "ammMarket": {
      "healthFactor": false
    },
    "polygonMarket": {
      "healthFactor": false
    },
    "avalancheMarket": {
      "healthFactor": false
    }
  },
  "context": {
    "followerCount": 3,
    "followingCount": null
  },
  "arcx": {
    "totalScore": 0,
    "details": {}
  },
  "age": 325,
  "boardroom": {
    "totalVotes": 0,
    "daos": [],
    "votes": []
  },
  "signature": "0xcee5940348e132cd9de3fce0beff710f40a71f24a039c050ab77989a4db610da0a4ba73fe5ed9a75ea9866f3dfbff4a2cc0c4057da238a7236079e76f49454951b",
  "signatureAddress": "0xCCcccCcC54317EE02C2dBfdD832a67C7acD28e06"
}

Verifying Response Signature

ℹ️

Convo uses 0xCCcccCcC54317EE02C2dBfdD832a67C7acD28e06 as SignatureAddress to sign the oracle data.

const { utils } = require('ethers');

let resp = await fetch('https://theconvo.space/api/identity?address=vitalik.eth&apikey=CONVO');
let { signature, signatureAddress, _mod, ...scoreData } = await resp.json();
let recoveredAddress = utils.verifyMessage(JSON.stringify(scoreData), signature);
console.log( recoveredAddress === signatureAddress );

Comments