{"signature": "0x74960feb72ca5b2d8c5e627b4b94ac54c85951fabf30b137c49ac29948ee13b63f8c1b8ec7926bf4d9b3ed456775e7ed5d5d4a420efbd7188d2709bf5d61fb991c", "application": {"round": "0x1b48bb09930676d99dda36c1ad27ff0a5a5f3911", "answers": [{"type": "email", "hidden": true, "question": "Email Address", "questionId": 0, "encryptedAnswer": {"ciphertext": "quBWBZkR8jFD6/eNiWI5GlLkaS8gs7VTbk9OASC0+/smozG87nNU+1Hn/+YAQU8a", "encryptedSymmetricKey": "4b7016d1b1906c07caec124da3a6ec222e0044eaef588431f13813afe54d001b145cd228f6a9a2063454ef3dc95b720a12edc1cd81ca0ebfa4d62f6c0223752dc4c279bd7c24a47cf337a0d6be87ed95af12b0b761d0cc4ecf351361cc60a1a3550b9a816fdafdf56a937bcf6d13a7427bc08476498f1669e0a74e1b339dc9240000000000000020717097bd315a69a605c406a9811812247553f897ce7cfe4ad41e9a451e00dce32945ac46d9431f90849974cb4f5a9893"}}, {"type": "short-answer", "hidden": true, "question": "Telegram Handle We Can Use To Contact You(you can answer N/A)", "questionId": 1, "encryptedAnswer": {"ciphertext": "g7TzSvJq5h21DEzBV/IAahQ9+m+n62JBsOkhzXoFw6U=", "encryptedSymmetricKey": "d96c1a9b0dfa2df99cabba8fb294fdb8ac995468f55ac4d6699d2000d982a193b70fc7bf3394daffe64c50495a054f173009ce17a283e2d1ce0f36d7c103f0b61ff3bf7c9cfda9fd47d34685fe00c4de583aef1266317f78985abad4f3f8d993e28382c86e97b1b869451938db61c1368c537c85700f1cba678fcc735dfb146200000000000000209bdf685e23049ba20092c658bb1bc1c76b68fcb403adcfd8971e8fe2eed2ed39deb58148d88166f0870afbc53f6fdba9"}}, {"type": "link", "answer": "https://github.com/OpenZeppelin/openzeppelin-contracts", "hidden": false, "question": "Project GitHub Repo (Not Team Page): ", "questionId": 2}, {"type": "number", "answer": "2", "hidden": false, "question": "Total Team Size", "questionId": 3}, {"type": "paragraph", "answer": "(Amxx-0x7859821024E633C5dC8a4FcF86fC52e7720Ce525, ernestognw- 0x973dA78c3Ff2c3aF1143E960d3161F09562eEC14)", "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": "https://twitter.com/ernestognw\nhttps://twitter.com/Amxx", "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://forum.openzeppelin.com/", "hidden": false, "question": "Link to your Public Group Chat (e.g. Discord or Telegram)", "questionId": 6}, {"type": "paragraph", "answer": "Since the last time we applied, we've been busy releasing the 5.1 version of OpenZeppelin contracts and planning future updates for 2024, focusing on account abstraction and cross-chain (to be released during the year).\n\nFollowing is the changelog of OpenZeppelin contracts 5.1.0, released after our last application. \n\n## 5.1.0 (2024-04-16)\n- `Clones`: Add version of `clone` and `cloneDeterministic` that support sending value at creation. ([#4936](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))\n- `Math`: add an `invMod` function to get the modular multiplicative inverse of a number in Z/nZ. ([#4839](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4839))\n- `Arrays`: add a `sort` functions for `address[]`, `bytes32[]` and `uint256[]` memory arrays. ([#4846](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4846))\n- `Arrays`: deprecate `findUpperBound` in favor of the new `lowerBound`. ([#4842](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))\n- `ERC1363`: Add implementation of the token payable standard allowing execution of contract code after transfers and approvals. ([#4631](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4631))\n- `DoubleEndedQueue`: Custom errors replaced with native panic codes. ([#4872](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4872))\n- `SlotDerivation`: Add a library of methods for derivating common storage slots. ([#4975](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4975))\n- `Packing`: Added a new utility for packing and unpacking multiple values into a single bytes32. Includes initial support for packing two `uint128` in an `Uint128x2` type. ([#4992](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4992))\n- `StorageSlot`: Add primitives for operating on the transient storage space using a typed-slot representation. ([#4980](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4980))\n- `Votes`: Set `_moveDelegateVotes` visibility to internal instead of private. ([#5007](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5007))\n- `SafeERC20`: Add \"relaxed\" function for interacting with ERC-1363 functions in a way that is compatible with EOAs. ([#4631](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4631))\n- `Hashes`: A library with commonly used hash functions. ([#3617](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))\n- `ERC721Utils` and `ERC1155Utils`: Add reusable libraries with functions to perform acceptance checks on `IERC721Receiver` and `IERC1155Receiver` implementers. ([#4845](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4845))\n- `Math`: Add `modExp` function that exposes the `EIP-198` precompile. Includes `uint256` and `bytes memory` versions. ([#3298](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))\n- `Panic`: Add a library for reverting with panic codes. ([#3298](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))\n- `Math`: Custom errors replaced with native panic codes. ([#3298](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))\n- `Errors`: New library of common custom errors. ([#4936](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))\n- `Arrays`: add new functions `lowerBound`, `upperBound`, `lowerBoundMemory` and `upperBoundMemory` for lookups in sorted arrays with potential duplicates. ([#4842](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))\n- `AccessManager`, `VestingWallet`, `TimelockController` and `ERC2771Forwarder`: Added a public `initializer` function in their corresponding upgradeable variants. ([#5008](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5008))\n- `Base64`: Add `encodeURL` following section 5 of RFC4648 for URL encoding ([#4822](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4822))\n- `AccessControlEnumerable`: Add a `getRoleMembers` method to return all accounts that have `role`. ([#4546](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4546))\n- `MerkleTree`: A data structure that allows inserting elements into a merkle tree and updating its root hash. ([#3617](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))\n- `VestingWalletCliff`: Add an extension of the `VestingWallet` contract with an added cliff. ([#4870](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4870))\n- `ReentrancyGuardTransient`: Added a variant of `ReentrancyGuard` that uses transient storage. ([#4988](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4988))\n- `EnumerableMap`: add `UintToBytes32Map`, `AddressToAddressMap`, `AddressToBytes32Map` and `Bytes32ToAddressMap`. ([#4843](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4843))\n- `SignatureChecker`: refactor `isValidSignatureNow` to avoid validating ECDSA signatures if there is code deployed at the signer's address. ([#4951](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4951))\n- `TransparentUpgradeableProxy`: Make internal `_proxyAdmin()` getter have `view` visibility. ([#4688](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4688))\n- `Create2`, `Clones`: Mask `computeAddress` and `cloneDeterministic` outputs to produce a clean value for an `address` type (i.e. only use 20 bytes) ([#4941](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4941))\n- `SafeCast`: Add `toUint(bool)` for operating on `bool` values as `uint256`. ([#4878](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4878))\n### Breaking changes\n- `ERC1967Utils`: Removed duplicate declaration of the `Upgraded`, `AdminChanged` and `BeaconUpgraded` events. These events are still available through the `IERC1967` interface located under the `contracts/interfaces/` directory. Minimum pragma version is now 0.8.21.", "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", "answer": "0x1f439B2625621E00EA80B9BCF6626330c9DeE158", "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": "https://contracts.openzeppelin.com/security\n\n**On-chain usage** (best estimates for Ethereum mainnet 2023):\n\n- Deployments: 26,581\n- Active Contracts: 78,629\n- Transactions Processed: 61,062,561\n- Total Value Locked in OpenZeppelin Contracts: $15.67 Billion\n\nClick [here](https://contracts.openzeppelin.com/security) for more details.\n\n**Off-chain statistics** (taken on 17th of March 2024):\n\n- [Weekly NPM Downloads](https://www.npmjs.com/package/@openzeppelin/contracts): 417,075\n- [GitHub Stars](https://github.com/OpenZeppelin/openzeppelin-contracts): +23k\n- [OpenZeppelin Docs](https://docs.openzeppelin.com/) Page Views: 4,752,286 (in 2023)\n- The top 50 DEFI protocols all use OpenZeppelin contracts\n- OpenZeppelin Contracts reached 9th place in Optimism retroPGF [round 3](https://vote.optimism.io/retropgf/3)\n- More than 10 ERCs have been co-authored by the team such as [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201), [ERC-2771](https://eips.ethereum.org/EIPS/eip-2771), [ERC-6093](https://eips.ethereum.org/EIPS/eip-6093) or [ERC-1271](https://github.com/ethereum/ERCs/blob/511b7fcbc14bfed37742dfdb7975dc6c2c55ca48/ERCS/erc-1271.md?plain=1#L5)\n- OpenZeppelin Contracts team is a frequent presenter at top confs like [EthCC](https://www.youtube.com/watch?v=LW2BY2EytNU&ab_channel=%5BEthCC%5DLivestream2), [Devconnect](https://www.youtube.com/watch?v=sAcBfEIxqu8&ab_channel=Solidity), and [Devcon](https://www.youtube.com/watch?v=5EV3VlKeBI4&t=1443s&ab_channel=EthereumFoundation)\n- Engaged in expanding the OpenZeppelin contracts through community-funded work to non-EVM ecosystems (Starknet - [Cairo Contracts Library](https://github.com/OpenZeppelin/cairo-contracts/), [Polkadot Runtime Templates](https://github.com/OpenZeppelin/polkadot-runtime-template/), [Arbitrum Stylus Contracts Library](https://blog.openzeppelin.com/next-gen-development-on-arbitrum-stylus).", "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": "Retro PGF 2:  181,764 OP\nRetro PGF 3: 248,448 OP\nGitcoin Grants Round 19: ~5K USD\n\nWith the current OP price of 2.2 USD, the total funding in USD is  733, 349 USD ", "hidden": false, "question": "Total Prior Funding for the project in USD", "questionId": 10}, {"type": "checkbox", "answer": ["Grants"], "hidden": false, "question": "Which of the following funding sources do you have? Check all that apply", "questionId": 11}, {"type": "number", "answer": "103", "hidden": false, "question": "How old (in Months) is the project?  ", "questionId": 12}, {"type": "checkbox", "answer": ["Somewhere in the Metaverse"], "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": "OpenZeppelin Contracts is the most widely used smart contracts library in the Web3 development ecosystem, offering secure, tested, and community-vetted smart contract implementations based on ERC standards. The library covers a broad spectrum of functionalities, including token implementations (ERC20, ERC721), governance mechanisms, access control, finance primitives, and proxy patterns for contract upgradeability. By providing these solutions that adhere to the latest industry standards and best practices, OpenZeppelin enables developers to concentrate on innovating and building core features, thereby accelerating development time, interoperability and reducing potential security risks.\n\nOpenZeppelin Contracts is used by all major projects running in the EVM, particularly evident as every one of the top 50 DEFI protocols imports its implementations. For instance, most ERC20 tokens in the world—the standard for creating fungible tokens—are built using the library, showcasing its widespread trust and reliability. Furthermore, its modules for governance and access control are universally employed in managing critical operations within blockchain applications, solidifying its role in delivering secure infrastructure for the next generation of digital assets and decentralized services. OpenZeppelin's commitment to security and functionality makes it an indispensable tool for any blockchain developer, ensuring that essential contract elements are implemented safely and efficiently.", "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": "Some metrics have already been shared in the project description. Nonetheless, our three main sources of impact metrics come from on-chain data, npm download, and GitHub. Here are our top 3 impact metrics, one from each source:\n\n- Total Value Locked in OpenZeppelin Contracts on Ethereum Mainnet: $15.7B\n- @openzeppelin/contracts npm package weekly downloads (in march 2024) : 417,075\n- GitHub stars of the openzeppelin-contracts repository: +24.1k", "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": "OpenZeppelin Contracts demonstrates its deep commitment to security in smart contract development through six independent security audits and maintaining over 99% test coverage. The library uses advanced techniques such as fuzz testing and formal verification of over 100 invariants to ensure robust and reliable code. Additionally, an active bug bounty program with rewards up to $25,000 encourages community engagement in continuously enhancing security. The libraries’ security measures greatly increase development efficiency for teams who can use our components instead of developing, testing, and auditing them themselves.", "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": "OpenZeppelin significantly helps Web3 projects by providing a universally trusted suite of audited smart contract primitives. It eliminates the need to rewrite foundational code, ensuring secure, interoperable, and battle-tested implementations. Here is a usage example in the Arbitrum Nitro Rollup smart contract :\n\nhttps://github.com/OffchainLabs/nitro-contracts/blob/90037b996509312ef1addb3f9352457b8a99d6a6/src/rollup/RollupCore.sol#L7\n\nThis utility is further validated by its inclusion in leading Solidity courses like CryptoZombies and Free Code Camp's Blockchain Development course by Patrik Collins, underscoring its foundational impact on both developer education and practice.\n\nCryptozombies :\n\nhttps://cryptozombies.io/\n\nBlockchain Development Course :\n\nhttps://www.youtube.com/watch?v=gyMwXuJrbJQ&t=1s&ab_channel=freeCodeCamp.org", "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": "OpenZeppelin is also an audit firm and we develop OpenZeppelin Defender, a secure smart contracts development platform.", "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": "0x9bb54ace45c582da521e15a373b137b21f541cb228301c059bc3e6917d9a6e9d", "title": "OpenZeppelin Contracts", "logoImg": "bafkreidefiqxzn5cznwyscxrbg2vpjiylnk3ykbhmtri6gmsmpih6oip7q", "metaPtr": {"pointer": "bafkreialfsbkbv776mvpvy23klzq2z2ndyrd7p2sugnsr65rtxeih7byfy", "protocol": "undefined"}, "website": "https://openzeppelin.com/contracts", "bannerImg": "bafkreienqyjupdt325s74fyddeej4cfd2cpu5obahzkltv6t7e6yhmnbri", "createdAt": 1699213748696, "userGithub": "xdaluca", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..YeAM27-tNP1xmGXyH97avn5i2WX7HBsDEWYI3hcLkcVHXPHb4rk1ZUlnh698xg3jCTKatIf07oG_x361R8xwDw", "type": "Ed25519Signature2018", "created": "2023-11-05T19:31:45.455Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-11-05T19:31:45.455Z", "expirationDate": "2024-02-03T19:31:45.455Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xfdF797C29AcB326F3902254ab5ae2419eBDfc595", "hash": "v0.0.0:KX1erYmpd5esGjYHxkoEQvJoNdTPmusXFF0ZgSW6g5w=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#OpenZeppelin#80516439"}}}, "description": "**OpenZeppelin Contracts Library**\n\nSince the early days of Solidity in 2016, OpenZeppelin Contracts has been the go-to library for smart contract development. Today it is used by everyone from development teams of the largest projects transacting billions of dollars each day to individuals building blockchain applications.\n\nThe Contracts Library is owned by the OpenZeppelin team, however, the roadmap is highly collaborative and involves a lot of feedback from the Ethereum ecosystem. In addition, to this our team is regularly involved in introducing new ERC and EIP specifications or providing feedback and improvements to the Solidity programming language.\n\n**Impact Metrics**\n\nThe following metrics demonstrate the widespread use and impact of the OpenZeppelin Contracts Library:\n\n- Total Value Locked in OpenZeppelin Contracts on Ethereum Mainnet: $15.67B\n- Active Contracts (2023 YTD): 78,629\n- Deployments (2023 YTD): 26,581\n- Transactions Processed (2023 YTD): 61,062,561\n\nPlease keep in mind that these estimates are approximate. The method used to calculate these on-chain metrics uses [Allium](https://www.allium.so/) to extract data from the Ethereum Mainnet and the [Smart Contract Sanctuary](https://github.com/tintinweb/smart-contract-sanctuary) to segment the data into Total and Verified with OpenZeppelin contracts.\nTo view the full stats [click here](https://contracts.openzeppelin.com/security).\n\n**5.0 Release**\n\nRecently, the team released our 5.0 version of the contracts library, the first major release since 2021. This latest release introduced:\n\n- [Modern best practices](https://blog.openzeppelin.com/introducing-openzeppelin-contracts-5.0#AModernizedContracts5.0) work out-of-the-box, including [namespaced storage](https://blog.openzeppelin.com/introducing-openzeppelin-contracts-5.0#Namespaced)\n- [Simplified codebase for ever-improving security](https://blog.openzeppelin.com/introducing-openzeppelin-contracts-5.0#Simplifications)\n- [Efficiency improvements, including reduced gas consumption](https://blog.openzeppelin.com/introducing-openzeppelin-contracts-5.0#gas-efficiency)\n- [Modernizing access control with AccessManager](https://blog.openzeppelin.com/introducing-openzeppelin-contracts-5.0#redefining)\n- [More advanced testing, including new fuzzing and formal verification rules](https://blog.openzeppelin.com/introducing-openzeppelin-contracts-5.0#best-in.class)\n\nThe OpenZeppelin team also invested 38 audit weeks to secure the 5.0 release. Please visit our [security center](https://contracts.openzeppelin.com/security) for further details on the security and metrics related to the contracts library.\n\n**Usage of Funds**\n\nThe funds will be used to continue developing the contracts library, provide continuous security checks for new versions and implement feedback from the community received after the 5.0 release. ", "lastUpdated": 0, "projectGithub": "OpenZeppelin", "projectTwitter": "openzeppelin"}, "recipient": "0x8A03d1DCc66bEc452AB359Cd387C95be886B856A"}}