You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fardels: Privacy-preserving decentralized social network for sharing items of small value
Project Description
Ever since the creation of smart contracts there has been a promise of building new kinds of decentralized social networks. In practice what has been built have been impoverished clones of existing social networks (for example, EtherTweet) that lack key features, such as the ability to follow others. That is because most smart contract networks do not keep user data private. Plus, they have not innovated around the strengths of the blockchain to rethink the types of relations that the social network aims to foster.
With Fardels we aim to improve on both counts. By building on Secret Network, important aspects of user data can be kept private. And just as Twitter innovated around sharing short pieces of information, Fardels is designed to foster a culture of sharing digital items of small value.
A fardel is a bundle or collection of information that you carry to the decentralized web to share with others. The contents of a fardel can be a link to a file, an image, or even a short piece of text like the punchline to a joke. It is something others are willing to pay a small price to access (e.g., no more than 5 scrt), and because the price is low there is little risk in unpacking one. There are no limitations on what kinds of contents are shared. It can be a link to an immutable file on IPFS or a simple Dropbox link. Thus, the contents can be permanent on the blockchain or they can be ephemeral, copyable, deletable, sharable. You can think of them as anti-NFTs, because the content creator earns money based on the demand of the users to unpack the fardel, not because of its high value.
If the fardel was something that made you smile, that you found useful, or simply valued in some way then you can leave a positive comment and rate it up, so others will know it is something they might want to unpack as well. And if the contents are a let down or disappear (for example, it contains a link to a file that no longer exists), well... you can write a negative comment and rate it down. It didn't cost much so no great loss. Over time content creators who create quality content will get good ratings and will begin to gain social capital in the community. People will trust them and want to unpack more of what they have to offer.
Go-to-Market plan
We will draw on the active Secret Network community to refine development of the Fardels social network. Once we have done a test-run on the holodeck-2 testnet and incorporated feedback from the community, we will launch the contract on mainnet along with the UI.
The success of the social network will depend upon the users providing quality content. Therefore, it could be useful to identify existing content creators who can help to generate interest in the network. Twitter grew after a demo at SXSW-- a similar launch done well would be ideal. SXSW is in March which is a long time off, but there might be other venues that could showcase the app sooner depending on the development timeline. Under-the-radar growth until that time leading to a proper launch could be a good option to beta test the system.
Value capture for Secret Network ecosystem
Because SCRT is the foundation for all transactions on the social network, as the network grows it will create demand for SCRT, and it will provide value for validators and stakers. The social network can drive new adoption of Secret Network by people who have not invested much value upfront or who are even involved in crypto. For example, any content creator can create a Keplr wallet, carry fardels to the network, and start earning money. It might be useful to incentivize and kickstart usage of the network by, e.g., providing a small amount of SCRT to all new users of the social network (who agree to KYC) for a specified time period, so they can easily post a few things and try out the network.
How to make the project financially sustainable / profitable?
Once the contract and website have been deployed there will be need for continued development of UI features as well as maintenance of server architecture for hosting the client side (react app) and content indexes. Additionally, if successful, other UIs such as mobile apps will need to be developed. Thus, there needs to be a way to make the value capture for the secret network ecosystem also sustain the project. The following options are possible but need further development:
Small fee on all transactions that go back to project (perhaps for a fixed time period). This would require coding into the contract itself.
Paid UI features, e.g. advertising and promoted fardels, etc. (commercial focus)
Funding from Secret Foundation, others. (non-profit focus like Mozilla)
It is possible that we could create a SNIP-20 token for this project, but a big advantage to keeping everything SCRT is that it will drive adoption and avoid introducing an alphabet soup of tokens to users. That's fine for secret swap users but not casual users of the fardels network. Ideally, users should know about (or be introduced to) SCRT and have an easy way to convert it to and from fiat currency, and not require any additional knowledge about crypto. But I am happy to hear alternative suggestions.
Team member
Ben Adams. Ben has several years experience doing web and mobile programming as well as developing scalable information retrieval applications. He teaches these technologies in a university setting. He has been developing Rust secret contracts for a few months. https://github.com/darwinzer0
Structure of the team
I have obviously started this project as an individual, and I have gotten some initial positive feedback from the community. If there seems to be broader interest in the idea, then one option I would consider is to incorporate a startup in New Zealand, which would become the formal entity developing this project. In addition, I would encourage others who are keen to be part of this project to get in touch. Women and minorities are especially encouraged to contact me if they are interested in being involved in this project, because Web 3 desperately needs more diversity and so do the engineering teams building our online social networks!
I would be happy to discuss options with the Secret Foundation regarding how the grant can be structured in that case, though perhaps for the sake of expediency it would make more sense to leave that for the second round of development (see "next steps" below).
Development Roadmap
An early first draft of the Fardels UI and contract was developed as part of the HackAtomRU hackathon. The repo can be found here: https://github.com/darwinzer0/fardels. The initial roadmap for this grant is for further development of the contract and UI integration. Once that has been successfully completed, a follow up grant application might be made that will focus on further UI and index development.
The goal is to have a fully working testnet version of the Fardels website ready for testing by the community on June 30, 2021. The work for this grant will be developed part-time for ~12 weeks. If the project is progressing well, then I will be able to devote more time after that date to work on a follow-up grant (or seek out other funding).
Contract development
For this grant I will revise the Fardels hackathon contract as follows (not an exhaustive list of changes):
A new generic data structure for a Fardel:
Public: public message, thumbnail image, tags, cost, timestamp, seal timestamp
Private: private data as compressed JSON. Will allow for different UX based on fields in JSON data.
Add logic for optional sales approval (similar to secret markets)
Update storage of rating:
Upvotes and downvotes tied to user account, limit number of votes allowed per user.
Update storage of comments, needs to be changed to an append store.
Add logic for blocking/unblocking accounts. This will allow users to block specific other users from unpacking their fardels, so that, e.g., they cannot post abusive comments.
Finish logic for sealing/unsealing fardels, including an automatic sealing time.
Add logic for getting fardels based on global id to facilitate off-chain indexing of public information. This will also require some revision to how comments are stored as well, so that the indexer can efficiently retrieve updates based on recent comments.
Add admin functionality:
Allow admin to change constants (e.g., max cost)
Option to set whether accounts can be banned. This will help to define the culture of the network: censorship resistant and unmanaged, or simply privacy-preserving and managed to help prevent selling of illegal material and stopping bad actors who widely share the fardel contents after unpacking, or try to sell it themselves. In those cases the admin would not have access to the private data of the user, but other users could report someone upon unpacking the fardel, and the user could be banned based on that. Such administration will also naturally incur much more of a maintenance overhead.
Possibly make some query functions only allowed for admin (using viewing key). E.g., getting fardels by global id for indexing. This will help prevent spamming of the contract.
Add logic/storage to export sale information/analytics to a user
New UI functionality
In addition to further development of the contract, I will also complete the basic client UI functionality that was not completed in the hackathon. Specifically:
Update all relevant UI elements to fit the new fardel data structure
Add approval mechanism for users that select that option for their fardels
Pagination of fardels, comments, followers, etc.
Full profile/registration functionality
Clean up the structure of the UI code (it was written in a hurry)
Once I have both parts, and I have done documentation, I will do some preliminary testing. Once I am happy with that then I will announce the testnet version for the community so they can start providing feedback.
Next steps (post-grant)
The UI can be further developed once the contract has been put on testnet. Additional features that need to be developed, but which are not covered by this grant, include the below. These are all features that should be in place prior to a wider product launch / promotion:
Development of templates for different types of Fardels with features such as automatic public tag recommendation, etc.
Creating an Elasticsearch index off-chain that drives search based on public contents of the fardels, and associated development of a search UI. Depending on the timeline of secret network upgrades, this might or might not utilize plaintext logging.
Integration of OpenPGP + upload to IPFS. (Do we host IPFS nodes?)
Simple tutorials on usage that are integrated into the UI.
Grant request
The funding that I am requesting is $20,000 USD equivalent in SCRT. Ideally, payments will be in 3 steps, one payment ($4,000) at the beginning of the grant, one payment ($8,000) after the bulk of the contract code is completed (as indicated by GitHub pushes, target May 31) and last payment ($8,000) when the UI integration work is completed (as indicated by GitHub pushes and testnet code announced, target June 30). These dates are subject to the start date of the grant.
I would be willing to consider part payment in SCRTs, up to 100%.
Comment on branding
Fardels is a working title and it is a nice metaphor imo, but I am not dead set on this name and open to feedback about alternatives. I am also not a graphic designer and it would be good to develop a proper logo, and have input from a designer on the look and feel of the website.
The text was updated successfully, but these errors were encountered:
Fardels: Privacy-preserving decentralized social network for sharing items of small value
Project Description
Ever since the creation of smart contracts there has been a promise of building new kinds of decentralized social networks. In practice what has been built have been impoverished clones of existing social networks (for example, EtherTweet) that lack key features, such as the ability to follow others. That is because most smart contract networks do not keep user data private. Plus, they have not innovated around the strengths of the blockchain to rethink the types of relations that the social network aims to foster.
With Fardels we aim to improve on both counts. By building on Secret Network, important aspects of user data can be kept private. And just as Twitter innovated around sharing short pieces of information, Fardels is designed to foster a culture of sharing digital items of small value.
A fardel is a bundle or collection of information that you carry to the decentralized web to share with others. The contents of a fardel can be a link to a file, an image, or even a short piece of text like the punchline to a joke. It is something others are willing to pay a small price to access (e.g., no more than 5 scrt), and because the price is low there is little risk in unpacking one. There are no limitations on what kinds of contents are shared. It can be a link to an immutable file on IPFS or a simple Dropbox link. Thus, the contents can be permanent on the blockchain or they can be ephemeral, copyable, deletable, sharable. You can think of them as anti-NFTs, because the content creator earns money based on the demand of the users to unpack the fardel, not because of its high value.
If the fardel was something that made you smile, that you found useful, or simply valued in some way then you can leave a positive comment and rate it up, so others will know it is something they might want to unpack as well. And if the contents are a let down or disappear (for example, it contains a link to a file that no longer exists), well... you can write a negative comment and rate it down. It didn't cost much so no great loss. Over time content creators who create quality content will get good ratings and will begin to gain social capital in the community. People will trust them and want to unpack more of what they have to offer.
Go-to-Market plan
We will draw on the active Secret Network community to refine development of the Fardels social network. Once we have done a test-run on the holodeck-2 testnet and incorporated feedback from the community, we will launch the contract on mainnet along with the UI.
The success of the social network will depend upon the users providing quality content. Therefore, it could be useful to identify existing content creators who can help to generate interest in the network. Twitter grew after a demo at SXSW-- a similar launch done well would be ideal. SXSW is in March which is a long time off, but there might be other venues that could showcase the app sooner depending on the development timeline. Under-the-radar growth until that time leading to a proper launch could be a good option to beta test the system.
Value capture for Secret Network ecosystem
Because SCRT is the foundation for all transactions on the social network, as the network grows it will create demand for SCRT, and it will provide value for validators and stakers. The social network can drive new adoption of Secret Network by people who have not invested much value upfront or who are even involved in crypto. For example, any content creator can create a Keplr wallet, carry fardels to the network, and start earning money. It might be useful to incentivize and kickstart usage of the network by, e.g., providing a small amount of SCRT to all new users of the social network (who agree to KYC) for a specified time period, so they can easily post a few things and try out the network.
How to make the project financially sustainable / profitable?
Once the contract and website have been deployed there will be need for continued development of UI features as well as maintenance of server architecture for hosting the client side (react app) and content indexes. Additionally, if successful, other UIs such as mobile apps will need to be developed. Thus, there needs to be a way to make the value capture for the secret network ecosystem also sustain the project. The following options are possible but need further development:
Small fee on all transactions that go back to project (perhaps for a fixed time period). This would require coding into the contract itself.
Paid UI features, e.g. advertising and promoted fardels, etc. (commercial focus)
Funding from Secret Foundation, others. (non-profit focus like Mozilla)
It is possible that we could create a SNIP-20 token for this project, but a big advantage to keeping everything SCRT is that it will drive adoption and avoid introducing an alphabet soup of tokens to users. That's fine for secret swap users but not casual users of the fardels network. Ideally, users should know about (or be introduced to) SCRT and have an easy way to convert it to and from fiat currency, and not require any additional knowledge about crypto. But I am happy to hear alternative suggestions.
Team member
Structure of the team
I have obviously started this project as an individual, and I have gotten some initial positive feedback from the community. If there seems to be broader interest in the idea, then one option I would consider is to incorporate a startup in New Zealand, which would become the formal entity developing this project. In addition, I would encourage others who are keen to be part of this project to get in touch. Women and minorities are especially encouraged to contact me if they are interested in being involved in this project, because Web 3 desperately needs more diversity and so do the engineering teams building our online social networks!
I would be happy to discuss options with the Secret Foundation regarding how the grant can be structured in that case, though perhaps for the sake of expediency it would make more sense to leave that for the second round of development (see "next steps" below).
Development Roadmap
An early first draft of the Fardels UI and contract was developed as part of the HackAtomRU hackathon. The repo can be found here: https://github.com/darwinzer0/fardels. The initial roadmap for this grant is for further development of the contract and UI integration. Once that has been successfully completed, a follow up grant application might be made that will focus on further UI and index development.
The goal is to have a fully working testnet version of the Fardels website ready for testing by the community on June 30, 2021. The work for this grant will be developed part-time for ~12 weeks. If the project is progressing well, then I will be able to devote more time after that date to work on a follow-up grant (or seek out other funding).
Contract development
For this grant I will revise the Fardels hackathon contract as follows (not an exhaustive list of changes):
A new generic data structure for a Fardel:
Add logic for optional sales approval (similar to secret markets)
Update storage of rating:
Update storage of comments, needs to be changed to an append store.
Add logic for blocking/unblocking accounts. This will allow users to block specific other users from unpacking their fardels, so that, e.g., they cannot post abusive comments.
Finish logic for sealing/unsealing fardels, including an automatic sealing time.
Add logic for getting fardels based on global id to facilitate off-chain indexing of public information. This will also require some revision to how comments are stored as well, so that the indexer can efficiently retrieve updates based on recent comments.
Add admin functionality:
Allow admin to change constants (e.g., max cost)
Option to set whether accounts can be banned. This will help to define the culture of the network: censorship resistant and unmanaged, or simply privacy-preserving and managed to help prevent selling of illegal material and stopping bad actors who widely share the fardel contents after unpacking, or try to sell it themselves. In those cases the admin would not have access to the private data of the user, but other users could report someone upon unpacking the fardel, and the user could be banned based on that. Such administration will also naturally incur much more of a maintenance overhead.
Possibly make some query functions only allowed for admin (using viewing key). E.g., getting fardels by global id for indexing. This will help prevent spamming of the contract.
Add logic/storage to export sale information/analytics to a user
New UI functionality
In addition to further development of the contract, I will also complete the basic client UI functionality that was not completed in the hackathon. Specifically:
Update all relevant UI elements to fit the new fardel data structure
Add approval mechanism for users that select that option for their fardels
Pagination of fardels, comments, followers, etc.
Full profile/registration functionality
Clean up the structure of the UI code (it was written in a hurry)
Once I have both parts, and I have done documentation, I will do some preliminary testing. Once I am happy with that then I will announce the testnet version for the community so they can start providing feedback.
Next steps (post-grant)
The UI can be further developed once the contract has been put on testnet. Additional features that need to be developed, but which are not covered by this grant, include the below. These are all features that should be in place prior to a wider product launch / promotion:
Development of templates for different types of Fardels with features such as automatic public tag recommendation, etc.
Creating an Elasticsearch index off-chain that drives search based on public contents of the fardels, and associated development of a search UI. Depending on the timeline of secret network upgrades, this might or might not utilize plaintext logging.
Integration of OpenPGP + upload to IPFS. (Do we host IPFS nodes?)
Simple tutorials on usage that are integrated into the UI.
Grant request
The funding that I am requesting is $20,000 USD equivalent in SCRT. Ideally, payments will be in 3 steps, one payment ($4,000) at the beginning of the grant, one payment ($8,000) after the bulk of the contract code is completed (as indicated by GitHub pushes, target May 31) and last payment ($8,000) when the UI integration work is completed (as indicated by GitHub pushes and testnet code announced, target June 30). These dates are subject to the start date of the grant.
I would be willing to consider part payment in SCRTs, up to 100%.
Comment on branding
Fardels is a working title and it is a nice metaphor imo, but I am not dead set on this name and open to feedback about alternatives. I am also not a graphic designer and it would be good to develop a proper logo, and have input from a designer on the look and feel of the website.
The text was updated successfully, but these errors were encountered: