-
Notifications
You must be signed in to change notification settings - Fork 68
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Proposal to enable USDC as gas currency (#415)
* Proposal to enable USDC as gas currency * typos * more nits * fix status * validation
- Loading branch information
Showing
2 changed files
with
71 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
cgp: 127 | ||
title: Enable USDC as Gas Currency | ||
date-created: 2024-05-18 | ||
author: Martín Volpe (@martinvol), Pavel Hornak (@pahor167) | ||
status: PROPOSED | ||
Discussions-to: https://forum.celo.org/t/path-towards-making-usdc-a-gas-currency/7385/2 | ||
governance-proposal-id: 168 | ||
date-executed: | ||
--- | ||
|
||
## Overview | ||
|
||
This proposal adds support of for USDC as a gas fee currency on Celo. | ||
|
||
Recently, Circle [announced](https://www.circle.com/blog/what-you-need-to-know-native-usdc-is-launching-on-celo) their plan to deploy native USDC on Celo. USDC is a fully reserved digital dollar, also known as a stablecoin, that’s 100% backed by cash and cash-equivalent assets so that it’s always redeemable 1:1 for US dollars. USDC is one of the largest and most widely used stablecoins with over $24B in circulation as of November 2023. | ||
|
||
One of the key features of Celo is the support for users to use stablecoins to pay gas fees. This simplifies the transaction experience by eliminating the need for the user to acquire and hold specific tokens in order to pay for gas. Therefore, in addition to bringing native USDC to Celo, Celo would like to propose enabling USDC as a gas currency for the Celo blockchain. We believe that USDC as a gas currency represents a great opportunity to onboard new users to Celo, by having a simplified user experience for payments and financial transactions powered by one of the most trusted stablecoins as a gas token. With this, users would be able to use their USDC to start transacting right away, without having to get another token. | ||
|
||
USDC is the first token to use [Celo's Token Adapter Pattern](https://docs.celo.org/protocol/transaction/erc20-transaction-fees#tokens-with-adapters). | ||
|
||
## Proposed Changes | ||
|
||
Fill out the following template for each transaction in the proposal. | ||
|
||
1. Mapping CELO/cUSD rate to CELO/USDC | ||
- Destination: SortedOracles.setEquivalentToken | ||
- Data: address token = USDC Adapter address (`0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B`), address equivalentToken = cUSD address (`0x765DE816845861e75A25fCA122bb6898B8B1282a`) | ||
- Value: 0 | ||
2. Enable USDC as gas currency | ||
- Destination: FeeCurrencyWhitelist.addToken | ||
- Data: address token = USDC adpter tokenAddress = USDC Adapter address (`0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B`) | ||
- Value: 0 | ||
|
||
## Verification | ||
|
||
To fetch the proposal on-chain, query the proposal with the latest Celo CLI version: | ||
|
||
`$ celocli governance:show --proposalID 168 --node https://forno.celo.org` | ||
|
||
The two key addresses to verify are: | ||
* USDC adapter address: This is a contract deployed by Circle that enables compatibility with Celo 18 decimals standard. The contract is verified on CeloScan: https://celoscan.io/address/0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B#code. | ||
* cUSD address: Can be queried with `celocli network:contracts -n https://forno.celo.org`. It is called "StableToken". | ||
|
||
## Risks | ||
|
||
This proposal is considered low risk as USDC is considered a very stable token with deep liquidity. Additionally, there is precedent for dollar stablecoins being used as gas currencies in Celo, with cUSD (which is backed by bridged USDC among other tokens). | ||
|
||
## Useful Links | ||
|
||
* Circle website: https://www.circle.com/en/ | ||
* Circle USDC announcement: https://www.circle.com/blog/what-you-need-to-know-native-usdc-is-launching-on-celo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
[ | ||
{ | ||
"contract": "SortedOracles", | ||
"function": "setEquivalentToken", | ||
"args": [ | ||
"0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B", | ||
"0x765DE816845861e75A25fCA122bb6898B8B1282a" | ||
], | ||
"value": "0" | ||
}, | ||
{ | ||
"contract": "FeeCurrencyWhitelist", | ||
"function": "addToken", | ||
"args": [ | ||
"0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B" | ||
], | ||
"value": "0" | ||
} | ||
] |