Inspiration
Initially, we wanted to help Russian independent journalists who were forced to leave Russia to continue spreading information about the war. They have been using Patreon to receive donations. Still, this funding source was blocked for them from one side by Russian authorities, which decided to block Patreon, and from another side by sanctions that make it impossible to send money to them from Russia.
Also, we found that many web3 creators have their accounts on Patreon, and we'd like to make a better way for them to communicate to their community and monetize their content.
What it does
Authors can make their content exclusive to users that follow them or bought this content as NFT or satisfy any other on-chain condition. For example, having a particular POAP token, participating in DAO, etc. In the future, we will add the possibility to communicate with fans via encrypted messages and add live streaming.
Other apps can also use Polyfans NFTs. For example, a creator can give his fans access to a private Discord or Telegram group.
How we built it
Polyfans uses Lens Protocol under the hood. All entities are NFTs: creators' profiles, posts, and comments. All content and metadata are stored on IPFS
To get access to exclusive content from creators, a user must get followNFT, collect post's NFT or fit any other on-chain conditions specified by the creator.
Exclusive posts are encrypted using Lit protocol, and the user can view them if his wallet address satisfies appropriate on-chain conditions
We used Sequence wallet to enable access to Polyfans for web2 users via the social login feature. Custom Sequence connector for wagmi library has been implemented. To make our app more decentralised we tried to use Fluence nodes as IPFS clients instead of Infura
Challenges we ran into
To make our app more decentralized we tried to use Fluence nodes as IPFS clients instead of Infura but weren't able to implement an https gateway based on Fluence on time
Also, we weren't managed to add Sequence wallet support for all Polyfans features, as Lens API doesn't support signatures generated by smart contracts wallet, and there was any documented way to create a profile via their smart contract. We found out how to do it in the last days of the hackathon but implemented only login and creating new profile features. Lens team said they'll add smart contract wallet support to their API soon.
Accomplishments that we're proud of
We have an MVP that is ready to be tested with potential users. It is possible to create a profile, follow another profile, write a new post, and comment on it. Also, you can change your profile avatar, cover, name, and bio on the settings page.
What we learned
We've learned a lot about Lens protocol and how it works, how to interact with Fluence nodes using Aqua and how to add social login to our dapp using Sequence wallet
What's next for Polyfans
First of all we'd like to write our first users that interested in monetizing their content using Polyfans
And after that, we'd like to get funding or grant support to continue the development and add new features such as:
Reach web3-worthy editor for posts and comments Messages and notifications using XMTP protocol Livestreams using Livepeer More complex follow modules logic, for example streaming all subscription payments to a lending/borrowing protocol to earn additional income Decentralized API and indexer using Fluence, as well as Fluence-based IPFS gateways
Built With
- alchemyapi
- ether.js
- fluence
- graphql
- infura
- ipfs
- javascript
- lens
- polygon
- sequence
- wagmi
Log in or sign up for Devpost to join the conversation.