/etherloop

Etherloop is a social connection web application

Primary LanguageJavaScript

Etherloop 🌌

Etherloop is a social connection web application that allows users to:

  • follow/unfollow Ethereum addresses and get recommendations on how to follow next;
  • view the total net worth and number of assets for all the addresses the users are connected to;
  • view their own wallet balances, tokens, transactions, POAPs and NFTs.

Project link: https://etherloop.moonlabs.xyz/

landing

CyberConnect API feedback

Following & Followers List

  1. The query response is fast and these are the results on average:
  • query followers: 800ms
  • query followings: 800ms
  1. The schema is easy to follow and understand.
  2. The pagination (using First and After arguments) is really helpful;
    Suggestion 💡: After being of type INT like First as we are passing a number.

Recommended Following List

  1. The query response is fast and these are the results on average:
  • query recommendations: 1100ms
  1. The schema is easy to follow and understand;
  2. In terms of pagination we have the same suggestion as mentioned above for the Following & Followers List.
  3. Having the ability to find recommended addresses based on existing connections is really helpful and powerful. It opens up the potential to build powerful applications.

Follow Button

We implemented in our application the React Component for the Follow Button.

  1. The library is fast and the button component is interactive and easy to use.
  2. Using the same button component that automatically switches between follow/unfollow just by providing it the address and without the need to create another component is a big plus and saves time.
  3. We did encounter two errors that got fixed right away with the help of the CyberConnect developers:
  • The first one was CORS block Access-Control-Allow-Origin on connecting using a domain.
  • The second error was {code: 'CeramicError', message: 'Can not get ceramic outboundLink'} that got fixed with the library update.

Searching for an identity

We also used in our application the identity query to search by providing an address or an ens name as input.

  1. Having the ability to find an identity just by proving a single input proved to be really handy especially since nowadays domain names are popular.
    Suggestion 💡: for this particular query, when providing the wrong input (either input an unavailable ens or the user makes a mistake), the server should reply with an error message "message": "Name not found" instead of "message": "Server Internal Error".

Overall we enjoyed working with the APIs since it's fast, easy to use and saves time. We're happy that we discovered the project through the hackathon and allowed us to built our app.

Setup

Prerequisites needed:

Steps to set the Backend running:

  1. Set the following variables in .env
  • COV_API=https://api.covalenthq.com/v1
  • COV_KEY= Covalent API key
  • PORT=2300
  • MORALIS_SERVER_URL= Moralis Server URL
  • APPID= Moralis APP ID
  • ETHERSCAN_API_KEY= EtherScan API key
  1. install npm dependencies;
  2. run the project with the command $ npm start;

Steps to set the Client running:

  1. go to the Client folder directory;
  2. make sure you do not have anything running on port 3000;
  3. install the Node dependencies by running $ yarn in the terminal;
  4. insert in the package.json file the following key value pair, right above "dependencies": "proxy": "http://localhost:8080" and save the changes;
  5. open a new terminal and run the command $ yarn start (make sure you are in the right directory);
  6. set in the .env the Unstoppable Domains credentials.