{"signature": "0x0dbe7afddd75c6d9e782ac5e653aee006440994f49e6325b515537e681b2563c6bf06634c7041b558ace39742cd86ff73a127d4545d7c31da87faf5e36726aa81c", "application": {"round": "0x1b48bb09930676d99dda36c1ad27ff0a5a5f3911", "answers": [{"type": "email", "hidden": true, "question": "Email Address", "questionId": 0, "encryptedAnswer": {"ciphertext": "ThP+mAzMGs2ro4PU6NLa5olcPSJlccG/stvziOqFecZGxkxFy5EZaLgwEgUh1RQC", "encryptedSymmetricKey": "e93c47f0e970bbab4935d8b3d080693235937c4521c7ed88666818b19d0734a71f87a1b10bc3c70746b9da5ccc1c5f1066e024b6a9c7f022950b894cc1a118fc93f52f9236552c944582bcb9f20f4679792885287526d61ae4da2139c2ad858c33363b5dc958e1fdc65dd92de25dce13b216171bfb6a9ef95d6259a8e8e11a9700000000000000200044262689ece4680b0ac1cc904be9ac49be2ac46e5046a4096eaccc6e83d24576f2a7d4ed2a22fa10f49b67f40c3db0"}}, {"type": "short-answer", "hidden": true, "question": "Telegram Handle We Can Use To Contact You(you can answer N/A)", "questionId": 1, "encryptedAnswer": {"ciphertext": "29ZhCQVjE3HPpqTTn5ln5wjP3SKUuPz3mZdlHBdu5aM=", "encryptedSymmetricKey": "3f0d5c405fdd586329c711df67295e9c13c08eb1423051908c24881e0cc6ef26e1b2651ffcac95da4f18b9afdeddbc0ef6b975b1224605d0d0d936c26f8a2a6908c16e8befe339202dfe9184ccae08d0f0e667ae95be4a3e799c0b376f757da823602c9202cf0493818d59a9f863d4bc9f4732a2da28e80a24e975a822d3d0ba00000000000000206a869afd672a410173488607759936e39300a1cb26822092135315d113982738d3e9eade5e0dcf4ee2437e9cc67617a6"}}, {"type": "link", "answer": "https://github.com/metacontract/mc", "hidden": false, "question": "Project GitHub Repo (Not Team Page): ", "questionId": 2}, {"type": "number", "answer": "3", "hidden": false, "question": "Total Team Size", "questionId": 3}, {"type": "paragraph", "answer": "shogochiai - 0xee0B645Bb006d9bcE9227Ba53E31D117D533eF5c, kaihiroi - 0x9d88adfce3c035d48975e5df2fe9ad8d7fba597c, 0xHaku - 0x0f8d8cfe28f625676add0a373a81aff3a7ebeb87", "hidden": false, "question": "List the Github Handles and Wallet Addresses of Each Team Member (e.g. owocki - 0x123, kbw  - 0x456):", "questionId": 4}, {"type": "paragraph", "answer": "twitter.com/_sgtn", "hidden": true, "question": "Social profiles (Twitter, Farcaster, Lens, etc.) of other main team members publicly associated with the project (N/A for solo founders): ", "questionId": 5}, {"type": "link", "answer": "https://discord.gg/vQxqjvUSRV", "hidden": false, "question": "Link to your Public Group Chat (e.g. Discord or Telegram)", "questionId": 6}, {"type": "paragraph", "answer": "N/A", "hidden": false, "question": "If you've participated in past grant rounds, please share any new updates or milestones from the prior months (N/A if you haven’t participated previously). ", "questionId": 7}, {"type": "address", "hidden": true, "question": "If you participated in past grant rounds using a different project payout wallet address, please share it here:", "questionId": 8}, {"type": "paragraph", "answer": "GitHub Stars are our KPI for now.\n https://star-history.com/#metacontract/mc&Date\n\nUltimate goal indicator is gonna be deployed contract count on all EVM chains.", "hidden": false, "question": "Where should we look to see the impact of your project? Please provide links to public websites and/or the latest values for key metrics you track privately. This might be used in future impact reports", "questionId": 9}, {"type": "paragraph", "answer": "$0", "hidden": false, "question": "Total Prior Funding for the project in USD", "questionId": 10}, {"type": "checkbox", "hidden": false, "question": "Which of the following funding sources do you have? Check all that apply", "questionId": 11}, {"type": "number", "answer": "51", "hidden": false, "question": "How old (in Months) is the project?  ", "questionId": 12}, {"type": "checkbox", "answer": ["Asia"], "hidden": false, "question": "Location/Region where the project is based ", "questionId": 13}, {"type": "multiple-choice", "answer": "Yes", "hidden": true, "question": "Have you read and confirmed your grant abides by the Program General Eligibility Policy? ", "questionId": 14}, {"type": "multiple-choice", "answer": "No", "hidden": true, "question": "Are you applying for any other OSS rounds in GG20? (Reminder: you can only be accepted into one) ", "questionId": 15}, {"type": "paragraph", "answer": "This framework aims to seamlessly solve challenges associated with the initial development and operation of real-world Dapps. For example, it automatically generates integration handlers for indexers, minimizes indexer maintenance costs, reduces the implementation cost of upgrade mechanisms, and minimizes operational overhead. One of the issues that is difficult to articulate but definitely exists in actual smart contract development is that \"as smart contracts become more complex, high technical skills are required to continue safe and efficient development.\" The framework carefully selects and implements the necessary requirements to free many developers from this burden. As a result, developers only need to focus on the \"data schema and function set\" of their own protocol. Upgradeability, clone factories, indexers, and other features are hidden behind the framework, allowing developers to concentrate their thinking resources solely on the business domain they are trying to solve. Furthermore, this design pattern is compatible with the mental models of LLMs (Large Language Models), and GPTs are being developed to efficiently assist with design and implementation. Highly reusable schemas and functions are suggested through LLMs, ensuring an unprecedented development experience.", "hidden": false, "question": "Please describe the developer tool or library you're working on. How does it fit into the development environments, frameworks, or testing tools landscape for Web3? ", "questionId": 16}, {"type": "paragraph", "answer": "GitHub Stars are our KPI for now.\n https://star-history.com/#metacontract/mc&Date\n\nUltimate goal indicator is gonna be deployed contract count on all EVM chains.", "hidden": false, "question": "Please provide details on how you measure the adoption of your tool and/or library. Do you have metrics on usage, downloads, and installs?", "questionId": 17}, {"type": "paragraph", "answer": "The current Solidity DevOps process is a huge burden for developers, and we aim to abstract it away. Upgradeability, Clone Factory, and Indexer are to be autogenerated. The simplified codebase is quite LLM-friendly. The status quo of Solidity development and system architecture is based on class diagrams and sequence diagrams. However, meta contracts reframe it to focus only on the ER diagram schema. In other words, the struct tree of ERC-7201 and lambda-function-like business logic are the only requirements for a contract.\n\n# Details\n## Structure\nMeta-contracts are essentially bundles of smart contract functions that adhere to the ERC-7546 UCS. They are designed to operate within the constraints of the Ethereum Virtual Machine (EVM), optimizing for both efficiency and functionality. Each bundle can contain various functions that, when combined, fulfill a broader set of contract responsibilities.\n\n## Storage Schema\nThey utilize a structured and efficient way to manage contract state through a central storage layout, often detailed in a Schema library. This approach ensures that state variables are well-organized and accessible, reducing complexity and the potential for errors.\n\n## Upgradeability and Scalability\nBy employing the clone function methodology, meta-contracts allow for the creation of new contract instances (clones) that can utilize the same underlying logic without redeploying the entire codebase. This feature significantly enhances both upgradeability and scalability, allowing for adjustments and expansions to be made with minimal cost and effort.\n\n# Features\n## Modularity\nEach metacontract can be seen as a modular piece of a larger puzzle. Developers can mix and match different functions or bundles to create customized contract solutions that fit their specific needs.\n\n## Efficient Development and Testing\nThe structured approach to contract design simplifies both development and testing processes. Since meta-contracts encourage unit-test maximalism, developers can quickly test individual functions in isolation, speeding up the development cycle.\n\n## Reduced Deployment Cost\nThe ability to clone contracts allows for significant gas savings, as the underlying logic does not need to be redeployed for each new instance. Only the state-changing transactions associated with initializing or interacting with these clones incur gas costs.\n\n## Enhanced Organizational Structure\nThe use of libraries like StorageScheme.sol to centralize storage information helps in maintaining a tidy and organized codebase. This structure is beneficial for both ongoing development and future audits.\n\n# Merits of Meta-contracts\n## Upgradeability\nMeta-contracts facilitate easy and efficient upgrades. Modifications or improvements can be made to the contract logic without necessitating the redeployment of the entire contract, thus preserving the contract's address and state.\n\n## Cost-Efficiency\nThe cloning feature inherent to meta-contracts significantly reduces the cost associated with deploying new contract instances, making it a cost-effective solution for scalable projects.\n\nDeveloper Friendliness\nThe modular nature and structured storage approach make meta-contracts particularly appealing to developers, offering ease of development, testing, and maintenance.\n\n## Flexibility\nDevelopers can customize and extend the functionality of their contracts by adding, modifying, or removing function bundles as needed, without compromising the system's integrity or incurring excessive costs.", "hidden": false, "question": "How does your project address the need for secure and efficient smart contract development? If applicable, detail the library's features or capabilities that cater to this need.", "questionId": 18}, {"type": "paragraph", "answer": "TextDAO is a DAO implementation using metacontract.\nhttps://github.com/shogochiai/TextDAO\n\nAll those Schema and Functions are only focusing on DAO business logic and all upgradeability and cloning tricks are hidden inside. And these program are LLM supported. Deploy Script and Unit Tests are also quiet neat and quickly executable.", "hidden": false, "question": "Can you demonstrate how your tool or library significantly reduces barriers to development or enhances project efficiency in the OSS or Web3 ecosystems? Provide examples or case studies of your tool in action.", "questionId": 19}, {"type": "paragraph", "answer": "Indexer Auto-generation\nhttps://github.com/metacontract/indexer\n\nThis Rust-based embedded indexer reads your metacontract schema and aggregate relevant data to anywhere you want.\n\nYou don't need to write Subgraph and it'll scale as long as you need more aggressive decentralization.\n\nAs this indexer is read-only system and lower burden to maintain by small team, it can be run on with CloudFlare D1 instance or your UI hosting server.", "hidden": false, "question": "Anything else you'd like to share about your project, previous work, or other project affiliations? Is there anything you'd like to add that may help determine project eligibility?", "questionId": 20}, {"type": "multiple-choice", "answer": "No", "hidden": true, "question": "Would you like to opt-in to future messages from Gitcoin for updates, information, and/or interviews? ", "questionId": 21}, {"type": "multiple-choice", "answer": "Yes", "hidden": true, "question": "Would you like to opt-in to us sharing your information with select third parties for investment opportunities? ", "questionId": 22}], "project": {"id": "0xab34999c3f2f57350facd2ed23a5c994e0865cd58f2a149ad76c117e1e4dda88", "title": "Meta Contract", "logoImg": "bafkreihusj5famiqgptfkvz5ng67njxtyx5i5tmk3pmmwb2qasd6dqy32m", "metaPtr": {"pointer": "bafkreigr3c7aaxdgexlhhrcvts5enyrng6gmzmtbhdlgmdu5osfszybzcy", "protocol": "undefined"}, "website": "https://github.com/metacontract/mc", "bannerImg": "bafkreib27qxiglyqlv5igzgocs23iyiqzpzbimw3265sjbpvylg5vb2rqm", "createdAt": 1713171993071, "userGithub": "shogochiai", "credentials": {}, "description": "# TL;DR\nThe meta contract is a highly abstract framework based on ERC-7546 UC (Upgradeable Clone) that enables Solidity smart contract development with minimal overhead.\n\n# Overview\nThis framework aims to seamlessly solve challenges associated with the initial development and operation of real-world Dapps. For example, it automatically generates integration handlers for indexers, minimizes indexer maintenance costs, reduces the implementation cost of upgrade mechanisms, and minimizes operational overhead. One of the issues that is difficult to articulate but definitely exists in actual smart contract development is that \"as smart contracts become more complex, high technical skills are required to continue safe and efficient development.\" The framework carefully selects and implements the necessary requirements to free many developers from this burden. As a result, developers only need to focus on the \"data schema and function set\" of their own protocol. Upgradeability, clone factories, indexers, and other features are hidden behind the framework, allowing developers to concentrate their thinking resources solely on the business domain they are trying to solve. Furthermore, this design pattern is compatible with the mental models of LLMs (Large Language Models), and GPTs are being developed to efficiently assist with design and implementation. Highly reusable schemas and functions are suggested through LLMs, ensuring an unprecedented development experience.\n\n\n# Details\n## Structure\nMeta-contracts are essentially bundles of smart contract functions that adhere to the ERC-7546 UCS. They are designed to operate within the constraints of the Ethereum Virtual Machine (EVM), optimizing for both efficiency and functionality. Each bundle can contain various functions that, when combined, fulfill a broader set of contract responsibilities.\n\n## Storage Schema\nThey utilize a structured and efficient way to manage contract state through a central storage layout, often detailed in a Schema library. This approach ensures that state variables are well-organized and accessible, reducing complexity and the potential for errors.\n\n## Upgradeability and Scalability\nBy employing the clone function methodology, meta-contracts allow for the creation of new contract instances (clones) that can utilize the same underlying logic without redeploying the entire codebase. This feature significantly enhances both upgradeability and scalability, allowing for adjustments and expansions to be made with minimal cost and effort.\n\n# Features\n## Modularity\nEach metacontract can be seen as a modular piece of a larger puzzle. Developers can mix and match different functions or bundles to create customized contract solutions that fit their specific needs.\n\n## Efficient Development and Testing\nThe structured approach to contract design simplifies both development and testing processes. Since meta-contracts encourage unit-test maximalism, developers can quickly test individual functions in isolation, speeding up the development cycle.\n\n## Reduced Deployment Cost\nThe ability to clone contracts allows for significant gas savings, as the underlying logic does not need to be redeployed for each new instance. Only the state-changing transactions associated with initializing or interacting with these clones incur gas costs.\n\n## Enhanced Organizational Structure\n The use of libraries like StorageScheme.sol to centralize storage information helps in maintaining a tidy and organized codebase. This structure is beneficial for both ongoing development and future audits.\n\n# Merits of Meta-contracts\n## Upgradeability\nMeta-contracts facilitate easy and efficient upgrades. Modifications or improvements can be made to the contract logic without necessitating the redeployment of the entire contract, thus preserving the contract's address and state.\n\n## Cost-Efficiency\nThe cloning feature inherent to meta-contracts significantly reduces the cost associated with deploying new contract instances, making it a cost-effective solution for scalable projects.\n\n## Developer Friendliness\nThe modular nature and structured storage approach make meta-contracts particularly appealing to developers, offering ease of development, testing, and maintenance.\n\n## Flexibility\nDevelopers can customize and extend the functionality of their contracts by adding, modifying, or removing function bundles as needed, without compromising the system's integrity or incurring excessive costs.\n", "lastUpdated": 0, "projectGithub": "metacontract", "projectTwitter": "ecdysis_xyz"}, "recipient": "0xee0B645Bb006d9bcE9227Ba53E31D117D533eF5c"}}