devgrants
devgrants copied to clipboard
Open Grant Proposal: Portrait
Open Grant Proposal: Portrait
Name of Project: Portrait
Proposal Category: app-dev
Proposer: ryanshahine
Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT, APACHE2, or GPL licenses?: Yes, with some exclusions in accordance with the guiding policy, with a focus on the integration and adoption category. See individual deliverables. We do not exclude the possibility of open-sourcing the now excluded work in the future.
Project Description
The purpose of this document is to request an Open Dev Grant for the open-source development, design, and research by Portrait, with the core objective to add significant value to the Filecoin ecosystem. In this document, we will elaborate on the work that requires funding. This document will cover milestones that have been excluded from the previous grant, with the goal to be an element of this grant. In addition, complimentary milestones for Portrait have been added.
Portrait enables any Web3 enthusiast to create a custom decentralized website mapped to their blockchain address.
Portrait is built on top of the IPFS/Filecoin ecosystem with help from Estuary. All current developments have been funded by our previously accepted Open Grant. With only the Open Grant, we have been funding all progress realized today.
Portrait aims to contribute to a pro-privacy and censorship-resistant web. As these are sensitive topics, we consider those topics to be in conjunction with the reputation and success of Portrait. This led to abstaining from any form of investments or funding, in exchange for equity or direct influence on the project.
Portrait is driven by the idea of building a better web, a long-term vision. For this reason, we are requesting additional funding solely from the Filecoin Foundation. We believe that Portrait adds value to the Filecoin ecosystem and the Filecoin ecosystem adds value to Portrait: a bilateral relationship with shared fundamentals.
With the help of the previous Open Grant, we achieved the following:
- +-9000 beta tester applicants
- With sign-ups coming from:
- Protocol Labs
- Coinbase
- Binance
- Coindesk
- Goldman Sachs
- Unilever
- Oracle
- Accenture
- McKinsey
- Capgemini
- PWC
- Seagate
- Deloitte
- EY
- Verizon
- and more..
- With sign-ups coming from:
- +- 1800 Twitter followers
- Talks at FILAustin during Consensus2022 and at IPFSAmsterdam during DevConnect 2022.
Unfinished milestones that have migrated from our previous grant As discussed with the Filecoin Foundation team, unfinished milestones are migrated to this grant.
- Implement NFT API Indexer
- Implement the possibility to add and publish multiple web pages
- Component: NFT Showcase
- Component: Option to buy/sell NFTs
- Component: Interact with smart contracts
- Feature: Implement additional elements with public keys/identities (Like a Portrait + trending page based on likes)
New product milestones
- IPFS Gateway fetcher hosting services from multiple gateways
- Introduction of themes (UI/UX)
- Access control by NFT (Access control on app level)
- Beta programme onboarding tool (Onboarding 8700+ beta users)
- Upgrading on-chain version/state registry
- Solution to handle compromised private keys to prevent bad actors from imitating the owner
- Researching collective access control over a Portrait through forming a DAO
- Researching and testing the ability of (fractionalized) ownership of a Portrait
- Building a solid (pen) test environment for Portrait
Value
With over 8000 individuals signed up for the closed beta list, Portrait has the potential to become one of the most impactful start-ups in terms of general adoption in the Filecoin ecosystem.
The challenge for Portrait is to handle a large number of users efficiently and have a secure system. Security is one of the new milestones and focuses of Portrait. We will also upgrade our server hardware for this matter.
Deliverables
Unfinished milestones that have migrated from our previous grant
As discussed with the Filecoin Foundation team, unfinished milestones are migrated to this grant.
Implement NFT API Indexer ($9,000) The NFT API Indexer will be used to index all NFTs requested through Portrait. This will be used to display the NFTs on a user's Portrait. The indexer will be built in Javascript and will be hosted on our servers. The indexer will act as a caching layer to prevent unnecessary requests to either third-party APIs or the Ethereum blockchain. This will be a crucial requirement for the NFT Showcase component. If a user has ten NFTs, the indexer will be able to retrieve all the data for those NFTs in one request. We will store the data in a centralized database. The indexer will be released as open-source under AGPLv3 as we believe it can be used by other projects but only if they are open-source as well. Our back end implementation will not be open-source as we believe it is a security risk to do so. However, we will be happy to share our implementation with the Filecoin Foundation team. The indexer requires some extensive testing and will be tested with a large amount of NFTs. In addition, the technical aspect of the indexer will be documented in a blog post with the goal to educate the community on handling a large dataset efficiently. The key deliverable and focuses of this milestone are:
- Technical solution research for handling a large amount of NFTs and storing them in a database -- ($3,500)
- Back end development of the indexer -- ($4,500)
- Back end testing: stability and security -- ($1,000)
Implement the possibility to add and publish multiple web pages - ($15,000) As Portrait is currently in beta, we only offer single-page Portraits. We will implement the possibility to add and publish multiple web pages. The notion of introducing multiple pages adds a complex layer to the current architecture. In order to achieve this, we will need to redesign the entire cryptographic architecture behind Portrait along the database structure and the front end. The back end implementation will not be open-source as we believe it is a security risk to do so. However, we will be happy to share our implementation with the Filecoin Foundation team. All other deliverables will be dual licensed under AGPLv3 and MIT. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($4,000)
- Design - ($2,000)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($4,000)
- Back end testing: stability and security -- ($2,000)
- Front end development -- ($2,000)
- Front end testing: stability and security -- ($1,000)
Component: NFT Showcase ($6,000) This is the development implementation of the NFT showcase design completed during the previous milestone. It is purely focused on development. The front end implementation will not be open source. However, we will provide a write-up and documentation on how to create a front end with the NFT indexer.
- Front end development -- ($4,000)
- Front end testing: stability and security -- ($2,000)
Component: Option to buy/sell NFTs - ($14,500) Portrait focuses on offering decentralized websites through the Filecoin network. In order to satisfy the notion of a "decentralized" website, we look further than only storage. Interaction through self-sovereign identity is a crucial element of a decentralized website. We will implement the option to buy/sell NFTs on a Portrait. The NFTs will be displayed on the Portrait through the NFT API Indexer, a milestone of this grant. Smart contracts will be released under MIT. The key deliverables and focuses of this milestone are:
- Technical solution research focused on minting NFTs -- ($2,000)
- Smart contract development -- ($4,500)
- Smart contract testing: stability and security -- ($2,000)
- Design mint NFT component -- ($2,000)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($500)
- Back end testing: stability and security -- ($500)
- Front end development, minting NFT -- ($2,000)
- Front end testing: stability and security -- ($1,000)
Component: Interact with smart contracts - ($17,000) In addition to the option to buy/sell NFTs, we will implement the option to interact with most arbitrary smart contracts. This requires research and development on the back end and front end. In practice, this means that a user may add a custom smart contract to their Portrait. The smart contract will be displayed on the Portrait with the necessary input fields to interact with the smart contract. The research will be released under a dual license of AGPLv3 and MIT. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($5,000)
- Design -- ($4,500)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($1,500)
- Back end testing: stability and security -- ($1,000)
- Front end development -- ($4,000)
- Front end testing: stability and security -- ($1,000)
Feature: Implement additional elements with public keys/identities (Like a Portrait + trending page based on likes) - ($13,000) This will be an element that focuses on social interaction and will aim to build a social layer around Portraits. We will implement a trustless way to "upvote" a Portrait. The behavior of the upvote will be similar to the current behavior of the like button. As we will be using public key cryptography, it will be impossible to fake an upvote. With this feature, we will also implement a trending page which will be based on the number of upvotes a Portrait has received. The research of this feature will be released under a dual license of AGPLv3 and MIT. In addition, we will write a blog post on the technical aspects of this feature. The trending page will likely be the new landing page of Portrait. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($2,000)
- Design -- ($3,500)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($2,000)
- Back end testing: stability and security -- ($1,000)
- Front end development -- ($3,000)
- Front end testing: stability and security -- ($1,500)
New product milestones
During the development, user feedback and research we concluded additional milestones are needed in order to build out a working product of Portrait. These milestones are in addition to the unfinished milestones. One of the major milestones
IPFS Gateway fetcher hosting services from multiple gateways - ($2,700) At Portrait we have seen that most IPFS gateways are not reliable. We have seen that the gateway of Estuary is the most reliable. We want to fetch the data from multiple gateways and use the fastest one. This will improve the performance of the app. However, we believe that the entire IPFS/Filecoin ecosystem will benefit from this. We will open-source this code and make it available to the community. In addition, we will host this code on our own servers. This will be a service to the community. The code will be dual-licensed under MIT and AGPLv3. In terms of costs, the initial amount of $2000 is for the development of the code. The maintenance of the code and hosting costs might be funded by the community or sponsored by the Filecoin Foundation. For now, we will not include the maintenance and hosting costs in this grant and will cover those costs ourselves. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($500)
- Back end development -- ($1,700)
- Back end testing: stability and security -- ($500)
Introduction of themes (UI/UX) - ($24,000) In order to offer a better user experience, we will introduce themes. This will allow users to choose a theme that fits their needs. We will offer a default theme and two additional themes. With themes, the user will have more creative freedom. The themes will be designed in Figma and will be available for the community to use. The themes will be dual-licensed under MIT and AGPLv3. Introducing themes to the existing applications create some technical challenges that need to be solved. This will be the focus of the development. The design and front end will be done by Giliam. Ryan will implement the back end and will focus on the technical solution research. The design will be tested by the team and optionally the community. For security reasons, we will not share the exact back end implementation. However, we will share the technical solution research and the design. The design will be shared in Figma. The technical solution research will be shared in a blog post. The design and technical solution research will be dual-licensed under MIT and AGPLv3. The key deliverable and focuses of this milestone are:
- Technical solution research for themes -- ($4,000)
- Design -- ($5,000)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($5,000)
- Back end testing: stability and security -- ($2,500)
- Front end development -- ($5,000)
- Front end testing: stability and security -- ($2,500)
Access control by NFT (Access control on app level) — ($16,000) We will implement access control by NFT. This will allow roles and functionalities to be assigned to individual users. This must be done in a decentralized and trustless way. We will implement this feature in a way that it can be used by other applications. The research will be released under a dual license of AGPLv3 and MIT. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($3,500)
- Smart contract development -- ($2,500)
- Smart contract testing: stability and security -- ($1,000)
- Design -- ($3,000)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($2,000)
- Back end testing: stability and security -- ($1,000)
- Front end development -- ($2,000)
- Front end testing: stability and security -- ($1,000)
Beta programme onboarding tool (Onboarding 8700+ beta users) — ($17,000) In order to onboard the beta users, we will create a tool that will allow us to onboard the beta users. This tool will be a web app that will allow us to onboard the beta users. With the tool, we create a threshold for the beta users. This will allow us to onboard the beta users in a controlled manner. The threshold will mitigate the risk of the beta users abusing the system. The tool should also benefit the community and the Filecoin ecosystem. We will open-source the tool and make it available to the community. The tool research + design will be dual-licensed under MIT and AGPLv3. The smart contracts will be released under MIT. The back end will not be released. However, we will share the technical solution research. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($2,000)
- Smart contract development -- ($2,000)
- Smart contract testing: stability and security -- ($1,000)
- Design -- ($4,000)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($2,000)
- Back end testing: stability and security -- ($1,000)
- Front end development -- ($3,000)
- Front end testing: stability and security -- ($2,000)
Upgrading on-chain version/state registry — ($18,000) As of now, we publish a fresh contract for every user. We store the transactions of all contracts in a centralized database. This does not align with the vision of the decentralized ecosystem. We will upgrade the on-chain version/state registry. This will allow us to store the transactions on-chain in one contract. This will also allow us to upgrade the contract in the future. The contract will be similar to the ENS registry contract, to give an idea of the complexity. With this vision, we are sure that the contract will be scalable. The research and contract will be released under MIT. It is likely that some back end and front end development is involved in order to adopt the new logic. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($5,000)
- Smart contract development -- ($6,000)
- Smart contract testing: stability and security -- ($3,000)
- Back end development -- ($1,000)
- Back end testing: stability and security -- ($1,000)
- Front end development -- ($1,000)
- Front end testing: stability and security -- ($1,000)
Solution to handle compromised private keys to prevent bad actors from imitating the owner — ($14,000) Public keys have one major flaw. If the private key is compromised, the public key can be used by the attacker and being used to impersonate the owner. This is a major issue for Portrait. We will research a solution to mitigate this issue. The solution will be released under MIT. It is possible to say that the solution requires on-chain proofs. The challenge is to find a solution that is scalable and does not require any gas. The key deliverables and focuses of this milestone are:
- Technical solution research -- ($3,000)
- Smart contract development -- ($3,000)
- Smart contract testing: stability and security -- ($2,000)
- Design -- ($2,000)
- Design UI/UX research
- Design low-fidelity
- Design high-fidelity (prod. ready)
- Design testing
- Back end development -- ($1,000)
- Back end testing: stability and security -- ($1,000)
- Front end development -- ($1,000)
- Front end testing: stability and security -- ($1,000)
Researching collective access control over a Portrait through forming a DAO — ($41,500) This is a research and development milestone. This milestone focuses on user roles and access control over a collectively controlled Portrait. This milestone focuses on the user experience: (1) what is the best way to define a DAO? (2) What kind of rules are required? (3) What kind of rules should be optional? (4) What kind of rules should be dynamic vs. which rules should be constant?
A user will be able to form a DAO through the Portrait user interface. In accordance with our vision, this will be a non-technical and easy-to-use solution. Users will be able to pin the metadata of the DAO to IPFS/Filecoin. A Portrait will be controlled by the DAO. The DAO will be able to assign roles to users. The roles might be owner, admin, editor, or viewer. The owner will be able to assign roles to users. The admin will be able to assign roles to users. The editor will be able to edit the Portrait. The viewer will be able to view the Portrait.
As a DAO is a smart contract, a DAO might be able to control multiple Portraits. As the Portraits controlled by a DAO will be a DAO by itself, there is this recursive and endless nature. In addition, a DAO can own a .eth domain, which links to a Portrait.
One main objective of this research is to implement the FVM into DAO's to be able to collectively handle storage.
The research and development will be released under MIT. The smart contracts will be released under MIT.
This is an extensive research and design milestone.
The key deliverables and focuses of this milestone are:
- Solution research -- ($14,500)
- User research
- What kind of DAO's are users interested in?
- DAO research
- DAO research: what is the best way to define a DAO?
- DAO research: what kind of rules are required?
- DAO research: what kind of rules should be optional?
- DAO research: what kind of rules should be dynamic vs. which rules should be constant?
- Technical solution research
- Implementing the FVM into DAO's
- Implementing ENS into DAO's
- User research
- Smart contract development -- ($10,000)
- Smart contract testing: stability and security -- ($5,000)
- Design -- ($12,000)
- Design UI/UX research -- ($2,500)
- Design low-fidelity -- ($2,500)
- Design high-fidelity (prod. ready) -- ($6,000)
- Design testing -- ($1,000)
Researching and testing the ability of (fractionalized) ownership of a Portrait — ($46,000) This is a research and development milestone. We will research the ability of fractionalized ownership of a Portrait. We will research the technical solution. At the end of this research milestone, we will have a clear idea of the future development implementation of this milestone. We will have a testable implementation that we can offer to specific users on request. The research will be released under MIT. This milestone, in conjunction with the previous milestone, is the most important milestone of the grant. Fractionalized ownership goes beyond building a personalized website. It is a way of owning dynamic digital assets or equity. For Portrait, this will be the major focus of the project which will be released after the beta.
The key difference between this milestone and the previous milestone is that this milestone will focus on handling fractionalized ownership from a technical aspect. The previous milestone will focus on establishing collective access control: think of this as forming a DAO. However, enforcing and defining these roles is highly dependent on the technical solution of this milestone. Adding the smart contract logic to the front end and back end is a large part of this milestone. We will open source the smart contracts and the technical solution. The smart contracts will be released under MIT. The technical solution will be released under MIT. The back end and front end will not be released for security reasons. However, we will provide example code to the community.
The key deliverables and focuses of this milestone are:
- Technical solution research — ($14,500)
- Smart contract development — ($11,500)
- Smart contract testing: stability and security — ($4,000)
- Back end development — ($6,000)
- Back end testing: stability and security — ($1,000)
- Front end development — ($8,000)
- Front end testing: stability and security — ($1,000)
Building a solid (pen) test environment for Portrait — ($4,000) For security and efficiency reasons, we will adopt a test-driven development methodology. This will make overall development more efficient and secure. We will build a solid test environment for Portrait. This will be a test environment that will be used for all future development. An article with a detailed explanation of the test environment will be published. The test environment will be released under MIT.
- Technical solution research — ($1,000)
- Back end development — ($2,000)
- Back end testing: stability and security — ($1,000)
Development Roadmap
Q4 2022 | |
---|---|
Beta programme onboarding tool (Onboarding 8700+ beta users) | $17,000 |
Upgrading on-chain version/state registry | $18,000 |
Solution to handle compromised private keys to prevent bad actors from imitating the owner | $14,000 |
Access control by NFT (Access control on app level) | $16,000 |
Implement NFT API Indexer | $9,000 |
IPFS Gateway fetcher hosting services from multiple gateways | $2,700 |
Feature: Implement additional elements with public keys/identities (Like a Portrait + trending page based on likes) | $13,000 |
Introduction of themes (UI/UX) | $24,000 |
Component: NFT Showcase | $6,000 |
Total | $114,300 |
Q1 2023 | |
---|---|
Building a solid (pen) test environment for Portrait | $4,000 |
Component: Interact with smart contracts | $17,000 |
Component: Option to buy/sell NFTs | $14,500 |
Researching collective access control over a Portrait through forming a DAO | $41,500 |
Total | $77,000 |
Q2 2023 | |
---|---|
Implement the possibility to add and publish multiple web pages | $15,000 |
Researching and testing the ability of (fractionalized) ownership of a Portrait | $46,000 |
Total | $61,000 |
Total Budget Requested
$252,300 -- See development roadmap
Maintenance and Upgrade Plans
Continuous maintenance + upgrades with the expansion of the Portrait team are on the horizon.
- Writing scalable and modular software
- Keeping overall overhead and deployment costs as low as possible, without compromising the quality.
Team
Team Members
The Portrait team has been working together on several projects for over 8 years. We iterate quickly and have a dynamic mindset.
Ryan Shahine CEO + Product @ Portrait Technology Inc.
- Active in blockchain industry since 2017
- Worked for Distributed Ledger Technology Lab @ ABN AMRO Bank
- Built pilot assignment for Rabobank
- BSc thesis in mitigating the power of centralized marketplaces, assisted by Carson Farmer from Textile.
Giliam Verheide CTO + Design @ Portrait Technology Inc.
- Active in blockchain sphere since 2015
- Front-end developer: React Next.js
- Worked for (among others) DEPT and Yummygum
- Won ARK wallet design competition in 2020
- Selected for the T500 in 2017, 2018, and 2019: The definitive list of the Netherlands' top 500 most inspiring under 26s across all fields of digital.
Team Member LinkedIn Profiles
Team Website
Relevant Experience
- Portrait received an Open Grant before.
- Portrait received the runner-up prize for Browsers3000.
- Portrait team had a talk at FILAustin 2022 and IPFSAmsterdam 2022.
Additionally:
Team code repositories
Our GitHub organization has some publicly available repos. Core code is currently not open to the public. Access may be granted when needed. Feel free to reach out.
Additional Information
Feel free to reach out to us through Slack. We are in the Filecoin Slack. Usernames are known by the team.
Hi @ryanshahine, thank you for your proposal! Can you briefly explain how beta sign-ups are being received? Also, are you able to share a link to the beta platform?
Hi, @ErinOCon. Up until last week, the beta sign-up form was located on our landing page. We will be onboarding users through the onboarding tool, as described above. The beta app is located at beta.portrait.gg. A user's Portrait is located at beta.portrait.gg/{ethereumaddress} or beta.portrait.gg/{ensdomain}.
Hi @ryanshahine, thank you for your patience with our review! We will not be moving forward with this second award at this time, but are very pleased to see your work progress through PL's accelerator program. Happy building!