From 75b601b1d257176bf3aa06349407fe08ee54ca08 Mon Sep 17 00:00:00 2001 From: Himanshu garg Date: Sat, 10 Aug 2024 09:31:56 +0530 Subject: [PATCH 1/6] cgp 0143 - Biconomy Account abstraction proposal (#460) --- CGPs/cgp-0143.md | 195 +++++++++++++++++++++++++++++++++++++ CGPs/cgp-0143/mainnet.json | 12 +++ 2 files changed, 207 insertions(+) create mode 100644 CGPs/cgp-0143.md create mode 100644 CGPs/cgp-0143/mainnet.json diff --git a/CGPs/cgp-0143.md b/CGPs/cgp-0143.md new file mode 100644 index 00000000..d200db64 --- /dev/null +++ b/CGPs/cgp-0143.md @@ -0,0 +1,195 @@ +--- +cgp: 143 +title: Enable Account Abstraction (ERC 4337) On Celo’s upcoming L2 leveraging Biconomy’s AA infrastructure +date-created: 2024-08-01 +author: Himanshu Garg +status: DRAFT +discussions-to: https://forum.celo.org/t/final-proposal-to-enable-account-abstraction-erc-4337-on-celo-s-upcoming-l2-leveraging-biconomy-s-aa-infrastructure/8266/9 +governance-proposal-id: +date-executed: +--- + +## Overview + +This proposal aims to accelerate the growth and long-term adoption of the Celo ecosystem by strategically allocating CELO from the Community Fund toward the deployment of Biconomy’s Account Abstraction infrastructure on Celo’s upcoming L2, to enable builders to create web2-like UX for their dApps. + +In this proposal, we’re asking for 200,000 CELO tokens to cover the integration costs of deploying our whole Account Abstraction stack (including Bundlers, Paymasters, and Smart Accounts) on the chain, and the support & maintenance of the infrastructure in the future. + +### Status + +- DRAFT + +## Background +In alignment with Celo’s mission to bring prosperity to all, Biconomy is helping builders create seamless UX for their dApps so everyone can easily leverage the power of web3. + +As pioneers of Account Abstraction (ERC-4337), we accelerate the mass adoption of Web3 by simplifying the user experience. Our decentralized UX stack equips developers with powerful tools to eliminate complexities, onboard users, and scale their dApps. + +Since establishing the company in 2019, we have partnered with over 400 dApps for our Relayer SDK and API. Our partners include industry leaders such as JPMorgan, 100 Thieves, Dolce & Gabbana, and Mercedes Benz. We also collaborate with top-tier DeFi and NFT platforms like DYDX, Perpetual Finance, Curve Finance, Aavegotchi, Decentraland, Sandbox, Animoca Brands, and Zed Run. With our infrastructure, we handle more than 100,000 daily transactions and have successfully relayed over 36 million transactions. Our comprehensive and adaptable SDK and APIs serve a diverse clientele, now reaching over 3.5 million individuals. + +Our latest infrastructure, the Biconomy Smart Accounts, Bundler APIs, and Paymaster APIs, revolutionize user onboarding by leveraging EIP-4337 and Smart Contract Wallets. This infrastructure allows developers to create a fully personalized transaction journey for their users, from wallet creation using social logins to batching multiple transactions into a single transaction. The result is an unparalleled user experience that is seamless and efficient, leveraged by industry leaders such as Trust wallet, Zeal wallet, JP Morgan and hundreds more. We provide services for blockchains such as Ethereum, Polygon, BNB Chain, Base, Avalanche, Optimism, and Arbitrum. Currently, we hold the majority market share across all major EVM chains. We support 25+ chains and 200+ tokens. + +Docs: https://docs.biconomy.io/ +Website: https://www.biconomy.io/ +Twitter: https://x.com/biconomy/ + +## Proposal Description +We are asking for 200,000 CELO to deploy our whole infrastructure on Celo’s upcoming L2 and unlock features (listed below) for builders and users. We will work closely with the Celo Foundation to deploy this infrastructure and support builder onboarding. + +### Project Goals and Aspirations +The Biconomy SDK simplifies blockchain development for dApp developers, providing an array of features that offer a seamless Web2-like experience to end-users. Once enabled within the chain, developers can build a wide range of use cases, from token transfers to smart contract interactions. The SDK is secure and reliable, ensuring dApps are safe from attacks and hacks. It is an essential tool for developers looking to build superior dApps on the blockchain. + +**1. Custom Signature Schemes & Biometric Passkeys** - Biometric logins, BLS signature aggregation, and quantum-resistant digital signatures such as Schnorr can be supported with Biconomy. Users can enjoy a more secure and robust digital signature scheme that is simpler and less susceptible to attack vectors. + +**2. Gas-less transactions** - Improve user onboarding and engagement with a gasless flow. With Biconomy, users can enjoy a gasless flow, making transaction execution faster and more straightforward. + +**3. Transactions and gas payments in non-native tokens** - Allow users to pay for transactions and gas any ERC20 token (200+ tokens across 25+ chains and counting). This feature makes it easier for users to have a seamless transaction experience without having to go through the hassle of exchanging their tokens into native tokens. + +**4. Transaction Batching** - Group common transactions to offer gas-light execution and one-click experiences. With Biconomy, common transactions can be batched to offer a gas-light execution that saves users gas fees, thereby making the transaction process more efficient. + +**5. MultiChain Signatures** - This features allows for dispatching multiple userOps to different EVM chains and execute the same transactions on all chains in parallel, with a single user signature. + +**6. Session Keys** - You can create a login session for your user, within which the user can use the dApp without repeatedly signing in. This feature makes it more convenient for users to use dApps without having to sign in repeatedly. + +**7. Automations** - Users can set up recurring payments, Dollar Cost Averaging, or even CEX-like features such as automating purchase/sell based on on-chain triggers like price. + +**8. Limits, Allowlists, and Access Control** - You can apply custom transaction execution limits and whitelist/blacklist addresses at the contract level. With Biconomy, users can enjoy more flexibility and control over their transactions, allowing them to customize their transaction execution limits and whitelist or blacklist addresses at the contract level. + +## Budget and Milestones +We will approach chain support with an on-chain and an off-chain tech stack. These are mutually exclusive and can be used separately or together to provide the best experience for developers. Our stack is ERC4337 compliant, it’s compatible with all ERC4337 compliant providers’ infra and Smart Accounts and we do not have any vendor lock-in for builders. + +### Milestones +Here’s the estimated timeline for the integration, you can find below the detailed explanation of each item. + +![Biconomy_planning_2Jul](https://global.discourse-cdn.com/business7/uploads/celo/original/2X/4/43ba9feb8a4a2f9cf203341bb7dc1f27b64826b7.jpeg) + +**1. Independent On-chain Stack:** +The on-chain stack comprises all critical contracts necessary for EIP 4337. Once deployed, any developer or project can utilize these contracts to offer services related to 4337. The EntryPoint acts as a universal entry point for all ERC-4337-compliant smart contract wallets. Module extends the functionality of these smart accounts, and Paymasters sponsor transactions for users, enabling various use cases. + +**a. EntryPoint Contract (Core Singleton Contract)** + +The EntryPoint contract is a pivotal global singleton contract that acts as the universal entry point for all ERC-4337-compliant smart contract wallets. This essential component standardizes interactions between wallets and the Ethereum network and streamlines and secures transaction handling. By systematically managing multiple user operations through the EntryPoint contract’s handleOps() function, which features verification and execution loops, each operation is executed with utmost security and efficiency. + +Timelines for deployment and integration: Week 2-5 +Costing for deployment and future maintenance: None + +**b. Smart Contracts of Module & Extensions** + +Smart Contract Wallet Modules under the EIP-4337 standard are pivotal in bolstering the functionality and scalability of the blockchain ecosystem. These modules are instrumental in handling the UserOperation signatures, granting users an enhanced level of control and security over their transactions. Specifically, they provide a modular approach to wallet design, enabling customization based on user preferences. This adaptability ensures that the wallet can evolve alongside the ever-changing dynamics of the blockchain industry, further promoting seamless user interaction and safeguarding assets. You can check out our modules here. + +Timelines for deployment and integration: Week 2-5 +KPI : Total transactions processed via the Smart Contract Wallet Module, signifying the module’s efficiency in streamlining the transaction process as per EIP-4337. + +**c. Paymaster Smart Contracts** + +Paymasters play a pivotal role in sponsoring transactions for users, opening the door to various use cases, such as fee subsidies, ERC-20 token payments, off-chain payment methods, and on-chain credit services. By fostering a more inclusive ecosystem and enabling frictionless transactions for users, Paymasters drive innovation and adoption across the platform. + +Timelines for deployment and integration: Week 2-5 +KPI: Number of sponsored transactions processed by Paymaster contracts + +**d. Smart Contract Wallet Standard & Factory** + +The Smart Contract Wallet Standard establishes a comprehensive, unified framework for smart contract wallets, ensuring seamless interoperability and smooth integration within the broader ecosystem. Paired with the Wallet Factory, a contract that streamlines wallet creation by deploying standardized wallet instances, developers benefit from cost-efficient and simplified wallet deployment, significantly lowering barriers to entry. + +Timelines for deployment and integration: Week 2-5 +KPI: Number of wallets created using the factory. + +**2. Independent Off-chain Stack** +We are developing an off-chain stack that includes bundlers and off-chain memepool creation. This will be offered as a service, so that other dapps can use this bundler and the entire off-chain stack even if they make their own Smart Wallets or Paymaster contracts. + +The off-chain stack provides bundlers to optimize transaction processing and reduce network congestion, alternative mempool and node connectivity for efficient off-chain transaction processing, and developer tools such as a dashboard and documentation to facilitate integration. + +**a. Bundler API (with full backend)** + +Bundlers are essential off-chain nodes designed to optimize the Ethereum network. They constantly monitor the UserOperation mempool, intelligently grouping multiple UserOperations together. This bundling process enhances transaction processing efficiency, prioritizes fee distribution, and significantly reduces network congestion, ultimately leading to a smoother, more reliable ecosystem. + +Timelines for deployment and integration: Week 4-7 +KPI: Number of active bundlers and UserOperations processed by them at scale in a given timeframe + +**b. Aggregated Paymaster API (with full backend)** + +This API streamlines transactions, facilitating easy transitions between Sponsorship and ERC20 modes. Through our solution, users can opt for gasless transactions or utilize an array of supported ERC20 tokens for gas payments, underscoring the adaptability and user-centric design of the system. You can check out list of supported tokens here. + +Timelines for deployment and integration: Week 4-7 + +KPI: Number of sponsored transactions processed by Paymaster API and Number of tokens supported for ERC20 gas by Paymaster API + +**c. Developer Tools: Comprehensive Dashboard, SDK, Documentation, and Code Samples** + +This component is focused on providing an all-in-one solution for developers by creating extensive documentation, practical code samples, and a feature-rich developer dashboard. The dashboard offers a unified view of user operations, paymasters, and bundlers, enabling developers to manage and monitor all aspects of their EIP-4337 integration seamlessly. By empowering developers with a single, intuitive interface and invaluable resources, we aim to drive innovation and adoption of the EIP-4337 infrastructure across the ecosystem. + +Timelines for support: Week 4-7 +KPI: The number of successful integrations + +Biconomy infrastructure revolutionizes user onboarding by leveraging EIP-4337 and Smart Contract Wallets. The infrastructure simplifies blockchain development for dApp developers, providing an array of features that offer a seamless Web2-like experience to end-users. With Biconomy, developers can build a wide range of use cases, from token transfers to smart contract interactions. + +### Reporting +Once the proposal is approved and we can start working on the integration, we’ll provide regular updates on the Celo Governance Forum to the community after each Milestone. + +**Milestone 1** - Integration is scheduled +**Milestone 2** - Independent On-chain Stack is deployed +**Milestone 3** - Independent Off-chain Stack is deployed +**Milestone 4** - Final testing and bug fixes have been completed, integration is live + +### Support Requirement +We require the following resources to facilitate our integration with Celo and maintain the infrastructure on the chain: + +**Fees** - The necessary funds for this integration are 200,000 CELO. This covers integration and maintenance costs and can help kickstart the adoption of Smart Accounts on Celo’s upcoming L2. + +**Terms** - The fees will cover the integration costs and maintenance fees of our infra on Celo’s upcoming L2 for the next 2 years after the approval of this proposal. + +**Disbursement** - Upon accepting this proposal, an upfront amount of 200,000 CELO will be provided to kickstart the development process, and make our AA stack live on Celo. + +**Allocation of Funds** - The whole fund will be directed towards the development, deployment, and maintenance of our infrastructure on Celo. + + +### Addressing Governance Call Feedback +**Biconomy benefits** +The most affordable AA solution for builders and users +Compared to other providers, Biconomy does not charge a monthly subscription fee and our stack is available for builders, making it easy to get started with Account Abstraction even for projects without funding. Secondly, we do not charge any premiums on our Sponsorship Paymaster or the Bundler, which can reach up to 30% in additional fees with other providers. + +**No vendor lock-in** +Compared to other providers who might not ask for grants to deploy on Celo, Biconomy’s stack is fully ERC4337 compliant and modular*, allowing developers to easily switch parts of the AA stack to other providers (ie: Safe Smart Accounts with Biconomy Bundlers and Paymasters) if they prefer to with a few lines of code. +*We’re also actively contributing to the new ERC7579 standard. + +**The most powerful AA infrastructure** +We’re auto-scaling Bundlers to meet any demand, guaranteeing 99,99% uptime to ensure all transactions are processed within the shortest possible time. Biconomy supports the largest number of networks (30+) and tokens (200+) and continues to expand cross-chain, making it the default choice for multi-chain projects such as Trust Wallet. + +**Supporting AA adoption on Celo** +We commit to supporting the Celo team and builders with marketing, workshops, educational content, and potentially hackathons to help AA adoption across the chain. Our world-class devrel team and integration specialists are available to help builders make the best out of our stack. + +## Proposed Changes +### Transactions +Unique Transaction of ```2 Hundred Thousand (200,000)``` Celo tokens approval to Multisign ```0x151F6b3D9E894b7E619327EDea5D1113539c4dB3``` + - Destination: ```0x471EcE3750Da237f93B8E339c536989b8978a438``` + - Data: ```increaseAllowance``` & ```0x151F6b3D9E894b7E619327EDea5D1113539c4dB3``` + - Value: ```200000000000000000000000 Celo``` + +## Verification +Before approving/voting: Fetch the on-chain proposal and verify that the multisig address and approval amount match the approval call submitted to chain: + +celocli governance:show --proposalID TBD --node https://forno.celo.org + +Verify the on-chain proposal that + +- The Destination address of the Approval is the GoldToken Proxy `0x471EcE3750Da237f93B8E339c536989b8978a438` +- The approved Spender is the Multisign `0x151F6b3D9E894b7E619327EDea5D1113539c4dB3` +- The ammount of Approval is `200K Celo` expresed in WEI `200000000000000000000000 or 2e23` + + +## Risks +Unknown technical specs of CEL2 make implementation harder and integration will take longer than expected. + +## Structure & Multi-Sig: +- Multisignature(multisig) account wallet for financial operations: +0x151F6b3D9E894b7E619327EDea5D1113539c4dB3 + +| Role | Name | Celo Wallet | +| --- | :---: |:---: | +| Co-founder & CTO | Sachin Tomar | 0x129443cA2a9Dec2020808a2868b38dDA457eaCC7 | +| Co-founder & COO | Aniket Jindal | 0x2DfC6dDd5230f391f0cb8f35095f32dD1DC3A14c | +| Co-founder & CEO | Ahmed Al-Balaghi | 0x274FB5777c24DaD3c7dF80987B9fac04931AD885 | +| Head Of Finance | Arshita Khetan | 0x672386C9bCf0089516c5e6B9205Ed7512a8d1c63 | + +## Useful Links + +1. [cLabs proposal](https://forum.celo.org/t/final-proposal-to-enable-account-abstraction-erc-4337-on-celo-s-upcoming-l2-leveraging-biconomy-s-aa-infrastructure/8266) \ No newline at end of file diff --git a/CGPs/cgp-0143/mainnet.json b/CGPs/cgp-0143/mainnet.json new file mode 100644 index 00000000..db321360 --- /dev/null +++ b/CGPs/cgp-0143/mainnet.json @@ -0,0 +1,12 @@ +[ + { + "contract": "GoldToken", + "address": "0x471EcE3750Da237f93B8E339c536989b8978a438", + "function": "increaseAllowance", + "args": [ + "0x151F6b3D9E894b7E619327EDea5D1113539c4dB3", + "200000000000000000000000" + ], + "value": "0" + } +] From 1e1dd65fbd8fafd3c4942a863cf09d347b7a0948 Mon Sep 17 00:00:00 2001 From: "0xj4an (Work Account)" <111611644+work-0xj4an@users.noreply.github.com> Date: Mon, 12 Aug 2024 10:42:52 -0500 Subject: [PATCH 2/6] Update cgp-0140 & 141.md (#465) --- CGPs/cgp-0140.md | 6 +++--- CGPs/cgp-0141.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CGPs/cgp-0140.md b/CGPs/cgp-0140.md index 8142d03b..6097ecbb 100644 --- a/CGPs/cgp-0140.md +++ b/CGPs/cgp-0140.md @@ -3,10 +3,10 @@ cgp: 140 title: Celo L2 off-chain data availability layer, powered by EigenLayer and EigenDA date-created: 2024-06-27 author: cLabs Blockchain & Primitives teams -status: DRAFT +status: EXECUTED discussions-to: https://forum.celo.org/t/clabs-proposes-off-chain-data-availability-layer-powered-by-eigenlayer-and-eigenda/8236 -governance-proposal-id: -date-executed: +governance-proposal-id: 181 +date-executed: 2024-07-09 --- diff --git a/CGPs/cgp-0141.md b/CGPs/cgp-0141.md index c682fa8f..5f5a5772 100644 --- a/CGPs/cgp-0141.md +++ b/CGPs/cgp-0141.md @@ -5,8 +5,8 @@ date-created: 2024-06-26 author: Luuk Weber (LuukDAO) & Monty Bryant status: DRAFT discussions-to: https://forum.celo.org/t/celopg-h2-2024-budget/8231 -governance-proposal-id: -date-executed: +governance-proposal-id: 182 +date-executed: 2024-07-13 --- ## Summary From 1203d2694aa61c43fcb0594dfbf96cb27bd842b4 Mon Sep 17 00:00:00 2001 From: "0xj4an (Personal Account)" <91024217+0xj4an-personal@users.noreply.github.com> Date: Mon, 12 Aug 2024 13:54:30 -0500 Subject: [PATCH 3/6] Update cgp-0141.md (#468) --- CGPs/cgp-0141.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CGPs/cgp-0141.md b/CGPs/cgp-0141.md index 5f5a5772..a63395ea 100644 --- a/CGPs/cgp-0141.md +++ b/CGPs/cgp-0141.md @@ -3,7 +3,7 @@ cgp: 141 title: CeloPG H2 2024 Budget date-created: 2024-06-26 author: Luuk Weber (LuukDAO) & Monty Bryant -status: DRAFT +status: EXECUTED discussions-to: https://forum.celo.org/t/celopg-h2-2024-budget/8231 governance-proposal-id: 182 date-executed: 2024-07-13 From 5dbab9a34883e44ae42beae27965cded85872b7d Mon Sep 17 00:00:00 2001 From: "0xj4an (Work Account)" <111611644+work-0xj4an@users.noreply.github.com> Date: Mon, 12 Aug 2024 14:03:13 -0500 Subject: [PATCH 4/6] Update Governance Process.md (#466) * Update Governance Process.md * Update Technical Guide - Nuts & Bolts of the CGP Process.md * Update Technical Guide - Nuts & Bolts of the CGP Process.md * Update Technical Guide - Nuts & Bolts of the CGP Process.md * Update Technical Guide - Nuts & Bolts of the CGP Process.md * Update README.md * Update README.md * Update README.md --------- Co-authored-by: Eric Nakagawa Co-authored-by: zoz <97761083+0xzoz@users.noreply.github.com> --- Governance Process.md | 6 +-- README.md | 43 ++++++++++--------- ...Guide - Nuts & Bolts of the CGP Process.md | 26 +++++------ 3 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Governance Process.md b/Governance Process.md index 6117eda4..7306f6ab 100644 --- a/Governance Process.md +++ b/Governance Process.md @@ -5,11 +5,11 @@ ### Submission -Any Celo account can submit a proposal to the [Governance smart contract](https://docs.celo.org/cli/governance#celocli-governancebuild-proposal) to change features on Celo. Using Celo CLI, an account must send a transaction that includes the following: title, link to the proposal description in GitHub, and a deposit of 100 CELO. Once the proposal is issued on-chain, the proposals enter a queue. Each day, the top 3 proposals in the queue move on to the Approval phase. If there are fewer than three proposals in the queue, all of them may move onto the approval phase. +Any Celo account can submit a proposal to the [Governance smart contract](https://docs.celo.org/cli/governance#celocli-governancebuild-proposal) to change features on Celo. Using Celo CLI, an account must send a transaction that includes the following: title, link to the proposal description in GitHub, the json file attached to the proposal *(If needed)* and a deposit of 10,000 CELO. Once the proposal is issued on-chain, the proposals enter a queue. Each day, the top 3 proposals in the queue move on to the Approval phase. If there are fewer than three proposals in the queue, all of them may move onto the approval phase. ### Approval -If the proposal moves onto this stage, the original proposer can withdraw the 100 CELO deposit. In this phase, 3 of 9 multi-signature addresses held by individuals selected from the Celo Foundation must approve the proposal within one day. If the Approvers do not approve the proposal within one day, the proposal expires. +If the proposal moves onto this stage, the original proposer can withdraw the 10,000 CELO deposit. In this phase, 3 of 9 multi-signature addresses held by individuals selected from the Celo Foundation must approve the proposal within one day. If the Approvers do not approve the proposal within one day, the proposal expires. ### Referendum @@ -25,4 +25,4 @@ The proposal must pass a minimum threshold for participation and agreement: ### Execution -If the proposal passes the Referendum stage, it moves to the Execution phase. Any Celo account can [issue a special transaction](https://docs.celo.org/cli/governance#celocli-governanceexecute) that upgrades the protocol code, but the proposal creator is typically responsible for executing the proposal. If no Celo account sends the execution transaction within three days after it passes, the proposal will be automatically rejected. +If the proposal passes the Referendum stage, it moves to the Execution phase. Any Celo account can [issue a special transaction](https://docs.celo.org/cli/governance#celocli-governanceexecute) that upgrades the protocol code *(executes the json file submitted in previous steps)*, but the proposal creator is typically responsible for executing the proposal. If no Celo account sends the execution transaction within three days after it passes, the proposal will be automatically rejected. diff --git a/README.md b/README.md index f8a4e923..8e79fe07 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ This is the Celo Governance repository used for coordination by the community me The Celo Guardians *(Previously named CGP Editors)* are: * Eric Nakagawa (@ericnakagawa) -* Juan Giraldo (@juanjgiraldoc) -* Wade Abel (@0xzoz) -* Lorenzo Goldoni (@0xGoldo) +* 0xj4an (@0xj4an-wprk) +* Zoz (@0xzoz) +* 0xgoldo (@0xGoldo) Emeritus CGP Editors are: * Ronan McGovern (@Pinotio) @@ -20,7 +20,8 @@ We regularly hold governance calls to discuss proposals. See below for a summary | № | Date | Agenda | Notes | Recording | |:---:|:---------------:|:------:|:-----:|:---------:| -| 50 | Aug 1, 2024 | [Agenda](https://github.com/celo-org/governance/issues/457) | [TBU]() | [TBU]() | +| 51 | Aug 15, 2024 | [Agenda](https://github.com/celo-org/governance/issues/461) | [TBU]() | [TBU]() | +| 50 | Aug 1, 2024 | [Agenda](https://github.com/celo-org/governance/issues/457) | [Notes](https://docs.google.com/document/d/1XXeOTnk-q0LTMUOI_EYnDqLjiOxf9DO8RU7crICMvGw) | [Video](https://drive.google.com/file/d/1Ny3FNQaOusTd1wmjX3-V8cZsiztyE6bH) | | 49 | Jul 18, 2024 | [Agenda](https://github.com/celo-org/governance/issues/455) | [Notes](https://docs.google.com/document/d/1M160EsHhPMNG2XSY-66AZsag3qBlT-dTSchH73eY33s) | [Video](https://drive.google.com/file/d/1fstTldC8xGanauyLUkgqf37T_fGqUfyX) | | 48 | Jun 27, 2024 | [Agenda](https://github.com/celo-org/governance/issues/446) | [Notes](https://docs.google.com/document/d/1z_xOyi9uPaMw0Fb1RbAlBZoi0FhfnTEn5mdNDin6FsM) | N/A | | 47 | May 30, 2024 | [Agenda](https://github.com/celo-org/governance/issues/429) | [Notes](https://docs.google.com/document/d/1E66-3_J1FHS-x0jHUoawpD8jG_HxJCO_pMke769JyZA/edit#heading=h.mt2q1kc8ut3n) | [Video P1](https://drive.google.com/file/d/17RvtGxEJluHzwk7a9aJT5HwCvg9MVhai) & [Video P2](https://drive.google.com/file/d/1u_b1kkXpyFwypDmQBC69tJQ8JvrKwUNl) | @@ -73,7 +74,9 @@ We regularly hold governance calls to discuss proposals. See below for a summary # Governance Overview -Governance is, at its core, all about how a group of people working together makes decisions. Celo has an on-chain governance mechanism for working as a community to make decisions. This documentation is designed for proposal creators and people interested in creating proposals, and it aims to give them the base of knowledge necessary for creating and championing a proposal. This article summarizes the most important details proposal creators should be aware of, and the following links provide additional details: +Governance is, at its core, all about how a group of people working together makes decisions. Celo has an on-chain governance mechanism for working as a community to make decisions. + +This documentation is designed for proposal creators and people interested in creating proposals, and it aims to give them the base of knowledge necessary for creating and championing a proposal. This article summarizes the most important details proposal creators should be aware of, and the following links provide additional details: * [Governance Process](https://github.com/celo-org/governance/blob/main/Governance%20Process.md) * [Types of Celo Governance Proposals](https://github.com/celo-org/governance/blob/main/Types%20of%20Celo%20Governance%20Proposals.md) * [Technical Guide - Nuts & Bolts of CGP Process](https://github.com/celo-org/governance/blob/main/Technical%20Guide%20-%20Nuts%20%26%20Bolts%20of%20the%20CGP%20Process.md) @@ -84,7 +87,7 @@ The following points summarize the key context for Celo governance: What is Celo Governance?   -Celo Governance is the structure and process that allows stakeholders to make changes to the Celo protocol. +Celo Governance is the structure and process that allows stakeholders to make changes to the Celo protocol or request fund from the [Celo Community Fund](https://www.celocommunityfund.xyz/).
@@ -98,14 +101,14 @@ Governance allows anyone to shape the direction of the Celo community. This is v Who is involved in governance?   -Key stakeholders in Celo’s governance process include: Proposal Creator, Editor, Approvers, Voters and Validators. See the Governance Process Roles section of this article below. +Key stakeholders in Celo’s governance process include: Proposal Creator, Celo Governance Guardians *(formerly known as 'CGP Editors')*, Approvers, Voters and Validators. See the Governance Process Roles section of this article below.
When and where do votes happen?   -Discussions about changes to the protocol happen on forum.celo.org and are announced in the Celo Discord [#celo-governance channel](https://discord.gg/celo). Token holders can vote on on-chain proposals at celo.stake.id. +Discussions about changes to the protocol happen on forum.celo.org and are announced in the Celo Discord [#📢︱governance-announc channel](https://discord.gg/celo). Token holders can vote on on-chain proposals at [Celo Mondo](https://mondo.celo.org/).
@@ -126,23 +129,23 @@ These are the minimum steps needed to move a proposal through the governance pro 1. Create Proposal 1. Create a JSON file that would execute the changes you’re proposing if passed. -1. Create a Celo Governance Proposal (CGP) with a description of the changes and submit to GitHub. -1. After submitting to GitHub, CGP Editors will review the clarity and feasibility of the CGP and may reach out with feedback. +1. Create a Celo Governance Proposal *(CGP)* with a description of the changes and submit to GitHub. +1. After submitting to GitHub, Celo Governance Guardians *(formerly known as 'CGP Editors')* will review the clarity and feasibility of the CGP and may reach out with feedback.
2. Submission -1. Submit your proposal using the Celo Command Line Interface (Celo CLI). This includes a 10,000 CELO deposit. +1. Submit your proposal using the Celo Command Line Interface *(Celo CLI)*. This includes a 10,000 CELO deposit. 1. Locked CELO holders vote on proposals in this phase each day, and the top 3 proposals each day move on to the Approval phase. -1. If your proposal is not in the top 3 on any day for 28 days, it expires and your deposit is burned. In practice, the volume of proposals is low enough that proposals generally clear this phase (i.e. not dozens of proposals per month). +1. If your proposal is not in the top 3 on any day for 28 days, it expires and your deposit is burned. In practice, the volume of proposals is low enough that proposals generally clear this phase *(i.e. not dozens of proposals per month)*.
3. Approval 1. Withdraw your deposit using Celo CLI. -1. To move on from this phase, the proposal needs to be approved by the Approvers (a 3 of 9 multi-signature address held by individuals selected by the Celo Foundation). +1. To move on from this phase, the proposal needs to be approved by the Approvers *(a 3 of 9 multi-signature address held by individuals selected by the Celo Foundation)*. 1. Approvers have 1 day to review the proposal. 1. The Approvers may reach out with questions, so be ready to communicate with them.
@@ -172,8 +175,8 @@ Celo governance is community-driven, and because of that, a lot of the tips belo 1. Before Drafting a Proposal 1. **Evaluate Whether Necessary:** Before doing any work, make sure the proposal is needed and isn’t already being worked on by checking on celo.forum.org and asking on Discord. Skim through active CGP proposals and the Celo forum to ensure that the idea isn’t already being discussed or proposed and warrants its own CGP. -1. **Initial Community Feedback:** Get high-level feedback from the community to improve and gauge your idea’s support. Create a forum post summarizing your idea and share it in the [Governance section of the Celo forum](https://forum.celo.org/c/governance/12) to get initial feedback. -1. **Targeted Feedback:** Reach out to stakeholders who would be impacted to get their opinion. Reach out to people with established reputations in the community for feedback (e.g. validators, cLabbers - reachable on the Discord), especially if the proposal would impact them. This can help build support among community members that will be helpful in later stages in the process. +1. **Initial Community Feedback:** Get high-level feedback from the community to improve and gauge your idea’s support. Create a forum post summarizing your idea and share it in the [Governance Proposals section of the Celo forum](https://forum.celo.org/c/governance/governance-proposals/) to get initial feedback. +1. **Targeted Feedback:** Reach out to stakeholders who would be impacted to get their opinion. Reach out to people with established reputations in the community for feedback *(e.g. validators, cLabbers - reachable on the Discord)*, especially if the proposal would impact them. This can help build support among community members that will be helpful in later stages in the process.
@@ -182,15 +185,15 @@ Celo governance is community-driven, and because of that, a lot of the tips belo 1. **Create Draft Proposal:** Make a GitHub account, create a fork in the governance repository, and draft a proposal. The CGP template can be found [here](https://github.com/celo-org/governance/blob/main/CGPs/cgp-template.md). 1. **Get Community Feedback:** This step should be the main feedback-gathering effort and will be crucial to finalizing your draft into a version you’re confident has broad support. 1. Post the draft proposal in the [Celo Forum](https://github.com/celo-org/governance/blob/main/CGPs/cgp-template.md) and get feedback on the draft from the community. The Celo Forum is the main place for discussion of governance proposals. - 1. Let people in [Discord](https://chat.celo.org/), [Celo Twitter community](https://twitter.com/CeloOrg), and [Celo Telegram groups](https://t.me/celoplatform) know about the discussion in the Celo Forum and encourage them to contribute their feedback. Consider posting in #Celo-Governance, #General-Operators, and #General-Core channels in Discord. To reach Validators, send an update in the Celo Signal newsletter. -1. **Discuss on Governance Call:** Give people a chance to discuss the proposal in real-time by discussing the proposal on a governance call. Sign up to [Celo Signal](https://docs.celo.org/validator-guide/celo-signal) and reply to a Celo Signal email to get an item on the agenda for governance calls. This will give stakeholders a final opportunity to contribute their opinion before you submit the proposal on-chain. To ensure the conversation is as effective as possible, let all active conversations (i.e., forum, Discord, etc.) know about the call. + 1. Let people in [Discord](https://chat.celo.org/), [Celo Twitter community](https://twitter.com/CeloOrg), and [Celo Telegram groups](https://t.me/celoplatform) know about the discussion in the Celo Forum and encourage them to contribute their feedback. Consider posting in [#🗳︱governance-general](https://discord.gg/celo), channel in Discord. To reach Validators, send an update in the Celo Signal newsletter. +1. **Discuss on Governance Call:** Give people a chance to discuss the proposal in real-time by discussing the proposal on a governance call. Sign up to [Celo Signal](https://docs.celo.org/validator-guide/celo-signal) and reply to a Celo Signal email to get an item on the agenda for governance calls. This will give stakeholders a final opportunity to contribute their opinion before you submit the proposal on-chain. To ensure the conversation is as effective as possible, let all active conversations *(i.e., forum, Discord, etc.)* know about the call. 1. **Pre-Vote Outreach:** Give the community a heads up about the timing of the vote, so they’re ready when it happens.
3. Shepherding Proposal through Voting -1. **Notify Community:** Engage the same groups you engaged in the pre-draft process to let them know that the vote is happening. This includes the Celo governance discord, Celo subReddit, Celo Telegram groups, validators, and other key stakeholders who the proposal would impact (see Step 2b for the full list). You can use these templates to share key information about the proposal simply: +1. **Notify Community:** Engage the same groups you engaged in the pre-draft process to let them know that the vote is happening. This includes the Celo governance discord, Celo subReddit, Celo Telegram groups, validators, and other key stakeholders who the proposal would impact *(see Step 2b for the full list)*. You can use these templates to share key information about the proposal simply: 1. [Social Media Post Template](https://docs.google.com/presentation/d/1B8NTXtTysX3tzf6RdttmN17ZwG8B47FgPgiPksJseSE/edit#slide=id.gcba387afa4_0_0) 1. [Medium Post Template](https://docs.google.com/document/d/1QpOS--Px2ClQg6PtJSjWxWM-eRZjZmD1pO7-DBCM4yg/edit) 1. **Engage Validators:** Once voting starts, engage with validators directly via the validator channel on Discord (can use @validators to notify them) to make sure they understand the proposal, why it’s important, and when the deadline for voting is. Validators may need multiple reminders, but make sure to be respectful in your outreach. @@ -210,10 +213,10 @@ Anyone with a minimum of 10,000 CELO can submit a proposal for a change to the C
- CGP Editors + Celo Governance Guardians *(formerly known as 'CGP Editors')*   -Editors review proposal drafts submitted on Github, either accepting pull requests or rejecting pull requests and providing feedback. This review is conducted to ensure the proposal draft conforms to the guidelines on Github. Editors are volunteer positions with ideally a majority filled by Celo community members outside of cLabs. +Celo Governance Guardians *(formerly known as 'CGP Editors')* review proposal drafts submitted on Github, either accepting pull requests or rejecting pull requests and providing feedback. This review is conducted to ensure the proposal draft conforms to the guidelines on Github. Celo Governance Guardians *(formerly known as 'CGP Editors')* are volunteer positions with ideally a majority filled by Celo community members outside of cLabs.
diff --git a/Technical Guide - Nuts & Bolts of the CGP Process.md b/Technical Guide - Nuts & Bolts of the CGP Process.md index 7f6c0549..ad3a27b5 100644 --- a/Technical Guide - Nuts & Bolts of the CGP Process.md +++ b/Technical Guide - Nuts & Bolts of the CGP Process.md @@ -12,9 +12,9 @@ This article explains the minimum steps you should take at each stage in the gov *JSON File*   -When a governance proposal passes, the Celo network runs a list of methods to implement the changes that are proposed. The parameters used in those methods are specified in a JSON file—this file is the list of method calls that would be made if the proposal passes (See an example JSON file [here](https://github.com/celo-org/celo-proposals/blob/master/CGPs/0024/mainnet.json)). To ensure your JSON file is not buggy, you can message the #​​general-core in Discord to ask someone to review the file. +When a governance proposal passes, the Celo network runs a list of methods to implement the changes that are proposed. The parameters used in those methods are specified in a JSON file—this file is the list of method calls that would be made if the proposal passes *(See an example JSON file [here](https://github.com/celo-org/celo-proposals/blob/master/CGPs/0024/mainnet.json))*. To ensure your JSON file is not buggy, you can message the #​​general-core in Discord to ask someone to review the file. -Each transaction step (or method call) should include the following parameters: +Each transaction step *(or method call)* should include the following parameters: - **Transaction Number**: This is the index of the transaction in the list, so it’s not actually listed. Transactions will run in order. - **Contract**: The contract with the desired function call for the transaction. - **Function**: The function in the above contract that will be called. @@ -32,11 +32,11 @@ Here’s an example: } ] -**Note:** A JSON file is only needed for on-chain changes. Some governance proposals - such as General Governance Proposals and Changes - don’t affect the Celo blockchain (e.g. changing name from Celo Gold to CELO). +**Note:** A JSON file is only needed for on-chain changes. Some governance proposals - such as General Governance Proposals and Changes - don’t affect the Celo blockchain *(e.g. changing name from Celo Gold to CELO)*. *Celo Governance Proposal* - In addition to creating the JSON file, you should create a Celo Governance Proposal (CGP) using the [CGP Template](https://github.com/celo-org/governance/blob/main/CGPs/cgp-template.md) and submit a pull request in the Celo Governance repo. Make sure to include enough detail that anybody who’s reasonably knowledgeable about Celo can understand why the proposal is needed and what the proposal will do. When submitted, the CGP Editors will review and may reach out to you with feedback to incorporate. When your CGP pull request has been merged, submit a post in the [Governance section](https://forum.celo.org/c/governance/12) of the Celo forum to allow the community to comment on it. It’s also helpful to include the JSON file in the Github repo as well so others can review—you can create a folder in the top level of the repo named for the CGP number and put the file in it. + In addition to creating the JSON file, you should create a Celo Governance Proposal *(CGP)* using the [CGP Template](https://github.com/celo-org/governance/blob/main/CGPs/cgp-template.md) and submit a pull request in the Celo Governance repo. Make sure to include enough detail that anybody who’s reasonably knowledgeable about Celo can understand why the proposal is needed and what the proposal will do. When submitted, the CGP Editors will review and may reach out to you with feedback to incorporate. When your CGP pull request has been merged, submit a post in the [Governance section](https://forum.celo.org/c/governance/12) of the Celo forum to allow the community to comment on it. It’s also helpful to include the JSON file in the Github repo as well so others can review—you can create a folder in the top level of the repo named for the CGP number and put the file in it. **Testing a Governance Proposal** @@ -44,12 +44,12 @@ Here’s an example: **Submitting a Governance Proposal** - Your proposal consists of the JSON file (if required) and a Celo Governance Proposal. + Your proposal consists of the JSON file *(if required)* and a Celo Governance Proposal. Before actually submitting the proposal, the community should have sufficient time to discuss in the forum, and you should have discussed the proposal on a governance call. See the Best Practices for Proposal Creators section of the == == for all best practices for championing a proposal. -When you’re ready to submit your proposal, send an email to governance@celo.org (Governance Approvers) letting them know when you will submit your proposal. You should do this no more than three days before submitting the proposal. The goal of this is to give the Approvers a heads-up so they can plan to evaluate the proposal when it gets to the Approval stage. +When you’re ready to submit your proposal, send an email to governance@celo.org *(Governance Approvers)* letting them know when you will submit your proposal. You should do this no more than three days before submitting the proposal. The goal of this is to give the Approvers a heads-up so they can plan to evaluate the proposal when it gets to the Approval stage. Governance proposals are submitted through the Celo Command Line Interface (CLI) using the >$ celocli governance:propose @@ -57,15 +57,15 @@ Governance proposals are submitted through the Celo Command Line Interface (CLI) command. See [here](https://docs.celo.org/command-line-interface/introduction) to get started with Celo CLI. This command has several parameters: -- **deposit** The amount of Celo to attach to Celo as a deposit. All amounts are given as wei, i.e units of 10^-18 CELO. For example, 1 CELO = 1000000000000000000. The minimum deposit is 100 CELO. -- **descriptionURL**: A URL where people can go to learn more about the proposal. In general, this should be the link to the CGP. +- **deposit** The amount of Celo to attach to Celo as a deposit. All amounts are given as wei, i.e units of 10^-18 CELO. For example, 1 CELO = 1000000000000000000. The minimum deposit is 10,000 CELO. +- **descriptionURL**: A URL where people can go to learn more about the proposal. In general, this should be the link to the CGP already merged into main celo-org/governance repo. - **from**: Your address - **jsonTransactions**: The path to the JSON file containing all of the transactions that are involved in the proposal. Here’s an example: -> propose --jsonTransactions ./transactions.json --deposit 100000000000000000000 --from -0x5409ed021d9299bf6814279a6a1411a7e866a631 --descriptionURL -https://gist.github.com/yorhodes/46430eacb8ed2f73f7bf79bef9d58a33 +> propose --jsonTransactions ./transactions.json --deposit 10000000000000000000000 --from +YourAddres --descriptionURL +https://github.com/celo-org/governance/blob/main/CGPs/cgp-XXXX.md ## Submission Stage Submitted proposals are added to a queue of proposals in the Submission stage. While a proposal is on this queue, voters may use their Locked Celo to upvote the proposal. Once per day, the top three proposals—by weight of the Locked Celo upvoting them—are dequeued and moved into the Approval phase. If a proposal has been on the queue for more than 4 weeks, it expires and the deposit is burned. @@ -79,7 +79,7 @@ Submitted proposals are added to a queue of proposals in the Submission stage. W Once your proposal reaches the Approval stage, you can withdraw your deposit using > celocli governance:withdraw. -In this phase, the proposal needs to be approved by the Approvers (a 3 of 9 multi-signature address held by individuals selected by the Celo Foundation). The Approval phase lasts 1 day, and if the proposal is not approved in this window, it is considered expired and does not move on to the Referendum phase. The Approvers may reach out with questions, so be ready to communicate with them. +In this phase, the proposal needs to be approved by the Approvers *(a 3 of 9 multi-signature address held by individuals selected by the Celo Foundation)*. The Approval phase lasts 1 day, and if the proposal is not approved in this window, it is considered expired and does not move on to the Referendum phase. The Approvers may reach out with questions, so be ready to communicate with them. - What should I do if my proposal is approved? - If your proposal is approved, it will automatically move on to the Referendum stage. @@ -100,4 +100,4 @@ The proposal creator is responsible for executing a proposal once it passes the in the Celo Command Line Interface. -If you don’t execute the proposal within 3 days, you lose the ability to execute the proposal and would need to go through the governance process again (i.e. resubmit proposal) in order to regain the ability to execute. +If you don’t execute the proposal within 3 days, you lose the ability to execute the proposal and would need to go through the governance process again *(i.e. resubmit proposal)* in order to regain the ability to execute. From 6a8c280101724298cc08f41a8f502695b45d6a49 Mon Sep 17 00:00:00 2001 From: "0xj4an (Work Account)" <111611644+work-0xj4an@users.noreply.github.com> Date: Mon, 12 Aug 2024 13:23:10 -0600 Subject: [PATCH 5/6] Update cgp-0142.md --- CGPs/cgp-0142.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CGPs/cgp-0142.md b/CGPs/cgp-0142.md index e52c562d..3578b1f3 100644 --- a/CGPs/cgp-0142.md +++ b/CGPs/cgp-0142.md @@ -3,7 +3,7 @@ cgp: 142 title: Allocate $1M of Mento’s Current Reserve Holdings to Glo Dollar to fund Celo Public Goods at no cost date-created: 2024-07-24 author: Garm Lucassen (Glo Dollar) -status: DRAFT +status: PROPOSED discussions-to: https://forum.celo.org/t/draft-allocate-1m-of-mento-s-current-reserve-holdings-to-glo-dollar-to-fund-celo-public-goods-at-no-cost/7927 governance-proposal-id: date-executed: @@ -88,4 +88,4 @@ Glo Dollar is developed by the Glo Foundation and issued by Brale, which acts as * [Glo Dollar Bluechip rating](https://www.glodollar.org/articles/bluechip-rating) * [Glo Dollar X account](https://twitter.com/glodollar) * [Glo Dollar Farcaster account](https://warpcast.com/glodollar) -* [Glo Dollar Discord](https://discord.gg/tMkFWHUQn7) \ No newline at end of file +* [Glo Dollar Discord](https://discord.gg/tMkFWHUQn7) From ffd86ab9253252981f2023b15b0faf71c8f96ac8 Mon Sep 17 00:00:00 2001 From: "0xj4an (Work Account)" <111611644+work-0xj4an@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:01:15 -0500 Subject: [PATCH 6/6] Update README with Governance Call 50 & 51.md (#467) * Update README.md * Update cgp-0142.md --------- Co-authored-by: Eric Nakagawa Co-authored-by: zoz <97761083+0xzoz@users.noreply.github.com> --- CGPs/cgp-0142.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CGPs/cgp-0142.md b/CGPs/cgp-0142.md index 3578b1f3..fd58b59e 100644 --- a/CGPs/cgp-0142.md +++ b/CGPs/cgp-0142.md @@ -5,7 +5,7 @@ date-created: 2024-07-24 author: Garm Lucassen (Glo Dollar) status: PROPOSED discussions-to: https://forum.celo.org/t/draft-allocate-1m-of-mento-s-current-reserve-holdings-to-glo-dollar-to-fund-celo-public-goods-at-no-cost/7927 -governance-proposal-id: +governance-proposal-id: 183 date-executed: ---