metadata: {"signature": "0x0112581f62ab4ad7b1a9b44d1cb331d22964cfb30c1bac03df2f4e2024cdd578419f037d0e2c8a719039994fde798a89eb07f3f9fac4e130d55945b6506f117b1b", "application": {"round": "0xd2d99614321becd7cd0636715bbb4c94968e6271", "answers": [{"type": "email", "hidden": true, "question": "Email Address", "questionId": 0, "encryptedAnswer": {"ciphertext": "7ICsMvwz4bpelR9eRc9LzbOIg/DNsi5FugZlzHdK9VeIheQAKN/IdPzrOKRYQue/", "encryptedSymmetricKey": "b0c1fd99fe8f10796ea5b598c3aab1faa84db70633841c88e8d2f5a194e543153c92013166f3478dbecfb1cf4c69a0134b8623f4167d08479db5a73092a0332d888baf748d5dae97e55cbae3404a841fd0d8490104c6ed709706d702da6e97a18fd452be140eac5e2415ded121273cc350e8f5804d1aa5513f50baf8247cda350000000000000020fe26e4f2488f0883cbac85013fcfb8ad41565d595ee6e219eacb2ee4d0d1c1fd9786b787d21f3039c32bde1d902b57b7"}}, {"type": "short-answer", "answer": "devinaconley", "hidden": true, "question": "Telegram Handle", "questionId": 1}, {"type": "short-answer", "answer": "https://github.com/devinaconley/python-frames", "hidden": true, "question": "Project GitHub Repo", "questionId": 2}, {"type": "short-answer", "hidden": true, "question": "Link to your Public Group Chat", "questionId": 3}, {"type": "short-answer", "answer": "https://builder.gitcoin.co/#/chains/42161/registry/0x/projects/0x82bf0d1cd9a7bc7a7f61c6b996de8f268830380ccf3cfb9d67f07fa1b000826c", "hidden": true, "question": "Have you participated in a previous Gitcoin Grants Round? If so, please name the rounds or link the builder profile associated with previous rounds.", "questionId": 4}, {"type": "paragraph", "answer": "building an application to render farcaster frames that are compliant to specifications, dynamic, and rich in capabilities can become a very complex problem\n\nframelib abstracts this problem away into simple tangible examples and a few lines of code in a user friendly language\n\nnotably, there are no other solutions to easily build frames with python! ", "hidden": true, "question": "Provide a brief overview of your tool, library, or framework. What specific problem or inefficiency in the development process does it address?", "questionId": 5}, {"type": "paragraph", "answer": "framelib is a lightweight library for building farcaster frames with python\n\nit allows developers to quickly and easily create and deploy frame apps for the farcaster ecosystem using python + flask + vercel\n\nit is published on pip repositories for simple installation into third party codebases\nhttps://pypi.org/project/framelib/\n\nthe source code itself is hosted here for visibility and collaboration\nhttps://github.com/devinaconley/python-frames\n", "hidden": true, "question": "How does your project reduce development barriers, improve efficiency, or enhance the security of Web3 projects? Please provide specific examples or metrics if available.", "questionId": 6}, {"type": "paragraph", "answer": "framelib has been adopted by a meaningful number of developers across the desoc ecosystem. Metrics to track this\n\n_github stars/used by_\n\nhttps://github.com/devinaconley/python-frames\n\n_install stats_\n\nhttps://pypistats.org/packages/framelib\n", "hidden": true, "question": "Describe the current usage and support for your tool within the developer community. This could include GitHub stars, downloads, or testimonials from developers.", "questionId": 7}, {"type": "paragraph", "answer": "Any received funds will primarily be used to support development hours for continued expansion of new features and ongoing maintenance. Additionally some portion will be used to pay compute bills for demo application deployments (already live)", "hidden": true, "question": "Outline your project's roadmap and how the grant funds will be used to achieve your development goals.", "questionId": 8}, {"type": "paragraph", "hidden": true, "question": "For any project deploying smart contracts on blockchain networks, please list all your deployer addresses and their corresponding blockchain networks. Use this format for each entry: [deployer_address], [chain_id]\u2014for example, 0x123abc..., 42161 (This represents a deployer address on the Arbitrum network). Please include a separate line for each unique deployer address and blockchain combination.", "questionId": 9}], "project": {"id": "0x82bf0d1cd9a7bc7a7f61c6b996de8f268830380ccf3cfb9d67f07fa1b000826c", "title": "framelib", "logoImg": "bafkreid7oz2t6w5xvipjaglt4s52qz2s23e6k6dk63t4gjbixmpizxbjba", "metaPtr": {"pointer": "bafkreihescdno5ssdje4gjaajamreyvjn67zo7wm6ksvri7sbsjtlttepy", "protocol": "undefined"}, "website": "https://github.com/devinaconley/python-frames", "bannerImg": "bafkreidojwgxib2dcldl3kpbhcoe3luyvrgg4wr2afddhnlclbldiayzwe", "createdAt": 1713266785941, "userGithub": "devinaconley", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..p-wfzfWGiFhlAx2VR1H7uIsolNyEP7LipWfGLMV6BnwMATV-xuOM-nLpTcyPgsfJVIc8oVjwg0h7DEoSdm3-CQ", "type": "Ed25519Signature2018", "created": "2024-04-16T11:49:40.964Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-04-16T11:49:40.963Z", "expirationDate": "2024-07-15T11:49:40.963Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xF58Dea7581b336582b806C99A9bc6C36363cE85b", "hash": "v0.0.0:F+VkoTotS5ZsroXjeysylRU86dQS5hD9eFitz2YjpKg=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#framelib#15223693"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..GSOJNJBRf8GT27FRtae1y7ETjq5SwCX3zgKga4kXxIn9V01udz7BbTHCaSQu0gXolVsb30hUfvTgAbzZORMOBg", "type": "Ed25519Signature2018", "created": "2024-04-16T11:43:04.671Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-04-16T11:43:04.671Z", "expirationDate": "2024-07-15T11:43:04.671Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xF58Dea7581b336582b806C99A9bc6C36363cE85b", "hash": "v0.0.0:a+s2XNG/rQxBzs4WMfA+WEAThdegI20Fef0jCE2kMkI=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#devinaconley"}}}, "description": "framelib is a lightweight library for building farcaster frames using python and flask\n\nfeatures\n- easily render frames that conform to the farcaster specification\n- configurable frame design\n- parse frame action messages\n- verify the frame action signatures using neynar\n- query user profile info from warpcast\n- on-chain frame transactions\n- multiple example apps\n\nfirst introduced here (most related conversation is on farcaster) \nhttps://warpcast.com/conley/0xf931ba52", "lastUpdated": 0, "projectGithub": "framelib", "projectTwitter": "devinaconley"}, "recipient": "0xA4A0898C091574a8ea4Fa7d7B06493b524dB025a"}}