LIT-Protocol / LitGrants

Apply for a Lit grant and be part of the Lit ecosystem!
25 stars 2 forks source link

Small Grants: Streamlit Lit Protocol Components #14

Closed smejak closed 1 year ago

smejak commented 1 year ago

1. What is your project? (max 100 words)

This project aims to integrate Lit Protocol in reusable Streamlit components. Streamlit is an open source package for creating demos with machine learning models in Python. The Lit Protocol integration will build on an existing projects adding Web3 components to Streamlit, allowing data scientists to monetize their machine learning models and creators to quickly build token-gated applications. https://github.com/AlgoveraAI/streamlit-metamask

2. How is Lit used for this project? (max 100 words)

Lit Protocol is used as the access control layer to various content displayed in Streamlit apps. This integration will add a number of Python components that developers can use to build token/NFT/wallet-gated apps. The project will import Lit Protocol on the server-side of Streamlit which is abstracted away for the end user (who only uses the Python library). We aim to integrate the full functionality of Lit Protocol into a number of Streamlit components that allow different levels of abstraction and composability.

3. How will you improve your project with this grant? What steps will you take to meet this objective? (max 200 words)

The Streamlit-Metamask project aims to provide a suite of open source tools for building AI products in Web3. The integration of Lit Protocol will add the opportunity to implement different monetization schemes on top of AI apps, as well as increase the overall usage of Streamlit apps in production. Deliverables:

  1. Add button for arbitrary NFT access control to a part of the Streamlit app The developer will need to specify the NFT address and the chain in a Python function rendering an “authenticate” button. If the response is valid, Streamlit will reveal hidden content (e.g. access to AI model inferences, data, API key, etc.)
  2. Add button to mint an authentication NFT The developer will be able to specify the price of an NFT gating access to some part of the Streamlit app and thus monetize their models.
  3. Create a demo Streamlit app showcasing the functionality of the new components
  4. Add docs and tutorial on the usage of the Lit Protocol components

4. Is this project open source?

Yes, MIT License.

5. Do you agree to share grant reports upon request, including a final grant report at the end of the two month period?

Yes.

6. Links and submissions

Project GitHub repository: https://github.com/AlgoveraAI/streamlit-metamask Algovera Website: https://algovera.ai/

7. Total Budget Requested

Additional questions:

Jakub Smékal (project lead) jakub.smekal@gmail.com https://github.com/smejak Data Scientist, Full Stack Developer

Hithesh Shaji kunnelsh@tcd.ie https://github.com/hithesh98 Full Stack Developer

Richard Blythman richardblythman@gmail.com https://github.com/richardblythman Data Scientist

Mohamed Arshath marshath@gmail.com https://github.com/moarshy Data Scientist, Full Stack Developer

debbly commented 1 year ago

Hi @smejak, we're into this proposal and would like to move forward - can you break down the proposal into 2-3 milestones?

smejak commented 1 year ago

Hi @debbly, thanks a lot for the response! The specific milestones are described above under deliverables (with some comments under 1. and 2.):

  1. Add button for arbitrary NFT access control to a part of the Streamlit app
  2. Add button to mint an authentication NFT
  3. Create a demo Streamlit app showcasing the functionality of the new components
  4. Add docs and tutorial on the usage of the Lit Protocol components

Is there anything I should expand on?

debbly commented 1 year ago

A breakdown I see with the funding: Milestone 1 will cover points 1 & 2, Milestone 2 will cover 3 & 4.

Funding to be released once each milestone is completed. Lit Protocol integration code to be open sourced.

One last question from me: how will your abstraction handle keeping track of the symmetric keys that are needed to encrypt and decrypt using Lit?

smejak commented 1 year ago

Hey @debbly, I think it would probably make sense to have the milestones as:

so as to make the workload more even between the milestones. Let me know what you think.

Regarding your question, I'll probably have a more concrete answer for you once I finish the initial version of the integration, but right now I'm thinking the component should still allow the developer of the Streamlit app to specify how to keep track of the keys, even from the Python abstraction, would love to hear your opinion on this.

debbly commented 1 year ago

@smejak I like allowing the flexibility for a developer to specify how to keep track of the keys

debbly commented 1 year ago

We'd also like to fund your grant! Our team will reach out with more details on contract + getting your payment info :)