Backend Architecture
Bullish Social integrates traditional server architecture with Web3 components to deliver a seamless and decentralized social experience.
🔁 Summary - Off-chain & On-chain Workflow
Weekly Data - Claiming Rewards
- Users engage with the platform (posting, liking, referring others).
- The backend records and ranks user activity off-chain.
- At the end of each week, a snapshot hash is generated for each user.
- Merkle trees are constructed from these hashes and submitted to the smart contract.
- Users submit their signed snapshot to the smart contract.
- The contract verifies signatures using the Merkle Root, distributes rewards.
Voting Power - Creating Proposals
- The user claims rewards if eligible.
- The user calls the propose function with including their ranking to the governor contract.
- The governor contract queries the rewarder contract to verify the user's rank.
- The rewarder contract checks the
s_usedIndividualRanks
ors_usedClubMemberRank
mappings to confirm rank ownership. - The rewarder contract cannot verify the rank if the user has not already claimed their reward.
- The rewarder contract checks if the week of the rank is within the
eligibleWeekCount
range. - The rewarder contract checks if the rank is within the
votingMaximumRank
range.
- The rewarder contract checks the
- If the rank is valid and within the
votingMaximumRank
range, the user is granted voting power. - The governor contract creates the proposal on-chain.