Inspiration
I started this project because I myself don't know how to build an audience on Twitter. I looked at the current solutions to get professional marketing advice and wasn't convinced: traditional freelance platforms are intermediaries that offer rigid payment models and take a large cut.
What it does
Mysocialcontract helps businesses and creators who want to boost their social accounts connect with social media marketers. Anyone can make a request for promotion completely free. Marketers can message requesters privately and send them offers for promotion. After negotiating, the requester and the marketer can sign a smart contract with a deadline, promotion conditions i.e. a minimum number of followers for a specific Twitter account, and a deposit as payment.
Before the deadline, the contract can be used to verify the conditions using a Chainlink Oracle that requests data from social network APIs. If all the conditions are met, the marketer can withdraw the deposit. If any condition fails, the requester keeps the funds.
How we built it
This project has the following components:
- React app: The frontend application that users interact with to create requests, make offers and sign contracts.
- Smart contracts: The solidity contracts that store the conditions, call Chainlink Oracles and handle payments.
- Moralis database: Stores requests, offers, private chats and profiles.
- Moralis cloud functions: Connect with social media providers to get information necessary at the frontend.
- IPFS: An IPFS file keeps a track record of each user's successful contracts and how much ETH, followers, etc. they gained. This increases trust in experienced users and can also be used outside the platform.
- A custom External Adapter to retrieve Youtube and Twitter data. Public repo forked from the official smartcontractkit/external-adapters-js repo (develop branch.)
- A full Chainlink node deployed to AWS.
Challenges we ran into
The most difficult part was setting up my own node and successfully connecting it to both the PostgreSql database and the External Adapter. The Chainlink node's bridge was particularly difficult to debug.
Accomplishments that we're proud of
Setting up all the necessary infrastructure and developing a working UI in time.
What we learned
- Solidity (first time using it.)
- Setting up the whole Chainlink stack.
- Using the Moralis stack.
What's next for Mysocialcontract
- A means to provide feedback after completing a contract with another user.
- Better error handling at the Bridge/Chainlink node.
- Add more social networks.
Built With
- chainlink
- ec2
- hardhat
- ipfs
- javascript
- moralis
- postgre
- react
- solidity

Log in or sign up for Devpost to join the conversation.