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/
CyberConnect API feedback
Following & Followers List
- The query response is fast and these are the results on average:
query followers: 800ms
query followings: 800ms
- The schema is easy to follow and understand.
- The pagination (using
First
andAfter
arguments) is really helpful;
Suggestion 💡:After
being of typeINT
likeFirst
as we are passing a number.
Recommended Following List
- The query response is fast and these are the results on average:
query recommendations: 1100ms
- The schema is easy to follow and understand;
- In terms of pagination we have the same suggestion as mentioned above for the Following & Followers List.
- 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
.
- The library is fast and the button component is interactive and easy to use.
- 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.
- 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.
- 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:
- Node 12 or better
- Covalent API key
- EtherScan API key
- Moralis Server & APP ID
- Unstoppable Domains credentials
Steps to set the Backend running:
- Set the following variables in
.env
COV_API=https://api.covalenthq.com/v1
COV_KEY=
Covalent API keyPORT=2300
MORALIS_SERVER_URL=
Moralis Server URLAPPID=
Moralis APP IDETHERSCAN_API_KEY=
EtherScan API key
- install npm dependencies;
- run the project with the command
$ npm start
;
- go to the Client folder directory;
- make sure you do not have anything running on port 3000;
- install the Node dependencies by running
$ yarn
in the terminal; - insert in the
package.json
file the following key value pair, right above"dependencies": "proxy": "http://localhost:8080"
and save the changes; - open a new terminal and run the command
$ yarn start
(make sure you are in the right directory); - set in the
.env
the Unstoppable Domains credentials.