metadata: {"signature": "0xe447602c63ef49540dc09ff89e80d2608ad84e5908d5f8082eeb2950abccf844597c4c4d959ec6f2868f34ab8f653c6947d26ec99da182a9281feff42a4faf1d1c", "application": {"round": "0xd2d99614321becd7cd0636715bbb4c94968e6271", "answers": [{"type": "email", "hidden": true, "question": "Email Address", "questionId": 0, "encryptedAnswer": {"ciphertext": "L3leRdS1s9jA099u9Z3qbuTp1Yg1bUdFr1n39h8t8CCkpUPtijf11b7E/FCiCpuc", "encryptedSymmetricKey": "cc48ea22a5205c57d9a101ef9e86e79f908310b6685a7eb98b238ae062f656d347d7ee6f0066687c79cdc1e391dd670c63e38d34357002111278dac41fd2fbd17dfe7127df00d65043e85117a9b518ac6179fa3eb3e76e4aa5902093248c8ca2154bd73a0593beaa4f9698dd2b89cb1cb92ae10f1d46fcb7316272ed8174e67a0000000000000020f354b3f59a0844dd2896f56e523128e72fc462f8f5ef9267f1a16f625b0bf45d40a853664b7109c218b455f3a5bff998"}}, {"type": "short-answer", "answer": "nhltvn", "hidden": true, "question": "Telegram Handle", "questionId": 1}, {"type": "short-answer", "answer": "https://github.com/usecannon/cannon", "hidden": true, "question": "Project GitHub Repo", "questionId": 2}, {"type": "short-answer", "answer": "https://discord.gg/aS84FjYc", "hidden": true, "question": "Link to your Public Group Chat", "questionId": 3}, {"type": "short-answer", "answer": "", "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": "Cannon is a DevOps tool that enables an Infrastructure-as-Code pattern for protocol deployments on local nodes for development and live blockchains. \n\nProtocol development has become significantly more complex than writing individual, immutable smart contracts. The use of proxies and routers to build protocols of unlimited sizes and upgrade them has become necessary to build novel onchain products. Upgrades need to be throughly tested by engineers and reviewed by multiple parties for signature. Protocols also typically integrate with existing protocols and tokens, which need to deployed locally and configured for testing during development. Plus, given the proliferation of L2s, cross-chain engineering means this work can quickly multiply across many chains.\n\nManaging all of these concerns\u2014developer operations\u2014can become more time consuming and critical for a project\u2019s success than the engineering of the smart contract code involved. Cannon is a comprehensive tool that supports a protocol\u2019s entire lifecycle (including development, testing, deployment, upgrades, and configuration) across an arbitrary number of chains.", "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": "Rather than manually tracking the state of a protocol and writing one-off deployment scripts to execute changes, Cannonfiles serve as deployment plans which specify the desired state of a chain. Deployments using Cannon result in a package of data. If a change is desired, a Cannonfile can be modified and Cannon will automatically determine the transactions that need to be executed to \u201cbuild\u201d the chain into the desired state. Packages can also be \u201ccloned\u201d by Cannonfiles to easily redeploy entire protocols on a local node for testing or to a live chain.\n\nCannon has been used to deploy thousands of smart contracts across Ethereum and its L2s. At the time of writing, 1,095 were deployed to Arbitrum One using Cannon, 3,020 to Reya Network (an Arbitrum Orbit chain), 3,813 to Base, 880 to Optimism, and 1,078 to Ethereum mainnet.\n\nThe deployment data pertaining to these smart contracts and more have been published to Cannon\u2019s registry in over 2,000 packages for over 180 different projects. (Notably, over half of these packages were published in just the last 3 months.)", "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": "Cannon has seen significant growth in adoption since its inception at the ETH Denver hackathon in 2022. (This is despite a significant decline in monthly active crypto developers since then, according to Electric Capital.)\n\nCannon\u2019s command-line interface is exceeding 4,700 weekly downloads according to npm, the GitHub repository boasts over a hundred stars, and over a hundred members have joined its Discord server.\n\n\"today i worked 4 hours to deploy 30 markets and 2 new collaterals, this is unthinkable in the old days... thank you guys for making a first of class product, that a brainlet like me can utilize to deploy stuff fast\"\n\n\"used cannon with a couple of teams we invested in to manage technical multisig upgrades. Very neat, surprising its not used by more teams\"", "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": "Cannon contributors are largely focused on improving the developer experience for its core functionality: protocol deployments and upgrades using the command-line interface and web app. A redesign is underway, including updated guides for developers new to Ethereum plus more guides for advanced engineers.\n\nThe team is also working to increase mindshare among developer communities surrounding various L2 (like Arbitrum and zkEVMs) as well as new protocols (by developing packages for streamlined testing and integration with them).\n\nLeveraging Cannon\u2019s existing offchain infrastructure, the team is continuing to add functionality to Cannon\u2019s web explorer. Code-aware transaction tracing, improved user interfaces for contract interaction, and analytics will help Cannon become a more decentralized, open source alternative to Etherscan.\n\nFurther, a top priority for the Cannon team continues to be the reliability and security of its infrastructure, which includes a decentralized IPFS cluster, blockchain indexers, web app hosting, and RPC endpoints for various blockchains. Cannon does not charge for use of these services\u2014grant funds will go towards supporting these \u2018public goods\u2019 in addition to the development of Cannon\u2019s open source codebase.", "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", "answer": "0xca7777aB932E8F0b930dE9F0d96f4E9a2a00DdD3, 1\n0xca7777aB932E8F0b930dE9F0d96f4E9a2a00DdD3, 10\n", "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": "0xebb33965fa7b5fb265e8354b44ae1edac4289589b5b83ad58e30406c4d21e8d0", "title": "Cannon", "logoImg": "bafkreifdtd7xsxjn2yjtio3yodwrrse6ewaxgtrchpc5rz64hgpumrxbam", "metaPtr": {"pointer": "bafkreibmwamiva45cjaxfyjfbohdfb2dm65gix47g6ayv62utbwyk72a6u", "protocol": "undefined"}, "website": "https://usecannon.com", "bannerImg": "bafkreibdsjuhxfkqcqar5t4mp5tccg4pugflbveqt37mdhy2mkafftywom", "createdAt": 1728739938610, "userGithub": "noahlitvin", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..GVip5vWLJVn2tNl8BUS8Q0S5qHBY1WIlmfon7DL5jfAtrtVxfEL8FyBixQ5F6Efq1xf7Gj9UfCu4zGxFU-9rAA", "type": "Ed25519Signature2018", "created": "2024-10-12T20:30:55.163Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-10-12T20:30:55.162Z", "expirationDate": "2025-01-10T20:30:55.162Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x07Aeeb7E544A070a2553e142828fb30c214a1F86", "hash": "v0.0.0:4cjiVRjPOoZCUD/6MkTNIdpBoHMY26acMSEcdIPsn6o=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#usecannon#335975"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..n1gqhks2vz-mlSmEMTp6ACMA2n0z7VzEuYBxaGhMQKJHQpj-xFMCGzewCy8Kq3Ri9S2A5YiXWxNLIx0HIIuNCg", "type": "Ed25519Signature2018", "created": "2024-10-12T20:30:50.320Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-10-12T20:30:50.320Z", "expirationDate": "2025-01-10T20:30:50.320Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x07Aeeb7E544A070a2553e142828fb30c214a1F86", "hash": "v0.0.0:6a7gzn1lT1oH+lkIf2YGMJM+vvV/CoxXc5eX7epF5xI=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#usecannon"}}}, "description": "Cannon is the DevOps tool for protocols on Ethereum.\n\nCompatible with Foundry and Hardhat, Cannon replaces one-off deployment scripts with Cannonfiles. Following Infrastructure-as-Code principles, it streamlines deployments, upgrades, and configurations for sophisticated protocols across multiple chains.\n\nDeployments result in packages which can be uploaded to a decentralized IPFS cluster and published to the onchain registry. Cannonfiles can reference these packages directly, enabling composability. Easily create a local node for developing and testing your code with popular protocols and mock tokens. Then deploy your code to testnets and mainnets, integrated with official deployments.\n\nCannon is completely open source and grant funded.", "lastUpdated": 0, "projectGithub": "usecannon", "projectTwitter": "usecannon"}, "recipient": "0x919ebAaab5Fe66ce95abB121e73ad6e9ee536475"}}