├── .gitignore ├── LICENSE ├── README.md ├── babel.config.js ├── blog ├── 2021-11-08-contributing.md ├── 2021-11-15-code-playground.md ├── 2021-11-16-connect-to-metamask.md ├── 2021-11-18-observable-intro │ ├── index.md │ └── query.gif ├── 2021-11-18-using-the-graph │ ├── dashboard.png │ └── index.md ├── 2021-11-30-hardhat-deploy-verify │ └── index.md ├── 2021-12-06-addtokentocelowallet.md ├── 2021-12-31-using-js-keystores.md ├── 2022-01-01-hellocelo.md ├── 2022-01-02-hellocontracts.md ├── 2022-01-03-hello-contract-remote-node.md ├── 2022-01-04-no-code-erc20.md ├── 2022-01-05-no-code-erc721.md ├── 2022-01-06-web-dapp.md ├── 2022-01-07-on-chain-randomness.md ├── 2022-01-08-valora-wc-v1.md ├── authors.yml └── styles.css ├── crowdin.yml ├── docs ├── FAQs.md ├── celo-codebase │ ├── protocol │ │ ├── bridging │ │ │ ├── bridging-native-assets.md │ │ │ ├── bridging-to-celo.md │ │ │ ├── bridging-tokens-with-etherscan.md │ │ │ ├── migrating-to-optics-v2.md │ │ │ ├── optics-bridge-faq.md │ │ │ ├── optics-gui-kr.md │ │ │ ├── optics-gui-zh_cn.md │ │ │ └── optics-gui.md │ │ ├── consensus │ │ │ ├── index.md │ │ │ ├── locating-nodes.md │ │ │ ├── ultralight-sync.md │ │ │ └── validator-set-differences.md │ │ ├── governance.md │ │ ├── identity │ │ │ ├── index.md │ │ │ ├── metadata.md │ │ │ ├── phone-number-privacy.md │ │ │ ├── privacy-research.md │ │ │ ├── randomness.md │ │ │ └── valora-accounts.md │ │ ├── index.md │ │ ├── optics.md │ │ ├── oracles │ │ │ ├── band-protocol-how-to.md │ │ │ ├── oracles-on-celo.md │ │ │ └── redstone-protocol-how-to.md │ │ ├── plumo.md │ │ ├── proof-of-stake │ │ │ ├── becoming-a-validator.md │ │ │ ├── carbon-offsetting-fund.md │ │ │ ├── community-fund.md │ │ │ ├── epoch-rewards.md │ │ │ ├── index.md │ │ │ ├── locked-gold-rewards.md │ │ │ ├── locked-gold.md │ │ │ ├── penalties.md │ │ │ ├── validator-elections.md │ │ │ ├── validator-groups.md │ │ │ └── validator-rewards.md │ │ ├── stability │ │ │ ├── adding_stable_assets.md │ │ │ ├── doto.md │ │ │ ├── granda-mento.md │ │ │ ├── index.md │ │ │ ├── oracles.md │ │ │ ├── stability-fees.md │ │ │ └── tobin-tax.md │ │ └── transactions │ │ │ ├── erc20-transaction-fees.md │ │ │ ├── escrow.md │ │ │ ├── full-node-incentives.md │ │ │ ├── gas-pricing.md │ │ │ ├── index.md │ │ │ ├── native-currency.md │ │ │ └── tx-comment-encryption.md │ ├── style-guide │ │ └── typescript.md │ └── wallet │ │ ├── how-the-wallet-works │ │ ├── README.md │ │ ├── invitations.md │ │ ├── sending-and-requesting-payments.md │ │ ├── ultralight-node-sync.md │ │ └── verification.md │ │ ├── index.md │ │ └── intro.md ├── celo-holder-guide │ ├── celo-exchange-bot.md │ ├── celo-recovery.md │ ├── connecting-ledger-celo-terminal-wallet.md │ ├── connecting-ledger-celo-web-wallet.md │ ├── connecting-ledger-celocli.md │ ├── cusd.md │ ├── eth-recovery.md │ ├── governance-cheat-sheet.md │ ├── ledger.md │ ├── overview.md │ ├── owners.md │ ├── quick-start.md │ ├── release-gold.md │ ├── voting-governance.md │ └── voting-validators.md ├── command-line-interface │ ├── account.md │ ├── autocomplete.md │ ├── commands.md │ ├── config.md │ ├── dkg.md │ ├── election.md │ ├── exchange.md │ ├── governance.md │ ├── grandamento.md │ ├── help.md │ ├── identity.md │ ├── introduction.md │ ├── lockedgold.md │ ├── multisig.md │ ├── network.md │ ├── node.md │ ├── oracle.md │ ├── plugins.md │ ├── releasegold.md │ ├── reserve.md │ ├── rewards.md │ ├── transfer.md │ ├── validator.md │ └── validatorgroup.md ├── community │ ├── CIP-contributors.md │ ├── code-contributors.md │ ├── code-of-conduct.md │ ├── contributing.md │ ├── documentation-contributors.md │ ├── grant-playbook.md │ ├── guidelines.md │ ├── join-the-community.md │ ├── release-process │ │ ├── README.md │ │ ├── attestation-service.md │ │ ├── base-cli-contractkit-dappkit-utils.md │ │ ├── blockchain-client.md │ │ └── smart-contracts.mdx │ └── translation-contributors.md ├── developer-resources │ ├── celo-dapp-gallery.md │ ├── celo-for-eth-devs.md │ ├── contractkit │ │ ├── contracts-wrappers-registry.md │ │ ├── data-encryption-key.md │ │ ├── index.md │ │ ├── migrating-to-contractkit-v1.md │ │ ├── notes-web3-with-contractkit.md │ │ ├── odis.md │ │ ├── setup.md │ │ └── usage.md │ ├── dappkit │ │ ├── index.md │ │ ├── setup.md │ │ └── usage.md │ ├── deploy-dapp.md │ ├── deploy-hardhat.md │ ├── deploy-remix.md │ ├── deploy-replit.md │ ├── deploy-truffle.md │ ├── develop-on-windows.md │ ├── ethers-js-wrapper.md │ ├── forno │ │ └── index.md │ ├── integrations │ │ ├── checklist.md │ │ ├── cloud-hsm.md │ │ ├── custody.md │ │ ├── general.md │ │ ├── integrations.md │ │ └── listings.md │ ├── networks │ │ ├── alfajores-testnet.md │ │ ├── baklava-testnet.md │ │ └── celo-mainnet.md │ ├── overview.md │ ├── reference.md │ ├── start.md │ ├── style-guide │ │ └── typescript.md │ ├── testnet-wallet.md │ ├── use-contractkit.md │ ├── using-mac.md │ └── walkthroughs │ │ ├── README.md │ │ ├── development-chain.md │ │ ├── hello-contract-remote-node.md │ │ ├── hellocelo.md │ │ ├── hellocontracts.md │ │ ├── hellodapp.md │ │ ├── hellodeploy.md │ │ ├── no-code-erc20.md │ │ ├── no-code-erc721.md │ │ ├── randomness.md │ │ ├── using-js-keystores.md │ │ ├── valora-wc-v1.md │ │ └── web-dapp.md ├── getting-started │ ├── alfajores-testnet │ │ ├── faucet.md │ │ ├── index.md │ │ ├── running-a-full-node-in-alfajores.md │ │ └── using-the-mobile-wallet.md │ ├── baklava-testnet │ │ ├── index.md │ │ ├── running-a-full-node-in-baklava.md │ │ └── running-a-validator-in-baklava.md │ ├── choosing-a-network.md │ ├── glossary.md │ ├── hosted-nodes.md │ ├── mainnet │ │ ├── index.md │ │ ├── running-a-full-node-in-mainnet.md │ │ └── running-a-validator-in-mainnet.md │ ├── using-the-wallet.md │ ├── validator-troubleshooting-faq.md │ └── wallets │ │ ├── index.md │ │ └── using-metamask-with-celo │ │ ├── index.md │ │ ├── manual-setup.md │ │ ├── metamask-valora-import.md │ │ ├── programmatic-setup.md │ │ └── using-a-ledger-with-metamask.md ├── important-information │ ├── alfajores-testnet-disclaimer.md │ ├── baklava-testnet-disclaimer.md │ └── mainnet-network-disclaimer.md ├── learn │ ├── CELO-coin-summary.md │ ├── celo-economic-model.md │ ├── celo-ecosystem.md │ ├── celo-highlights.md │ ├── celo-milestones.md │ ├── celo-onboarding.md │ ├── celo-overview.md │ ├── celo-protocol-summary.md │ ├── celo-protocol.md │ ├── celo-resources.md │ ├── celo-stack.md │ ├── celo-summary.md │ ├── celo-whitepapers.md │ ├── developer-onboarding.md │ ├── developer-tools.md │ ├── evm-compatible-tooling.md │ ├── figment-learn.md │ ├── key-concepts.md │ ├── platform-native-stablecoins-summary.md │ ├── topology-of-a-celo-network.md │ ├── valora-summary.md │ ├── walletconnect.md │ └── why-celo.md ├── overview.md ├── validator-guide │ ├── attestation-service.md │ ├── celo-foundation-voting-policy.md │ ├── celo-signal.md │ ├── devops-best-practices.md │ ├── key-management │ │ ├── detailed.md │ │ ├── key-rotation.md │ │ └── summary.md │ ├── monitoring.md │ ├── node-upgrades.md │ ├── overview.md │ ├── proxy.md │ ├── securing-nodes-and-services.md │ └── validator-explorer.md └── welcome.md ├── docusaurus.config.js ├── i18n └── en │ ├── code.json │ ├── docusaurus-plugin-content-blog │ └── options.json │ ├── docusaurus-plugin-content-docs │ └── current.json │ └── docusaurus-theme-classic │ ├── footer.json │ └── navbar.json ├── netlify.toml ├── package-lock.json ├── package.json ├── sidebars.js ├── src ├── components │ ├── CustomBlogListPage.module.tsx │ ├── HomepageFeatures.js │ ├── HomepageFeatures.module.css │ ├── ImageWrapper.module.css │ ├── ImageWrapper.tsx │ ├── PageRef.module.css │ ├── PageRef.tsx │ ├── YouTube.module.css │ └── YouTube.tsx ├── css │ └── custom.css ├── pages │ ├── index.module.css │ ├── markdown-page.md │ ├── remove-index.js │ └── styles.module.css └── plugins │ └── aliases.ts ├── static ├── .nojekyll └── img │ ├── color-favicon.png │ ├── color-logo.png │ ├── doc-images │ ├── band-protocol-how-to │ │ ├── deploy.png │ │ ├── get-price.png │ │ ├── getmultiprices.png │ │ ├── remix-environment.png │ │ └── saveprice.png │ ├── deploy-hardhat │ │ ├── image1.png │ │ ├── image2.png │ │ └── image3.png │ ├── deploy-remix │ │ ├── image1.png │ │ ├── image2.png │ │ ├── image3.png │ │ ├── image4.png │ │ ├── image5.png │ │ └── image6.png │ ├── deploy-replit │ │ ├── image1.png │ │ ├── image10.png │ │ ├── image11.png │ │ ├── image12.png │ │ ├── image2.png │ │ ├── image3.png │ │ ├── image4.png │ │ ├── image5.png │ │ ├── image6.png │ │ ├── image7.png │ │ ├── image8.png │ │ └── image9.png │ ├── deploy-truffle │ │ ├── image1.png │ │ ├── image2.png │ │ └── image3.png │ ├── migrating-optics-v2 │ │ ├── confirm-transaction.png │ │ ├── connect-metamask.png │ │ ├── estimated-gas.png │ │ ├── ethereum-to-celo.png │ │ ├── mobius-migrate-1-connect.png │ │ ├── mobius-migrate-2-connect-confirm.png │ │ ├── mobius-migrate-3-select.png │ │ ├── mobius-migrate-4-amount.png │ │ ├── mobius-migrate-5-approve.png │ │ ├── mobius-migrate-6-swap.png │ │ ├── mobius-migrate-7-swap-confirm.png │ │ ├── mobius-migrate-8-verify.png │ │ ├── token-list.png │ │ ├── transaction-history.png │ │ ├── verify-token-list.png │ │ ├── verify-token-wallet.png │ │ └── weth-to-ethereum.png │ ├── testnet-wallet │ │ ├── image1.png │ │ ├── image2.png │ │ ├── image3.png │ │ ├── image4.png │ │ ├── image5.png │ │ └── image6.png │ └── valora-wc-v1 │ │ ├── connect-dapp.png │ │ ├── connect-valora.jpg │ │ ├── qr-code.png │ │ ├── send-cusd.png │ │ └── valora-send.jpg │ ├── docusaurus.png │ ├── favicon.ico │ ├── logo.png │ ├── logo.svg │ ├── undraw_docusaurus_mountain.svg │ ├── undraw_docusaurus_react.svg │ └── undraw_docusaurus_tree.svg ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # Misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | .env 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | 23 | # Translations 24 | i18n/ -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /blog/2021-11-15-code-playground.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Intro to the Code Playground 3 | description: Playing with Code 4 | slug: code-playground 5 | authors: 6 | - name: Josh Crites 7 | title: Developer Relations, cLabs 8 | url: https://github.com/critesjosh 9 | image_url: https://github.com/critesjosh.png 10 | tags: [code playground] 11 | image: https://dl.airtable.com/.attachmentThumbnails/a7e530eb72ac8f30f37c0a3447ef0e7d/72e944da 12 | hide_table_of_contents: false 13 | --- 14 | 15 | This post provides an introduction to the live code editor that is included as a feature in this blog. It allows you to see working examples of things like connecting to the Celo network with Metamask and initiating user transactions with the SDK. 16 | 17 | If you have any suggestions for examples that you'd like to see, or if you'd like to create one yourself and have it included in the blog, please reach out to me at [josh@clabs.co](mailto:josh@clabs.co) or on Discord at joshc#0001. 18 | 19 | ## Live coding 20 | 21 | This is a live, editable code block. You can update the code right on this page and it will be compiled and executed as you updated it. This is a powerful feature for learning and testing code in real time--you get immediate feedback about what works and what doesn't. 22 | 23 | :::note 24 | 25 | The code is rendered using [React Live](https://github.com/FormidableLabs/react-live). This means that the code is rendered as a React component, which gives you access to React features like hooks, but also limits what is possible. 26 | 27 | ::: 28 | 29 | 30 | ### Hello World 31 | 32 | Try it out: 33 | 34 | ```jsx live 35 | function helloWorld(){ 36 | 37 | return

Hello World!

38 | 39 | } 40 | ``` 41 | 42 | Edit the code to return some new text. Try rendering different HTML. 43 | 44 | You can see that the result is a simple rendering of the return statement, which is just HTML. The component must include a return statement, although you can return an empty string. You can also log stuff to your browser console from the environment. 45 | 46 | ### Logging 47 | 48 | See this example that returns an empty string and logs the browser `Window` object. 49 | 50 | ```jsx live 51 | function logger(){ 52 | console.log(window) 53 | return "" 54 | } 55 | ``` 56 | 57 | Cool! 58 | 59 | This is just a small preview into what code sharing and learning experiences we can build with this tool. Check out this post about [Connecting to Metamask](2021-11-16-connect-to-metamask.md) to learn more. 60 | -------------------------------------------------------------------------------- /blog/2021-11-18-observable-intro/query.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/blog/2021-11-18-observable-intro/query.gif -------------------------------------------------------------------------------- /blog/2021-11-18-using-the-graph/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/blog/2021-11-18-using-the-graph/dashboard.png -------------------------------------------------------------------------------- /blog/2022-01-07-on-chain-randomness.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Use onchain randomness" 3 | description: How to use onchain randomness in your smart contracts. 4 | slug: /developer-guide/start/randomness 5 | authors: 6 | - name: Josh Crites 7 | title: Developer Relations, cLabs 8 | url: https://github.com/critesjosh 9 | image_url: https://github.com/critesjosh.png 10 | tags: [solidity, randomness, oracle] 11 | image: https://dl.airtable.com/.attachmentThumbnails/a7e530eb72ac8f30f37c0a3447ef0e7d/72e944da 12 | hide_table_of_contents: false 13 | --- 14 | 15 | import PageRef from '@components/PageRef'; 16 | 17 | Onchain randomness is used for selecting validators to perform phone number verification. Read more about how onchain randomness is produced at the provided page. 18 | 19 | 20 | 21 | 22 | 23 | This randomness can be used by any smart contracts deployed to a Celo network. 24 | 25 | ```solidity 26 | import "celo-monorepo/packages/protocol/identity/interfaces/IRandom.sol"; 27 | import "celo-monorepo/packages/protocol/common/interfaces/IRegistry.sol"; 28 | 29 | contract Example { 30 | function test() external view returns (bytes32 randomness) { 31 | randomness = IRandom( 32 | IRegistry(0x000000000000000000000000000000000000ce10) 33 | .getAddressFor(keccak256(abi.encodePacked("Random"))) 34 | ).random(); 35 | } 36 | } 37 | ``` 38 | 39 | Alternatively, through inheritance of `UsingRegistry`. 40 | 41 | ```solidity 42 | import "celo-monorepo/packages/protocol/common/UsingRegistryV2.sol"; 43 | 44 | contract Example is UsingRegistryV2 { 45 | function test() external view returns (bytes32 randomness) { 46 | randomness = getRandom().random(); 47 | } 48 | } 49 | ``` 50 | -------------------------------------------------------------------------------- /blog/authors.yml: -------------------------------------------------------------------------------- 1 | josh: 2 | name: Josh Crites 3 | title: Developer Relations, cLabs 4 | url: https://github.com/critesjosh 5 | image_url: https://github.com/critesjosh.png -------------------------------------------------------------------------------- /blog/styles.css: -------------------------------------------------------------------------------- 1 | .observable-notebook { 2 | background: white; 3 | } -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | # project_id: '478619' 2 | project_id: '9' 3 | preserve_hierarchy: true 4 | # api_token_env: "CROWDIN_PERSONAL_TOKEN" 5 | api_token_env: "ENT_CROWDIN_PERSONAL_TOKEN" 6 | base_url: "https://celo.crowdin.com" 7 | files: [ 8 | # JSON translation files 9 | { 10 | source: '/i18n/en/**/*', 11 | translation: '/i18n/%two_letters_code%/**/%original_file_name%', 12 | }, 13 | # Docs Markdown files 14 | { 15 | source: '/docs/**/*', 16 | translation: '/i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name%', 17 | }, 18 | ] -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/bridging/bridging-native-assets.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Bridge Native Assets with Etherscan 3 | description: How to bridge native assets from ETH and Matic to Celo with Etherscan. 4 | --- 5 | 6 | import Tabs from '@theme/Tabs'; 7 | import TabItem from '@theme/TabItem'; 8 | 9 | # Bridge Native Assets with Etherscan 10 | 11 | How to bridge native assets from ETH and Matic to Celo with Etherscan. 12 | 13 | ___ 14 | ## Call the EthHelper 15 | 16 | Navigate to the [Etherscan](https://etherscan.io/) (or [Polygonscan](https://polygonscan.com/)) page for the EthHelper. 17 | 18 | 19 | 20 | Ethereum EthHelper Address = [0x2784a755690453035f32Ac5e28c52524d127AfE2](https://etherscan.io/address/0x2784a755690453035f32Ac5e28c52524d127AfE2) 21 | 22 | 23 | Polygon EthHelper Address = [0xa489b8981ae5652C9Dd6515848cB8Dbecae5E1B0](https://polygonscan.com/address/0xa489b8981ae5652C9Dd6515848cB8Dbecae5E1B0) 24 | 25 | 26 | 27 | * Open the **Write Contract** pane > **connect your wallet** > then select **sendToEVMLike** 28 | * Optics is designed to support multiple non-EVM chains 29 | * This function helps you send ETH to another chain that uses EVM-style addresses 30 | 31 | ![Bridging Native Assets with Etherescan](https://github.com/joenyzio/assets/blob/main/celo-docs/bridging-native-assets-with-etherscan/bridging-native-assets-with-etherscan.png?raw=true) 32 | 33 | * For **payableAmount** enter the amount you'd like to send in ETH. 34 | 35 | :::tip 36 | 37 | 1 wei = 1 / 10 ** 18 ETH. 38 | 39 | ::: 40 | 41 | * For **_domain**, enter the domain ID of the chain to which you'd like to send tokens. 42 | 43 | Domain IDs are like phone numbers. They represent the chain you're going to call. 44 | 45 | 46 | 47 | Celo Domain ID = 1667591279 48 | 49 | 50 | Polygon Domain ID = 1886350457 51 | 52 | 53 | Ethereum Domain ID = 6648936 54 | 55 | 56 | 57 | * For **_to**, enter the address of the recipient on the destination chain. 58 | * Select **write** > **sign the transaction** > then **send** it to the network. 59 | 60 | 61 | ## Wait 62 | 63 | Wait for a moment for your transaction to finalize on the network. 64 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/bridging/bridging-to-celo.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Bridges 3 | description: How to bridge from Ethereum, Polygon, and Solana to Celo. 4 | --- 5 | 6 | # Celo Bridges 7 | 8 | How to bridge assets from Ethereum, Polygon, and Solana to Celo. 9 | 10 | ___ 11 | 12 | ## Bridges Available on Celo 13 | 14 | There are several bridges developed by the community for bridging tokens from other chains to Celo. 15 | 16 | :::caution 17 | 18 | Be sure you understand and review the risks pages when bridging assets between chains. 19 | 20 | ::: 21 | 22 | * [Optics Bridge](../optics.md) 23 | * Optics Web UIs 24 | * [cLabs Optics Bridge](https://optics.app) 25 | * View the tutorial: [en](./optics-gui.md), [zh-cn](./optics-gui-zh_cn.md), [kr](./optics-gui-kr.md) 26 | * [Ubeswap Optics Web UI](https://app.ubeswap.org/#/bridge) 27 | * Manually Using Etherscan 28 | * [Bridge Native Tokens via Etherscan](bridging-native-assets.md) 29 | * [Bridge ERC-20 Tokens via Etherscan](bridging-tokens-with-etherscan.md) 30 | * [AllBridge](https://app.allbridge.io/bridge?from=ETH&to=POL&asset=USDC) 31 | * [Moss](https://bridge.moss.earth/) 32 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/consensus/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Consensus Introduction 3 | description: Overview of Celo's consensus protocol and network validators. 4 | slug: /celo-codebase/protocol/consensus 5 | --- 6 | # Consensus 7 | 8 | Overview of Celo's consensus protocol and network validators. 9 | 10 | ___ 11 | 12 | ## Protocol 13 | 14 | Celo’s consensus protocol is based on an implementation called Istanbul, or IBFT. IBFT was developed by AMIS and [proposed](https://github.com/ethereum/EIPs/issues/650) as an extension to [go-ethereum](https://github.com/ethereum/go-ethereum) but never merged. Variants of IBFT exist in both the [Quorum](https://github.com/jpmorganchase/quorum) and [Pantheon](https://github.com/PegaSysEng/pantheon) clients. We’ve modified Istanbul to bring it up to date with the latest [go-ethereum](https://github.com/ethereum/go-ethereum) releases and we’re fixing [correctness and liveness issues](https://arxiv.org/abs/1901.07160) and improving its scalability and security. 15 | 16 | ## Validators 17 | 18 | Celo’s consensus protocol is performed by nodes that are selected as validators. There is a maximum cap on the number of active validators that can be changed by governance proposal, which is currently set at 110 validators. The active validator set is determined via the proof-of-stake process and is updated at the end of each epoch, a fixed period of approximately one day. 19 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/consensus/ultralight-sync.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Ultralight Sync 3 | description: Introduction to Celo's ultralight sync mode and how it improves the speed of the Celo network. 4 | --- 5 | 6 | # Ultralight Sync 7 | 8 | Introduction to Celo's ultralight sync mode and how it improves the speed of the Celo network. 9 | 10 | ___ 11 | ## Introduction to Ultralight Sync 12 | 13 | In addition to the **full**, **fast**, and **light** sync modes supported by Ethereum, Celo supports an **ultralight** sync mode. Ultralight nodes compute the validator set for the current epoch by downloading the last header of each previous epoch and applying the validator set diff. They then download the latest block header, which can be verified by checking that at least two-thirds of the validator set for the current epoch signed the block header. 14 | 15 | ## Ultralight Sync Speed 16 | 17 | Ultralight nodes download approximately 17,000 times fewer headers than light nodes in order to sync the latest block on Celo mainnet with 5-second block periods and 1-day epochs. 18 | 19 | :::tip note 20 | 21 | In the future, Celo will support zk-SNARK-based proofs of the ultralight sync mode called [Plumo](/celo-codebase/protocol/plumo.md), which will lower the sync time even more. 22 | 23 | ::: -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/consensus/validator-set-differences.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Validator Set Differences 3 | description: How validator sets are elected and managed with the Celo protocol. 4 | --- 5 | 6 | # Validator Set Differences 7 | 8 | How validator sets are elected and managed with the Celo protocol. 9 | 10 | ___ 11 | 12 | ## Computing Set Differences 13 | 14 | The validator set for a given epoch is elected at the end of the last block of the previous epoch. The new validator set is written to the **extradata** field of the header for this block. As an optimization, the validator set is encoded as the difference between the new and previous validator sets. Nodes that join the network are able to compute the validator set for the current epoch by starting with the initial validator set \(encoded in the genesis block\) and iteratively applying these diffs. 15 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/identity/privacy-research.md: -------------------------------------------------------------------------------- 1 | # Future Privacy Research 2 | 3 | Celo is committed to meet the privacy needs of its users. This section describes future plans for delivering on this commitment, while also sharing the current limitations of the Celo networks. 4 | 5 | ### Privacy mode 6 | 7 | One downside to this identity protocol is that knowledge of a phone number can let anyone quickly determine the balance of the associated wallet, which of course may be unacceptable for many use cases. For these circumstances, the contract allows users to use the `Attestations` contract in privacy mode. In this mode, the user does not map their phone number to their wallet address, but to an account that is not meant to be the recipient of transfers. Through a registered encryption key on the user’s account on the contract, schemes can be derived to allow users to selectively reveal their true wallet addresses to authorized participants. 8 | 9 | ### Transaction and Balance Privacy 10 | 11 | As with most public blockchains \(e.g. Bitcoin, Ethereum\), transactions and smart contracts calls on Celo are public for everyone to see. This means that if a user wants to map the hash of their phone number to their wallet address, people with knowledge of that user's phone number will be able to see their transactions and balances. 12 | 13 | To address this issue, the cLabs team, [Matterlabs](https://matterlabs.dev) and other esteemed zk-SNARK cryptographers and Celo community members are working to create a framework that makes it easy to create gas-efficient tokens that offer Zcash-like privacy, using a shared anonymity pool. Such an implementation could allow wallets to use the default identity mode easily without the risk that someone with your phone number could see your balance and transaction history. 14 | 15 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/identity/randomness.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Randomness 3 | description: How unpredictable pseudo-randomness is achieved on the Celo blockchain. 4 | --- 5 | # Randomness 6 | 7 | How unpredictable pseudo-randomness is achieved on the Celo blockchain. 8 | 9 | ___ 10 | ## Requesting New Attestations 11 | 12 | As mentioned previously, when requesting new attestations, random validators are selected to perform phone number verification. This selection needs to be unpredictable to prevent Eve from creating an attestation for a phone number she doesn’t control. Suppose, for example, that instead validators were selected in a round robin fashion. Eve could request an attestation when it was the turn of a validator she controls to perform verification. Instead of sending an SMS to the phone number \(since she doesn’t own it\) she could just produce the correct verification code since she has access to the validator’s private key. 13 | ## Producing Pseudo-randomness 14 | 15 | Producing unpredictable pseudo-randomness without a trusted third party is not trivial. Several solutions for this problem exist or are being currently researched. They include Verifiable Random Functions \(for example, based on BLS threshold signatures\), Verifiable Delay Functions, and commit-reveal schemes. Currently, Celo implements a simple commit-reveal scheme which is secure enough for the purposes of validator selection. A more sophisticated solution might be implemented as the network evolves, especially if randomness becomes necessary for other purposes that require stronger assumptions about the randomness’s security \(for example if it was decided that a randomized leader election algorithm should replace the current round robin\). 16 | 17 | In a proposed block, the proposer attaches two values related to the randomness scheme - randomness corresponding to their previous commitment, and a new commitment to freshly generated random bytes that will be revealed in the future. The revealed randomness is added to an entropy pool accessible on-chain from the Random smart contract. 18 | ## Randomness Equation 19 | 20 | More formally, the $$n*{th}$$ block proposed by a given validator contains values $$(r_n, s_n)$$ such that $$\text{keccack256}(r_n) = s*{n-1}$$. The one exception to this is the validator’s first block, the case where $$n = 1$$, since they have not previously committed to randomness yet. Here, the protocol instead requires that $$r_1 = 1$$. 21 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Protocol 3 | description: Introduction to the Celo protocol, its implementation, and its relationship to Ethereum. 4 | slug: /celo-codebase/protocol 5 | --- 6 | import PageRef from '@components/PageRef' 7 | 8 | # Celo Protocol 9 | 10 | Introduction to the Celo protocol, its implementation, and its relationship to Ethereum. 11 | 12 | ___ 13 | 14 | ## What is the Celo Protocol? 15 | 16 | Celo's blockchain reference implementation is based on go-ethereum, the Go implementation of the Ethereum protocol. The project team is indebted to the Geth community for providing these shoulders to stand on and, while recognizing that Ethereum is an independent project with its own trajectory, hopes to contribute changes where it makes sense to do so. 17 | 18 | In addition to the blockchain client, some core components of the Celo protocol are implemented at the smart contract level and even off-chain (e.g. phone number verification via SMS). 19 | 20 | ## Protocol Upgrades 21 | 22 | There are a number of substantial changes and additions have been made in service of Celo's product goals, including the following: 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/oracles/oracles-on-celo.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Oracles on Celo 3 | description: A list of oracles available on the Celo network. 4 | --- 5 | 6 | # Oracles on Celo 7 | 8 | This page lists Oracles running on the Celo network. 9 | 10 | Here lists all on-chain Oracles: 11 | 12 | * [Celo Reserve Oracles](/celo-codebase/protocol/stability/oracles) 13 | * [RedStone Oracles](redstone-protocol-how-to.md) 14 | * [Band Protocol](band-protocol-how-to.md) -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/proof-of-stake/becoming-a-validator.md: -------------------------------------------------------------------------------- 1 | # Becoming a Validator 2 | 3 | To participate in the network, an operator must put up a slashable commitment of locked CELO, register as a validator, and join a validator group. A minimum stake of one CELO and a notice period of 60 days is required to be a validator in the Alfajores Testnet. 4 | 5 | Any account that meets the minimum stake and notice period requirements can register as a validator. By doing so, the locked funds on that account become ‘at risk’: a fraction of the stake can be slashed automatically for an evolving set of misbehaviors. In addition, the community can use governance proposals to slash funds, which avoids having to anticipate and encode in the protocol every possible misbehavior. As long as the CELO staked for a validator account is not slashed, it’s eligible to earn rewards like any other Locked Gold account. 6 | 7 | A validator joins a validator group by affiliating itself with it. However, to avoid untrusted or malicious validators joining a group, the validator group must accept the affiliation. Once done, the validator is added to the list of validators in the group. A validator can remove itself from a validator group at any time. Changes only take effect at the next subsequent election, so if the validator is currently participating in consensus, it’s expected to do so until the end of the epoch in which it deregisters itself. 8 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/proof-of-stake/carbon-offsetting-fund.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Carbon Offsetting Fund 3 | slug: /celo-codebase/protocol/proof-of-stake/epoch-rewards/carbon-offsetting-fund 4 | description: Introduction to the Carbon Offsetting fund, its purpose, and governance process. 5 | --- 6 | # Carbon Offsetting Fund 7 | 8 | Introduction to the Carbon Offsetting fund, its purpose, and governance process. 9 | 10 | ___ 11 | 12 | ## What is the Carbon Offsetting Fund? 13 | 14 | The Carbon Offsetting Fund provides for making the infrastructure of the Celo platform carbon-negative, by making a transfer every epoch to an organization that commits to using those assets off-chain for carbon offsetting projects. 15 | 16 | ## Governance 17 | 18 | Through the [on-chain governance process](/celo-codebase/protocol/governance.md), CELO holders can set the fraction of the total desired epoch rewards, initially planned to be 0.1%, that is received by the carbon offsetting fund, and the address of a carbon offsetting partner to which to direct these transfers. The on-target amount is adjusted by the epoch [rewards multiplier](/celo-codebase/protocol/proof-of-stake/epoch-rewards.md), as with all epoch rewards. 19 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/proof-of-stake/community-fund.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Community Fund 3 | slug: /celo-codebase/protocol/proof-of-stake/epoch-rewards/community-fund 4 | description: Introduction to the community fund, its assets, and its relationship to the on-chain reserve. 5 | --- 6 | # Community Fund 7 | 8 | Introduction to the community fund, its assets, and its relationship to the on-chain reserve. 9 | 10 | ___ 11 | 12 | ## What is the Community Fund? 13 | 14 | The Community Fund provides for general upkeep of the Celo platform. CELO holders decide how to allocate these funds through governance proposals. Funds might be used to pay bounties for bugs or vulnerabilities, security audits, or grants for protocol development. 15 | 16 | ## Community Fund Assets 17 | 18 | The Community Fund receives assets from three sources: 19 | 20 | - The Community Fund obtains a desired epoch reward defined as a fraction of the total desired epoch rewards \(governable, initially planned to be $$25\%$$\). This amount is subject to adjustment up or down in the event of under- or over-spending against the epoch rewards target schedule. The Community Fund epoch rewards may be redirected to [bolster the Reserve](#bolstering-the-reserve). 21 | 22 | - The Community Fund is the default destination for slashed assets. 23 | 24 | - The Community Fund also receives the 'base' portion of [transaction fees](celo-codebase/protocol/transactions/gas-pricing.md). 25 | 26 | ## Bolstering the Reserve 27 | 28 | The rewards to the Community Fund are automatically redirected to the on-chain reserve during times in which the reserve ratio (the ratio of aggregate reserve value of on-chain CELO and the off-chain reserve of crypto-assets over stablecoin market capitalization) is below a cutoff value. This cutoff reduces from two to one over the first of 25 years in a linear fashion and remains at one afterwards. 29 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/proof-of-stake/locked-gold-rewards.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Locked CELO Rewards 3 | slug: /celo-codebase/protocol/proof-of-stake/epoch-rewards/locked-gold-rewards 4 | description: How to earn locked CELO rewards and adjust the rate for voting participation, target schedule, and deductions. 5 | --- 6 | # Locked CELO Rewards 7 | 8 | How to earn locked CELO rewards and adjust the rate for voting participation, target schedule, and deductions. 9 | 10 | ___ 11 | 12 | ## Introduction to Locked CELO Rewards 13 | 14 | Holders of Locked CELO that voted in the previous epoch for a group that elected one or more validators and have activated their votes are eligible for rewards. Rewards are added directly to the Locked CELO voting for that group, and re-applied as votes for that same group, so future rewards are compounded without the account holder needing to take any action. The voting process is described further [here](/celo-codebase/protocol/proof-of-stake/locked-gold.md). 15 | 16 | :::tip 17 | 18 | Rewards to Locked CELO are totally independent from validator and validator group rewards, and are not subject to the **group share**. 19 | 20 | ::: 21 | 22 | ![](https://storage.googleapis.com/celo-website/docs/locked-gold-rewards.jpg) 23 | 24 | ## Adjusting the Reward Rate for Voting Participation 25 | 26 | The protocol has a target for the proportion of circulating CELO that is locked and used for voting. An on-target reward rate is determined and then adjusted at every epoch to increase or reduce the attractiveness of locking up additional supply. This aims to balance having sufficient liquidity for CELO, while making it more challenging to buy enough CELO to meaningfully influence the outcome of a validator election. 27 | 28 | The reward rate is adjusted as follows: 29 | 30 | ![](https://storage.googleapis.com/celo-website/docs/voting_reward_rate_adjustment_equation.png) 31 | 32 | where $$rr$$ is the reward rate or voting yield, $$vf$$ is the voting fraction calculated as locked CELO for voting divided by circulating CELO supply, and $$af$$ is the adjustment factor. If the voting participation is below the target at the end of an epoch, the on-target reward rate is increased; if the voting participation is above the target at the end of an epoch, the reward is decreased. 33 | 34 | ## Adjusting the Reward Rate for Target Schedule and Deductions 35 | 36 | Adjusting the on-target reward rate to account for under- or over-spending against the target schedule gives a baseline reward, essentially the percentage increase for a unit of Locked CELO voting for a group eligible for rewards. 37 | 38 | The reward for activated Locked CELO voting for a given group is determined as follows. First, if the group elected no validators in the current epoch, rewards are zero. Otherwise, the baseline reward rate factors in two deductions. It is multiplied by the slashing penalty for the group, and by the average epoch uptime score for validators in the group elected in the current epoch. Finally, the group's activated pool of Locked CELO is increased by this rate. 39 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/stability/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Stability Mechanism Overview 3 | slug: /celo-codebase/protocol/stability 4 | description: Overview of the Celo protocol's Stability Mechanisms. 5 | --- 6 | import YouTube from '@components/YouTube'; 7 | import PageRef from '@components/PageRef'; 8 | 9 | # Stability Mechanism 10 | 11 | Overview of the Celo protocol's Stability Mechanisms. 12 | 13 | ___ 14 | 15 | ## Stability of Celo's Stablecoin Protocol 16 | 17 | 18 | 19 | The Celo protocol's stability mechanism comprises the following: 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/stability/oracles.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Oracles 3 | description: How the SortedOracles smart contract uses governance to collect reports and maintain the oraclized rate or the Celo dollar. 4 | --- 5 | # Oracles 6 | 7 | How the **SortedOracles** smart contract uses governance to collect reports and maintain the oraclized rate or the Celo dollar. 8 | 9 | ___ 10 | 11 | ## SortedOracles Smart Contract 12 | 13 | As mentioned in the previous section, the stability mechanism needs to know the market price of CELO with respect to the US dollar. This value is made available on-chain in the [SortedOracles smart contract](https://github.com/celo-org/celo-monorepo/blob/master/packages/protocol/contracts/stability/SortedOracles.sol). 14 | 15 | ## Collecting Reports 16 | 17 | Through governance, a whitelist of reporters is selected. These addresses are allowed to make reports to the SortedOracles smart contract. The smart contract keeps a list of most recent reports from each reporter. To make it difficult for a dishonest reporter to manipulate the oraclized rate, the official value of the oracle is taken to be the _median_ of this list. 18 | 19 | ## Maintaining Oracle Values 20 | 21 | To ensure the oracle's value doesn't go stale due to inactive reporters, any reports that are too old can be removed from the list. "Too old" here is defined based on a protocol parameter that can be modified via governance. 22 | 23 | ## Celo-Oracle Repository 24 | 25 | You can find more information about the technical specification of the Celo Oracles feeding data to the reserve in the [GitHub repository here](https://github.com/celo-org/celo-oracle). 26 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/stability/stability-fees.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Stability Fees 3 | description: Overview of stability fee parameters, timing, frequency, amounts, management, and updates. 4 | --- 5 | # Stability Fees 6 | 7 | Overview of stability fee parameters, timing, frequency, amounts, management, and updates. 8 | 9 | ___ 10 | 11 | ### Parameters Governing the Stability Fee 12 | 13 | `inflationPeriod` how long to wait between rounds of applying inflation 14 | 15 | `inflationRate` the multiplier by which the inflation factor is adjusted per `inflationPeriod` 16 | 17 | ### Timing, Frequency, and Amount of Fee 18 | 19 | The `inflationRate` is the multiplier by which the `inflationFactor` is increased per `inflationPeriod`. It is initially set to `1` which leaves it to governance to enable the stability fee later on. 20 | 21 | Both, the `inflationRate` as well as the `inflationPeriod`, are specified for a given stable token and subject to changes based on governance decisions. 22 | 23 | ### Stability Fee Levied on Balance 24 | 25 | Each account’s stable token balance is stored as ‘units’, and `inflationFactor` describes the units/value ratio. The Celo Dollar value of an account can therefore be computed as follows. 26 | 27 | `Account cUSD Value = Account cUSD Units / inflationFactor` 28 | 29 | When a transaction occurs, a modifier checks if the stability fee needs updating and, if so, the `inflationFactor` is updated. 30 | 31 | ### Updates to the Inflation Factor 32 | 33 | To apply periodic inflation, the inflation factor must be updated at regular intervals. Every time an event triggering an `inflationFactor` update\(eg a transfer\) occurs, the `updateInflationFactor` modifier is called \(pseudocode below\), which does the following: 34 | 35 | 1. Decide if on or more `inflationPeriod` have passed since the last time `inflationFactor` was updated 36 | 2. If so, find out how many have passed 37 | 3. Compute the new `inflationFactor` and update the last updated time: 38 | 39 | `inflationFactor` = `inflationFactor` \* `inflationRate` ^ `# inflationPeriods since last update` 40 | 41 | ### Changes to Inflation Factor 42 | 43 | Desired inflation rates may vary over time. When a new rate needs to be set, a governance proposal is required to update the inflation rate. If successful, the above function is called, which ensures `inflationFactor` is up to date, then updates the `inflationRate` and `inflationPeriod` parameters. 44 | 45 | ### Inflation Factor Update Schedule 46 | 47 | The `updateInflationFactor` modifier is called by the following functions: 48 | 49 | - `setInflationParameters` 50 | - `approve` 51 | - `mint` 52 | - `transferWithComment` 53 | - `burn` 54 | - `transferFrom` 55 | - `transfer` 56 | - `debitFrom` 57 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/stability/tobin-tax.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Tobin Tax 3 | description: Overview of the Tobin Tax and its effect on the Celo reserve. 4 | --- 5 | # Tobin Tax 6 | 7 | Overview of the Tobin Tax and its effect on the Celo reserve. 8 | 9 | ___ 10 | 11 | :::info 12 | 13 | The tobin tax is currently **disabled** on Mainnet. 14 | 15 | ::: 16 | 17 | ## Implementing the Tobin Tax 18 | 19 | If the Celo reserve ratio falls below `tobinTaxReserveRatio`, a small fee is levied on CELO transfers to discourage further depletion of CELO collateral. This fee is transferred to the `Reserve` smart contract. There is no gas charged for this transfer. The `tobinTaxReserveRatio` and the `tobinTax` parameters are governable. 20 | 21 | ## Reserve Ratio Calculation 22 | 23 | The total Celo reserve value, expressed in CELO units, is approximated on-chain by dividing the reserve CELO balance by the CELO target asset allocation weight. The Celo reserve ratio is then computed by dividing the total reserve value by the value of Celo Dollar supply expressed in CELO units. 24 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/transactions/erc20-transaction-fees.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Paying for Gas in Tokens 3 | description: How to pay Celo gas fees using whitelisted ERC20 tokens. 4 | --- 5 | # Paying for Gas in Tokens 6 | 7 | How to pay Celo gas fees using whitelisted ERC20 tokens. 8 | 9 | ___ 10 | 11 | ## Transaction Fees 12 | 13 | As in Ethereum, transaction fees play a critical role in the Celo protocol as a safeguard against denial-of-service attacks. In order to simplify the process of sending funds, these fees can be paid in ERC20 tokens, and not just the native token of the protocol, CELO. This means that a user sending Celo Dollars to friends or family will be able to pay their transaction fee out of their Celo Dollar balance, and do not need to hold a separate balance of CELO in order to make transactions. 14 | 15 | ## Fee Currency Field 16 | 17 | The protocol maintains a governable whitelist of smart contract addresses which can be used to pay for transaction fees. These smart contracts implement an extension of the ERC20 interface, with additional functions that allow the protocol to debit and credit transaction fees. When creating a transaction, users can specify the address of the currency they would like to use to pay for gas via the `feeCurrency` field. Leaving this field empty will result in the native currency, CELO, being used. Note that transactions that specify non-CELO gas currencies will cost approximately 50k additional gas. 18 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/transactions/full-node-incentives.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Full Node Incentives 3 | description: Overview of full node incentives available to node operators using gateway fees and transaction payments. 4 | --- 5 | 6 | # Full Node Incentives 7 | 8 | Overview of full node incentives available to node operators using gateway fees and transaction payments. 9 | 10 | ___ 11 | 12 | 13 | :::info 14 | 15 | Full node incentives are still very much in the early-research stage are **not yet** live on mainnet. 16 | 17 | ::: 18 | 19 | ## Gateway fees 20 | 21 | The Celo protocol will support **gateway fees**. These fees create an incentive for node operators to run a full node that is not a validator and act as a 'gateway', i.e. answer requests and forward transactions, on behalf of light clients. This is important since it is likely that the vast majority of nodes in the Celo network will be light or ultralight clients, and so the vast majority of full nodes will need to be deployed to service them rather than act as validators. In contrast, in Ethereum, there are few incentives to run a full node that is not mining and so few nodes serve light clients, resulting in a poor experience for mobile wallets. 22 | 23 | ![](https://storage.googleapis.com/celo-website/docs/network-detail.png) 24 | 25 | ## Optional Fields 26 | 27 | A pair of optional fields in the transaction structure, the `GatewayFee` and `GatewayFeeRecipient`, may be specified by light clients to identify the full node which is acting as their gateway to the Celo network. Light clients will set the `GatewayFeeRecipient` to the Etherbase of the serving full node and the `GatewayFee` field to a small amount of CELO, or [alternative fee currency](/celo-codebase/protocol/transactions/erc20-transaction-fees.md), which will be sent to the recipient at the point that the transaction is processed and included in a block. Note that the gateway fee is paid even if the transaction is reverted. 28 | 29 | ## Transaction Payments 30 | 31 | By attaching a payment to the transaction, the light client incentives the full node to serve its requests. Although many of the APIs that a light client will need to call, such as requesting block headers or chain state, do not provide any payment to the full node, refusing to serve non-transaction RPC calls will cause the light client to seek other full nodes to serve their transactions. Light clients may choose full node peers based on location, cost, reliability and other factors to optimize cost and quality of service. 32 | 33 | ## Minimum Gateway Fees 34 | 35 | When a minimum gateway fee is specified, full nodes refuse to process a transaction if the `GatewayFeeRecipient` field is not set to the full node's Etherbase or the `GatewayFee` value is not high enough. Full nodes set their Etherbase with the `--etherbase` flag to indicate the address to which gateway fees should be sent and the `--light.gatewayfee` flag to indicate the minimum fee value they will accept. 36 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/transactions/gas-pricing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Gas Pricing 3 | description: Introduction to gas prices, calculations, transactions, and fees on the Celo network. 4 | --- 5 | 6 | # Gas Pricing 7 | 8 | Introduction to gas prices, calculations, transactions, and fees on the Celo network. 9 | 10 | ___ 11 | 12 | ## Gas Price Minimum 13 | 14 | Celo uses a gas market based on [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559). The protocol establishes a **gas price minimum** that applies to all transactions regardless of which validator processes them. 15 | 16 | The gas price minimum will respond to demand, increasing during periods of sustained demand, but allowing temporary spikes in gas demand without price shocks. The Celo protocol aims to have blocks filled at the `target_density`, a certain proportion of the total block gas limit. When blocks are being filled more than the target, the gas price minimum will be raised until demand subsides. If blocks are being filled at less than the target rate, the gas price minimum will decrease until demand rises. The rate of change is determined by a governable parameter, `adjustment_speed`. 17 | 18 | ## Calculating Gas Price 19 | 20 | In the Celo protocol, the gas price minimum for the next block is calculated based on the current block: 21 | 22 | ``` 23 | gas_price_minimum' = gas_price_minimum * (1 + ((total_gas_used / block_gas_limit) − target_density) * adjustment_speed) + 1 24 | ``` 25 | 26 | Every transaction is required to pay for gas at or above the gas price minimum in order to be processed. Full nodes will reject transactions whose gas price is below the current gas price minimum, and will discard outstanding transactions if the gas price minimum subsequently falls below the gas price that the transactions specify. 27 | 28 | ## Selecting a Transaction Gas Price 29 | 30 | This approach provides a simple mechanism for clients to determine what gas price they should pay. A `GasPriceMinimum` smart contract provides access to the current gas price minimum. For example, with the parameters specified for the Celo testnets, a gas price of 3x the current gas price minimum will be valid in all scenarios for the following 30 seconds. 31 | 32 | When the client wants to ensure that their transaction is processed quickly, they may wish to further increase the gas price to encourage validators proposing new blocks to include it in preference to other transactions. 33 | 34 | ## Transaction Fee Recipients 35 | 36 | The required portion of gas fee, known as the **base**, is set as `base = gas_price_minimum * gas_used` and is sent to the [Community Fund](/celo-codebase/protocol/proof-of-stake/community-fund.md). The rest of the gas fee, known as the **tip**, is rewarded to the validator that proposes the block. Block producers only receive the tip and not the base of the gas fee, which means that they do not have an incentive to artificially inflate the gas price minimum by flooding the network with transactions. 37 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/transactions/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Transactions Overview 3 | description: Introduction to Celo transactions, gas prices, and gateway fees. 4 | slug: /celo-codebase/protocol/transactions 5 | --- 6 | # Transactions 7 | 8 | Introduction to Celo transactions, gas prices, and gateway fees. 9 | 10 | ___ 11 | 12 | 13 | ## Celo vs Ethereum Transactions 14 | 15 | Transactions in the Celo protocol include payments, contract calls, and other operation which modifies state. They are similar to Ethereum transaction with the following key differences. 16 | 17 | - Gas prices must meet or exceed the [gas price minimum](/celo-codebase/protocol/transactions/gas-pricing.md). 18 | - [Gateway fees](/celo-codebase/protocol/transactions/full-node-incentives.md) may be included to incentivize full nodes to serve the transaction. 19 | - Gas and gateway fees may be paid in currencies other than the native CELO. 20 | -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/transactions/native-currency.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Native Currency 3 | description: Introduction to CELO and its compliance to the ERC20 standard. 4 | --- 5 | # Native Currency 6 | 7 | Introduction to CELO and its compliance to the ERC20 standard. 8 | 9 | ___ 10 | 11 | ## What is CELO? 12 | 13 | The native currency in the Celo protocol, CELO, conforms to the ERC20 interface. This is made possible by way of a permissioned “Transfer” precompile, which only the CELO ERC20 smart contract can call. The address of the contract exposing this interface can be looked up via the Registry smart contract, and has the “GoldToken” identifier. 14 | 15 | 16 | :::tip note 17 | 18 | As the native currency of the protocol, CELO, much like Ether, can still be sent directly via transactions by specifying a non-zero “value”, bypassing the ERC20 interface. 19 | 20 | ::: -------------------------------------------------------------------------------- /docs/celo-codebase/protocol/transactions/tx-comment-encryption.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Encrypted Payment Comments 3 | description: Overview of encrypted payment comments and its technical details related to symmetric and asymmetric encryption. 4 | --- 5 | # Encrypted Payment Comments 6 | 7 | Overview of encrypted payment comments and its technical details related to symmetric and asymmetric encryption. 8 | 9 | ___ 10 | 11 | ### Introduction to Comment Encryption 12 | 13 | As part of Celo’s identity protocol, a public encryption key is stored along with a user’s address in the `Accounts` contract. 14 | 15 | Both the address key pair and the encryption key pair are derived from the backup phrase. When sending a transaction the encryption key of the recipient is retrieved when getting his or her address. The comment is then encrypted using a 128 bit hybrid encryption scheme \(ECDH on secp256k1 with AES-128-CTR\). This system ensures that comments can only be read by the sending and receiving parties and that messages will be recovered when restoring a wallet from its backup phrase. 16 | 17 | ### Comment Encryption Technical Details 18 | 19 | A 128 bit randomly generated session key, sk, is generated and used to symmetrically encrypt the comment. sk is asymmetrically encrypted to the sender and to the recipient. 20 | 21 | ‌`Encrypted = ECIES(sk, to=pubSelf) | ECIES(sk, to=pubOther) | AES(ke=sk, km=sk, comment)` 22 | 23 | #### ‌Symmetric Encryption \(AES-128-CTR\) 24 | 25 | - Takes encryption key, ke, and MAC key, km, and the data to encrypt, plaintext 26 | - Cipher: AES-128-CTR using a randomly generated iv 27 | - Authenticate iv \| ciphertext using HMAC with SHA-256 and km 28 | - Return iv \| ciphertext \| mac 29 | 30 | #### Asymmetric Encryption \(ECIES\) 31 | 32 | 1. Takes data to encrypt, plaintext, and the public key of the recipient, pubKeyTo 33 | 2. Generate an ephemeral keypair, ephemPubKey and ephemPrivKey 34 | 3. Derive 32 bytes of key material, k, from ECDH between ephemPrivKey and pubKeyTousing ConcatKDF \(specified as NIST 800-56C Rev 1 One Step KDF\) with SHA-256 for H\(x\) 35 | 4. The encryption key, ke, is the first 128 bits of k 36 | 5. The MAC key, km, is SHA-256 of the second 128 bits of k 37 | 6. Encrypt the plaintext symmetrically with AES-128-CTR using ke, km, and a random iv 38 | 7. Return ephemPubKey \| AES-128-CTR-HMAC\(ke, km, plaintext\) where the public key needs to be uncompressed \(current limitation with decrypt\). 39 | -------------------------------------------------------------------------------- /docs/celo-codebase/style-guide/typescript.md: -------------------------------------------------------------------------------- 1 | # TypeScript Style Guide 2 | 3 | ### Function parameters 4 | 5 | _Vanilla parameters_ are preferred over Object Destructuring. 6 | 7 | Example of Vanilla parameters: 8 | 9 | ``` 10 | export const tokenFetchFactory = ( 11 | actionName, 12 | contractGetter, 13 | actionCreator, 14 | tag, 15 | ) 16 | ``` 17 | 18 | Example of Object Destructuring: 19 | 20 | ``` 21 | export const tokenFetchFactory = ({ 22 | actionName, 23 | contractGetter, 24 | actionCreator, 25 | tag, 26 | }: TokenFetchFactory) 27 | ``` 28 | 29 | This is for simplicity, with fewer lines and some evidence shows it's [faster](https://codeburst.io/es6s-function-destructuring-assignment-is-not-free-lunch-19caacc18137). 30 | 31 | ### Function definitions: Arrow functions vs Vanilla functions 32 | 33 | In the root scope, _Vanilla functions_ are preferred over Arrow functions. 34 | 35 | This is because it's consistent with generator functions, simpler to understand, easier to debug, supports recursion and functions are hoisted, meaning no concern about definition order. 36 | 37 | ### Class methods: anonymous functions vs native methods 38 | 39 | Anonymous functions are the preferred way. As shown in the example: 40 | 41 | ``` 42 | class myClass { 43 | myMethod = () => {} 44 | } 45 | ``` 46 | 47 | ### Exporting variables only for testing 48 | 49 | When a variable is exported only for the propose of getting accessed by tests, a low dash should be added before the name. 50 | 51 | For example instead of doing this: 52 | 53 | ``` 54 | export myFunction{...} 55 | ``` 56 | 57 | This is the preferred way: 58 | 59 | ``` 60 | const myFunction{...} 61 | export _myFunction = myFunction 62 | ``` 63 | 64 | In case it's necessary, a decorator could wrap the exported function to allow it only to be accessed during testing. 65 | -------------------------------------------------------------------------------- /docs/celo-codebase/wallet/how-the-wallet-works/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Wallet Functionality 3 | desciption: This section describes the technology powering key functionality of the Celo Wallet. 4 | --- 5 | 6 | import PageRef from '@components/PageRef' 7 | 8 | # Wallet Functionality 9 | 10 | This section describes the technology powering key functionality of the Celo Wallet. 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/celo-codebase/wallet/how-the-wallet-works/invitations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Wallet Invitations 3 | description: How invitations allow users to create accounts in the Celo wallet. 4 | --- 5 | 6 | # Wallet Invitations 7 | 8 | How invitations allow users to create accounts in the Celo wallet. 9 | 10 | ___ 11 | ## Overview 12 | 13 | To be able to use the wallet and create an account, a user must be invited through their phone number by a verified user. The inviter will send an _invitation code_ to the invitee, which they can later redeem upon downloading the app. 14 | 15 | ## Sending Invitations 16 | 17 | If Alice is verified, she can invite \(unverified\) Bob to the app by choosing him through her contacts list in the wallet or by inputting his phone number. This will generate a temporary public/private key pair and associated temporary wallet address. Alice will have to pay a small invitation fee to this temporary wallet. Finally, Alice's wallet app will auto populate a message including this temporary private key, now known as invitation code, and will prompt Alice to send this message to Bob through either SMS or WhatsApp. 18 | 19 | :::info 20 | 21 | The invitation fee allows for invitees to be able to pay for verification fees and complete the [verification](verification.md) process upon redemption of the invitation code. 22 | 23 | ::: 24 | 25 | Along with an invite, inviters also have the option of sending a payment. In the example above, Alice will send this payment to an [escrow](/celo-codebase/protocol/transactions/escrow.md) smart contract which maps the temporary wallet address associated with the invitation code/temporary private key with the specific payment. 26 | 27 | ## Escrow and Redeeming Invites 28 | 29 | After downloading the wallet app, Bob can redeem the invitation code that Alice sent him by inputting it into the app's homepage. During the invitation code redemption process: 30 | 31 | - A new public/private key pair and corresponding wallet address is generated \(which only Bob has access to\). This is his permanent wallet address. 32 | - Bob proves ownership of the temporary wallet address since he can provide its corresponding private key \(which is the invitation code\). 33 | - Bob then transfers the invitation fee held in the temporary wallet to his newly created permanent wallet. 34 | - Bob is then prompted to the [verification](/celo-codebase/wallet/how-the-wallet-works/verification.md) screen. 35 | 36 | If the invite code is attached to an [escrowed payment](/celo-codebase/protocol/transactions/escrow.md) then, upon finishing verification, the payment will be automatically withdrawn and those funds will be transferred into the user’s account. 37 | 38 | :::info 39 | 40 | If a user has been invited by multiple people and they all sent payments along with the invite, the user will only be able to redeem the payment corresponding to the invite code they chose to use initially. The original senders of the rest of the unclaimed payments will be able to reclaim those funds and resend the payment to the new wallet associated to the now-verified user. 41 | 42 | ::: 43 | -------------------------------------------------------------------------------- /docs/celo-codebase/wallet/how-the-wallet-works/sending-and-requesting-payments.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Payments and Exchanging 3 | description: How the Celo wallet facilitates payments and exchanges using Celo assets. 4 | --- 5 | # Payments and Exchanging 6 | 7 | How the Celo wallet facilitates payments and exchanges using Celo assets. 8 | 9 | ___ 10 | 11 | ## Payments 12 | 13 | ### Sending 14 | 15 | The Celo Wallet can be used to send and request payments with anyone who has verified their phone number to an address\(or using QR codes for unverified addresses\). Send transactions make a call to the `transferWithComment` function within the `StableToken` contract. 16 | 17 | ### Comment Encryption 18 | 19 | Comments are encrypted using the `messageEncryptionKey` of the sender and the recipient to ensure that comment contents are kept private. These encrypted comments are then stored on chain. For more details, please refer to the [Encrypted Payment Comments](/celo-codebase/protocol/transactions/tx-comment-encryption.md) section of protocol documentation. 20 | 21 | ### Requesting 22 | 23 | Payment requests occur off chain - using a service \(firebase in the open source Celo Wallet\) we deliver payment requests. Upon confirmation of a request, a send transaction is created and sent. 24 | 25 | ### Notifications 26 | 27 | For non-essential functionality that is not detrimental to interoperability, a private firebase service. Notifications in the Celo Wallet are one example of this. Users receive push notifications in the following circumstances: 28 | 29 | - Receiving a payment request 30 | - Payment of an outstanding payment request 31 | 32 | :::info 33 | 34 | In order for notifications to work in a fork of the Celo Wallet, creation of another firebase service for the forked wallet is necessary. 35 | 36 | ::: 37 | ## Exchanging 38 | 39 | The Mobile Exchange experience implements the uniswap-style exchange detailed in [Stability Mechanism Documentation](../../protocol/stability/doto.md). For this reason, rates provided are an overestimate of the current rate and subject to change \(such changes are presented to the user if they result in a less favorable rate\) -------------------------------------------------------------------------------- /docs/celo-codebase/wallet/how-the-wallet-works/ultralight-node-sync.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Ultralight Node Sync 3 | description: How Ultralight Node sync works with the Celo wallet. 4 | --- 5 | # Ultralight Node Sync 6 | 7 | How Ultralight Node sync works with the Celo wallet. 8 | 9 | ___ 10 | 11 | 12 | ## Fetch Headers 13 | 14 | The Celo Wallet first fetches the latest header to learn about the likely latest block height. Next, it fetches all the _epoch headers_ between Genesis and the latest block height. The fetch is done in batches of 192 blocks \(Ethereum's default batch size\) to minimize latency. In Celo's case, each of these headers are not contiguous and are instead one epoch apart \(planned for around 1 day for mainnet\). 15 | 16 | ## Validate Headers 17 | 18 | The wallet then validates each of the epoch headers by updating the set of validators at every epoch, and using that set to verify signatures. Once the wallet has reached the latest epoch, it can verify the signatures of all header is that epoch, including the latest one. 19 | 20 | ## Fetch Blocks 21 | 22 | Once the latest header is verified, all the block from that point onwards are fetched. When the app restarts, only the epoch blocks between the last fetched block and the latest header are fetched. 23 | 24 | :::tip note 25 | 26 | In the future, Celo will support zk-SNARK-based proofs that can succinctly prove this sequence of steps, which will lower the sync times and data usage even more. 27 | 28 | ::: 29 | -------------------------------------------------------------------------------- /docs/celo-codebase/wallet/how-the-wallet-works/verification.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Wallet Verification 3 | description: How the Celo wallet uses phone number verification to map phone number hashses to addresses. 4 | --- 5 | 6 | # Wallet Verification 7 | 8 | How the Celo wallet uses phone number verification to map phone number hashses to addresses. 9 | 10 | ___ 11 | 12 | 13 | ## How does Wallet Verification work? 14 | 15 | The Celo Wallet leverages the [Lightweight Identity](../../protocol/identity/) protocol to construct mappings of phone number hashes to addresses. 16 | 17 | ### Phone Number Verification in the Wallet 18 | 19 | During the final step of new user onboarding in the Celo Wallet, a user completes phone number verification. Given that the Celo Protocol supports a variable, the Celo Wallet implements this as a binary notion of `verified` \(>= 3 attestations\) or `unverified` \(< 3 attestations\). During the verification process, three attestations are attempted, and the user receives three text messages, upon receipt of which the user is considered verified. Future implementations of the wallet may explore using requested/received verification ratios or variable numbers of attestations to provide a notion of non-binary verification so as to account for variable probabilities of ownership of a phone number. 20 | 21 | ### Verifications 22 | 23 | When verification is in progress, the celo wallet sends a request for three SMS attestations. The process of selecting the senders of each of these three messages is detailed in the [Lightweight Identity](../../protocol/identity/) documentation. 24 | 25 | The following diagrams depict the user flows for the celo wallet: 26 | 27 | - [General Verification Flow](https://storage.googleapis.com/celo-website/Verification%20Flow.jpg) 28 | - [Detailed Phone Number Hash Flow](https://storage.googleapis.com/celo-website/Get%20Phone%20Number%20Hash%20Details%20Flow.jpg) 29 | - [Detailed Flow for Receiving SMS Input and Compeleting Verification](https://storage.googleapis.com/celo-website/Wait%20SMS%20and%20Complete%20Attestation%20Flow%20(1).jpg) 30 | -------------------------------------------------------------------------------- /docs/celo-codebase/wallet/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Wallet 3 | description: How to use the Celo wallet to manage Celo assets. 4 | slug: /celo-codebase/wallet 5 | --- 6 | 7 | # Celo Wallet 8 | 9 | How to use the Celo wallet to manage Celo assets. 10 | 11 | ___ 12 | 13 | ## What is the Celo Wallet? 14 | 15 | The [Celo Wallet](https://github.com/valora-inc/wallet) is an easy way to send, receive, and save Celo Assets. The Celo Wallet is the base repository for [Valora](https://valoraapp.com/) and is free for you to use to build your own version of a Celo wallet. 16 | 17 | This section describes what is going on under the hood during various aspects of the wallet experience. 18 | 19 | ![Celo Wallet Verification](https://storage.googleapis.com/celo-website/docs/celo-onboarding.gif) 20 | -------------------------------------------------------------------------------- /docs/celo-holder-guide/celo-exchange-bot.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Exchange Celo Assets 3 | description: How to use the Celo exchange bot to exchange CELO and Celo stable tokens. 4 | slug: /celo-owner-guide/celo-exchange-bot 5 | --- 6 | 7 | # Exchange Celo Assets 8 | 9 | How to use the Celo exchange bot to exchange CELO and Celo stable tokens. 10 | 11 | ___ 12 | 13 | 14 | ## Celo Exchange Bot 15 | 16 | [CELO (previously Celo Gold)](../overview.md#background-and-key-concepts) can be exchanged for Celo stable tokens (e.g. Celo Dollar or Celo Euro) using Mento, an automated market maker that powers the [stability protocol](../celo-codebase/protocol/stability/doto.md). Mento is a Constant Product Market Maker (CPMM) that allows you to exchange CELO for Celo stable tokens and vice versa. Sales of Celo stable tokens to Mento in exchange for CELO burn the Celo stable tokens from supply, and sales of CELO to Mento in exchange for Celo stable tokens mint Celo stable tokens into supply. Trades with Mento incur slippage, meaning that Mento exchanges move the price out of favor of the trader. Generally, larger trade amounts incur more significant amounts of slippage. Mento also resets the price of CELO quoted in the Celo stable token every few minutes according to a [price oracle](../celo-codebase/protocol/stability/oracles.md). 17 | 18 | Because of slippage and the Mento price occasionally changing according to a price oracle, those who wish to mint Celo stable tokens into supply may wish to slowly sell CELO for Celo stable tokens over time, rather than in a single exchange. Executing a smaller volume exchange every few seconds over a period of time is likely to result in less slippage when minting Celo stable tokens. [celo-exchange-bot](https://github.com/celo-org/celo-exchange-bot) was created to easily allow community members to exchange CELO for Celo stable tokens over a period of time to avoid incurring significant amounts of slippage. 19 | 20 | ## Running the bot 21 | 22 | [celo-exchange-bot](https://github.com/celo-org/celo-exchange-bot) is intended to be operated by the exchanger as it requires access to the source key, which must own CELO funds to exchange and is the account that performs the exchanges. Operating the bot requires some technical knowledge of dealing with keys and operating infrastructure. Currently, the bot requires the source key to be an HSM in Azure's Key Vault service. Information on how to use an Azure Cloud HSM can be found [here](../developer-resources/integrations/cloud-hsm.md). 23 | 24 | See the repository's [README](https://github.com/celo-org/celo-exchange-bot) for information on building a Docker image and configurating the bot. Example infrastructure using Azure's [Container Instances](https://azure.microsoft.com/en-gb/services/container-instances/) is also provided in the repository [here](https://github.com/celo-org/celo-exchange-bot/tree/master/infrastructure-example). While the bot does require Azure Key Vault to be used for the source key and the provided example infrastructure is ran on Azure, the bot itself can be ran from anywhere as long as it's able to access its Azure Key Vault Cloud HSM. -------------------------------------------------------------------------------- /docs/celo-holder-guide/connecting-ledger-celo-terminal-wallet.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Connect Ledger to Celo Terminal 4 | description: How to connect a ledger wallet to Celo Terminal. 5 | 6 | --- 7 | # Connect Ledger to Celo Terminal 8 | 9 | How to connect a ledger wallet to Celo Terminal. 10 | 11 | ___ 12 | 13 | ## Download Celo Terminal 14 | 15 | Navigate to [https://celoterminal.com/](https://celoterminal.com/) to download application for your OS type. 16 | 17 | ![https://celoterminal.com](https://user-images.githubusercontent.com/2653576/130853186-9e6d369d-dcce-4da9-bc50-d8b30f94b089.png "image_tooltip") 18 | 19 | ## Add Account 20 | 21 | Select “Add account” 22 | 23 | ![Add account](https://user-images.githubusercontent.com/2653576/130853277-78d1a6cd-b2af-4c15-a72d-92e871b1df8b.png "image_tooltip") 24 | 25 | ## Add Ledger Account 26 | 27 | Connect your ledger device and choose “Add Ledger Account” 28 | 29 | ![Connect ledger device](https://user-images.githubusercontent.com/2653576/130853460-0ca1dbf5-c2ad-4057-b24c-c30cec3af625.png "image_tooltip") 30 | 31 | 32 | ## Choose your Account 33 | 34 | A new window will appear listing available accounts, the default is selected (index 0). Choose your account, default selection typically works for standard accounts. 35 | 36 | ![Account selection](https://user-images.githubusercontent.com/2653576/130853544-4a0c8251-5720-4cd1-ac95-ecc84b740c85.png "image_tooltip") 37 | 38 | After selecting “Add” you will need to confirm the address with your ledger device. 39 | 40 | Congrats, you have successfully attached your Ledger account to Celo Terminal. 41 | -------------------------------------------------------------------------------- /docs/celo-holder-guide/connecting-ledger-celo-web-wallet.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Connect Ledger to Celo Web Wallet 4 | description: How to connect a ledger wallet to the Celo Web Wallet. 5 | 6 | --- 7 | 8 | # Connect Ledger to Celo Web Wallet 9 | 10 | How to connect a ledger wallet to the Celo Web Wallet. 11 | 12 | ___ 13 | 14 | ## Download Celo Web Wallet 15 | 16 | Navigate to [https://celowallet.app/setup](https://celowallet.app/setup). Choose “Use Existing Account”. 17 | 18 | ![https://Celowallet.app/setup](https://user-images.githubusercontent.com/2653576/130851740-742bb884-7ab7-465f-9d33-861ac6a5e909.png "image_tooltip") 19 | 20 | ## Use Ledger 21 | 22 | Select “Use Ledger” 23 | 24 | ![https://celowallet.app/setup/existing](https://user-images.githubusercontent.com/2653576/130851953-92ab2c36-01d3-493c-95d4-dce1d39f05fe.png "image_tooltip") 25 | 26 | ## Import Account 27 | 28 | The first account starts at index 0 (default account address). After Address index has been selected, choose “Import Account” 29 | 30 | ![https://celowallet.app/setup/ledger](https://user-images.githubusercontent.com/2653576/130852300-9109a73e-8c2d-4110-a771-c9aa956ac388.png "image_tooltip") 31 | 32 | ## Ledger Plugin 33 | 34 | Plugin your ledger device and select connect. 35 | 36 | ![https://celowallet.app/setup](https://user-images.githubusercontent.com/2653576/130852493-2da67fc4-22b2-4970-81b1-cf64ab80759e.png "image_tooltip") 37 | 38 | Congrats, you have successfully attached your Ledger account to Celo Wallet. 39 | -------------------------------------------------------------------------------- /docs/celo-holder-guide/cusd.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Asset Management Guide 3 | description: Access and account management for holding, exchanging, or sending Celo Dollars (cUSD) and stablecoins. 4 | slug: /celo-owner-guide/cusd 5 | --- 6 | # Asset Management 7 | 8 | Access and account management for holding, exchanging, or sending Celo Dollars (cUSD) and stablecoins. 9 | 10 | ___ 11 | 12 | ## Prerequisites 13 | 14 | This guide assumes: 15 | 16 | - You have read [Key Management](/validator-guide/key-management/summary.md) on Celo 17 | - You have installed the [Celo Command Line Interface](/command-line-interface/introduction.md) (Celo CLI) 18 | 19 | ## Choose a Node 20 | 21 | In order to execute the tasks listed below, you will need to point the Celo CLI to a node that is synchronized with the [Mainnet](../getting-started/mainnet). There are two options explained [here](celo-holder-guide/quick-start.md#deployment). 22 | 23 | ## Create an Account 24 | 25 | There are two ways to create an account: 26 | 27 | - (Recommended) use [accounts generated by Ledger](celo-holder-guide/ledger.md), if you possess a [Ledger hardware wallet](https://shop.ledger.com/products/ledger-nano-s) 28 | - Use CLI to [generate an account](getting-started/mainnet/running-a-full-node-in-mainnet.md#create-an-account-and-get-its-address) -- this approach is less secure and hence not recommended 29 | 30 | After creating an account, record its address in environment variables: 31 | 32 | ``` 33 | export CELO_ACCOUNT_ADDRESS= 34 | ``` 35 | 36 | ## Exchange CELO for Stablecoins 37 | 38 | Once you have deposited CELO to your account, you can check your balance: 39 | 40 | ``` 41 | celocli account:balance $CELO_ACCOUNT_ADDRESS 42 | ``` 43 | 44 | As an example of a common stablecoin swap, you can exchange CELO for cUSD using the following command. This exchanges CELO for stable tokens (cUSD by default) via the stability mechanism. Note that the unit of value is CELO Wei (1 CELO = 10^18 CELO Wei). 45 | 46 | ``` 47 | celocli exchange:celo --value --from $CELO_ACCOUNT_ADDRESS 48 | ``` 49 | 50 | ## Transfer Stablecoins 51 | 52 | When you have sufficient balance, you can send stablecoins such as cUSD to other accounts. Note that the unit of value is cUSD Wei (1 cUSD = 10^18 cUSD Wei). 53 | 54 | ``` 55 | celocli transfer:dollars --from $CELO_ACCOUNT_ADDRESS --to --value 56 | ``` 57 | -------------------------------------------------------------------------------- /docs/celo-holder-guide/governance-cheat-sheet.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Governance Cheat Sheet 3 | description: List of governable parameters and governance restrictions on Celo. 4 | slug: /celo-owner-guide/governance-cheat-sheet 5 | --- 6 | 7 | # Governance Cheat Sheet 8 | 9 | List of governable parameters and governance restrictions on Celo. 10 | 11 | ___ 12 | 13 | ## Governable Parameters 14 | 15 | * The stability protocol, including the exchange 16 | * What the protocol does with data feeds from Oracles 17 | * Adding or removing stablecoins 18 | * Whitelisting stablecoins (or other ERC20s) for use in paying gas fees 19 | * The identity protocol, including how phone number attestations works 20 | * Linking of signers and off-chain metadata (e.g claims) to accounts 21 | * Most of Proof of Stake protocol, including elections, locked gold, slashing parameters 22 | * On-chain governance itself 23 | * MinimumClientVersion 24 | * BlockGasLimit 25 | * IntrinsicGasForAlternativeFeeCurrency 26 | 27 | ## Things That Can't Be Modified By Governance 28 | 29 | * The protocol by which nodes communicate 30 | * The format of block headers, block bodies, the fields in transactions, etc 31 | * How nodes sync 32 | * How nodes store their data locally 33 | * Most parameters that affect the blockchain 34 | -------------------------------------------------------------------------------- /docs/celo-holder-guide/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Use Celo 3 | description: Download a wallet, manage Celo assets, and start using the Celo network. 4 | --- 5 | 6 | import PageRef from '@components/PageRef' 7 | import Tabs from '@theme/Tabs'; 8 | import TabItem from '@theme/TabItem'; 9 | 10 | # Use Celo 11 | 12 | Download a wallet, manage Celo assets, and start using the Celo network. 13 | 14 | --- 15 | 16 | [Celo](https://celo.org/) users have access to a wide variety of tools, assets, and capabilities provided by the Celo Network. Install a Celo wallet, get Celo assets, and use the Celo protocol to send, spend, bridge, or connect assets with any Celo application. 17 | 18 | :::tip 19 | 20 | Not ready to use Celo? [Learn more about Celo](../../docs/welcome.md). 21 | 22 | ::: 23 | 24 | ## Get CELO 25 | 26 | 27 | 28 | 29 | ## Use the Platform 30 | 31 | 32 | 33 | 34 | 35 | ## Advanced Features 36 | 37 | 38 | 39 | 40 | :::tip 41 | 42 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 43 | 44 | ::: 45 | -------------------------------------------------------------------------------- /docs/celo-holder-guide/owners.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Get CELO 3 | description: Start sending, spending, and earning crypto from your mobile phone 4 | --- 5 | 6 | import PageRef from '@components/PageRef' 7 | import Tabs from '@theme/Tabs'; 8 | import TabItem from '@theme/TabItem'; 9 | 10 | # Get CELO 11 | 12 | Start sending, spending, and earning crypto from your mobile phone. 13 | 14 | --- 15 | 16 | [Celo Owners](https://celo.org/buy) can start transacting with 6 billion other smartphone users around the world from your phone and on the go. Transact in seconds — at a fraction of the cost of other crypto platforms. Anyone who holds any amount of CELO is empowered to vote on governance proposals that direct how the core technology operates today and in the future. 17 | 18 | ## Discover CELO 19 | 20 | CELO is listed on 20+ exchanges worldwide. 21 | 22 | 23 | 24 | 25 | 26 | ## Manage Celo Assets 27 | 28 | 29 | 30 | 31 | 32 | 33 | ## Voting as a Celo Owner 34 | 35 | 36 | 37 | 38 | 39 | ## Asset Recovery 40 | 41 | 42 | 43 | 44 | :::tip 45 | 46 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 47 | 48 | ::: 49 | -------------------------------------------------------------------------------- /docs/command-line-interface/autocomplete.md: -------------------------------------------------------------------------------- 1 | # `celocli autocomplete` 2 | 3 | display autocomplete installation instructions 4 | 5 | 6 | ## `celocli autocomplete [SHELL]` 7 | 8 | display autocomplete installation instructions 9 | 10 | ``` 11 | display autocomplete installation instructions 12 | 13 | USAGE 14 | $ celocli autocomplete [SHELL] 15 | 16 | ARGUMENTS 17 | SHELL shell type 18 | 19 | OPTIONS 20 | -r, --refresh-cache Refresh cache (ignores displaying instructions) 21 | 22 | EXAMPLES 23 | $ celocli autocomplete 24 | 25 | $ celocli autocomplete bash 26 | 27 | $ celocli autocomplete zsh 28 | 29 | $ celocli autocomplete --refresh-cache 30 | ``` 31 | 32 | _See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v0.1.5/src/commands/autocomplete/index.ts)_ 33 | -------------------------------------------------------------------------------- /docs/command-line-interface/commands.md: -------------------------------------------------------------------------------- 1 | # `celocli commands` 2 | 3 | list all the commands 4 | 5 | 6 | ## `celocli commands` 7 | 8 | list all the commands 9 | 10 | ``` 11 | list all the commands 12 | 13 | USAGE 14 | $ celocli commands 15 | 16 | OPTIONS 17 | -h, --help show CLI help 18 | -j, --json display unfiltered api data in json format 19 | -x, --extended show extra columns 20 | --columns=columns only show provided columns (comma-separated) 21 | --csv output is csv format [alias: --output=csv] 22 | --filter=filter filter property by partial string matching, ex: name=foo 23 | --hidden show hidden commands 24 | --no-header hide table header from output 25 | --no-truncate do not truncate output to fit screen 26 | --output=csv|json|yaml output in a more machine friendly format 27 | --sort=sort property to sort by (prepend '-' for descending) 28 | ``` 29 | 30 | _See code: [@oclif/plugin-commands](https://github.com/oclif/plugin-commands/blob/v1.3.0/src/commands/commands.ts)_ 31 | -------------------------------------------------------------------------------- /docs/command-line-interface/config.md: -------------------------------------------------------------------------------- 1 | # `celocli config` 2 | 3 | Configure CLI options which persist across commands 4 | 5 | 6 | ## `celocli config:get` 7 | 8 | Output network node configuration 9 | 10 | ``` 11 | Output network node configuration 12 | 13 | USAGE 14 | $ celocli config:get 15 | 16 | OPTIONS 17 | --globalHelp View all available global flags 18 | ``` 19 | 20 | _See code: [src/commands/config/get.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/config/get.ts)_ 21 | 22 | ## `celocli config:set` 23 | 24 | Configure running node information for propogating transactions to network 25 | 26 | ``` 27 | Configure running node information for propogating transactions to network 28 | 29 | USAGE 30 | $ celocli config:set 31 | 32 | OPTIONS 33 | -n, --node=node 34 | URL of the node to run commands against (defaults to 'http://localhost:8545') 35 | 36 | --gasCurrency=(auto|Auto|CELO|celo|cUSD|cusd|cEUR|ceur|cREAL|creal) 37 | Use a specific gas currency for transaction fees (defaults to 'auto' which uses 38 | whatever feeCurrency is available) 39 | 40 | --globalHelp 41 | View all available global flags 42 | 43 | EXAMPLES 44 | set --node ws://localhost:2500 45 | 46 | set --node /geth.ipc 47 | 48 | set --gasCurrency cUSD 49 | 50 | set --gasCurrency CELO 51 | ``` 52 | 53 | _See code: [src/commands/config/set.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/config/set.ts)_ 54 | -------------------------------------------------------------------------------- /docs/command-line-interface/help.md: -------------------------------------------------------------------------------- 1 | # `celocli help` 2 | 3 | display help for celocli 4 | 5 | 6 | ## `celocli help [COMMAND]` 7 | 8 | display help for celocli 9 | 10 | ``` 11 | display help for <%= config.bin %> 12 | 13 | USAGE 14 | $ celocli help [COMMAND] 15 | 16 | ARGUMENTS 17 | COMMAND command to show help for 18 | 19 | OPTIONS 20 | --all see all commands in CLI 21 | ``` 22 | 23 | _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v1.2.11/src/commands/help.ts)_ 24 | -------------------------------------------------------------------------------- /docs/command-line-interface/multisig.md: -------------------------------------------------------------------------------- 1 | # `celocli multisig` 2 | 3 | Shows information about multi-sig contract 4 | 5 | 6 | ## `celocli multisig:show ADDRESS` 7 | 8 | Shows information about multi-sig contract 9 | 10 | ``` 11 | Shows information about multi-sig contract 12 | 13 | USAGE 14 | $ celocli multisig:show ADDRESS 15 | 16 | OPTIONS 17 | --all Show info about all transactions 18 | --globalHelp View all available global flags 19 | --raw Do not attempt to parse transactions 20 | --tx=tx Show info for a transaction 21 | 22 | EXAMPLES 23 | show 0x5409ed021d9299bf6814279a6a1411a7e866a631 24 | 25 | show 0x5409ed021d9299bf6814279a6a1411a7e866a631 --tx 3 26 | 27 | show 0x5409ed021d9299bf6814279a6a1411a7e866a631 --all --raw 28 | ``` 29 | 30 | _See code: [src/commands/multisig/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/multisig/show.ts)_ 31 | 32 | ## `celocli multisig:transfer ADDRESS` 33 | 34 | Ability to approve CELO transfers to and from multisig. Submit transaction or approve a matching existing transaction 35 | 36 | ``` 37 | Ability to approve CELO transfers to and from multisig. Submit transaction or approve a matching existing transaction 38 | 39 | USAGE 40 | $ celocli multisig:transfer ADDRESS 41 | 42 | OPTIONS 43 | --amount=amount (required) Amount to transfer, 44 | e.g. 10e18 45 | 46 | --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account transferring 47 | value to the recipient 48 | 49 | --globalHelp View all available global flags 50 | 51 | --sender=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Identify sender if performing 52 | transferFrom 53 | 54 | --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Recipient of transfer 55 | 56 | --transferFrom Perform transferFrom instead of 57 | transfer in the ERC-20 interface 58 | 59 | EXAMPLES 60 | transfer --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --amount 61 | 200000e18 --from 0x123abc 62 | 63 | transfer --transferFrom --sender 0x123abc --to 64 | 0x5409ed021d9299bf6814279a6a1411a7e866a631 --amount 200000e18 --from 0x123abc 65 | ``` 66 | 67 | _See code: [src/commands/multisig/transfer.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/multisig/transfer.ts)_ 68 | -------------------------------------------------------------------------------- /docs/command-line-interface/network.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: celocli network 3 | description: View details about the network, like contracts and parameters 4 | --- 5 | 6 | # `celocli network` 7 | 8 | View details about the network, like contracts and parameters 9 | 10 | 11 | ## `celocli network:contracts` 12 | 13 | Lists Celo core contracts and their addesses. 14 | 15 | ``` 16 | Lists Celo core contracts and their addesses. 17 | 18 | USAGE 19 | $ celocli network:contracts 20 | 21 | OPTIONS 22 | -x, --extended show extra columns 23 | --columns=columns only show provided columns (comma-separated) 24 | --csv output is csv format [alias: --output=csv] 25 | --filter=filter filter property by partial string matching, ex: name=foo 26 | --globalHelp View all available global flags 27 | --no-header hide table header from output 28 | --no-truncate do not truncate output to fit screen 29 | --output=csv|json|yaml output in a more machine friendly format 30 | --sort=sort property to sort by (prepend '-' for descending) 31 | ``` 32 | 33 | _See code: [src/commands/network/contracts.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/network/contracts.ts)_ 34 | 35 | ## `celocli network:info` 36 | 37 | View general network information such as the current block number 38 | 39 | ``` 40 | View general network information such as the current block number 41 | 42 | USAGE 43 | $ celocli network:info 44 | 45 | OPTIONS 46 | -n, --lastN=lastN [default: 1] Fetch info about the last n epochs 47 | --globalHelp View all available global flags 48 | ``` 49 | 50 | _See code: [src/commands/network/info.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/network/info.ts)_ 51 | 52 | ## `celocli network:parameters` 53 | 54 | View parameters of the network, including but not limited to configuration for the various Celo core smart contracts. 55 | 56 | ``` 57 | View parameters of the network, including but not limited to configuration for the various Celo core smart contracts. 58 | 59 | USAGE 60 | $ celocli network:parameters 61 | 62 | OPTIONS 63 | --globalHelp View all available global flags 64 | --raw Display raw numerical configuration 65 | ``` 66 | 67 | _See code: [src/commands/network/parameters.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/network/parameters.ts)_ 68 | -------------------------------------------------------------------------------- /docs/command-line-interface/node.md: -------------------------------------------------------------------------------- 1 | # `celocli node` 2 | 3 | Manage your Celo node 4 | 5 | 6 | ## `celocli node:accounts` 7 | 8 | List the addresses that this node has the private keys for. 9 | 10 | ``` 11 | List the addresses that this node has the private keys for. 12 | 13 | USAGE 14 | $ celocli node:accounts 15 | 16 | OPTIONS 17 | --globalHelp View all available global flags 18 | ``` 19 | 20 | _See code: [src/commands/node/accounts.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/node/accounts.ts)_ 21 | 22 | ## `celocli node:synced` 23 | 24 | Check if the node is synced 25 | 26 | ``` 27 | Check if the node is synced 28 | 29 | USAGE 30 | $ celocli node:synced 31 | 32 | OPTIONS 33 | --globalHelp View all available global flags 34 | --verbose output the full status if syncing 35 | ``` 36 | 37 | _See code: [src/commands/node/synced.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/node/synced.ts)_ 38 | -------------------------------------------------------------------------------- /docs/command-line-interface/reserve.md: -------------------------------------------------------------------------------- 1 | # `celocli reserve` 2 | 3 | Shows information about reserve 4 | 5 | 6 | ## `celocli reserve:status` 7 | 8 | Shows information about reserve 9 | 10 | ``` 11 | Shows information about reserve 12 | 13 | USAGE 14 | $ celocli reserve:status 15 | 16 | OPTIONS 17 | --globalHelp View all available global flags 18 | 19 | EXAMPLE 20 | status 21 | ``` 22 | 23 | _See code: [src/commands/reserve/status.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/reserve/status.ts)_ 24 | 25 | ## `celocli reserve:transfergold` 26 | 27 | Transfers reserve gold to other reserve address 28 | 29 | ``` 30 | Transfers reserve gold to other reserve address 31 | 32 | USAGE 33 | $ celocli reserve:transfergold 34 | 35 | OPTIONS 36 | --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Spender's address 37 | --globalHelp View all available global flags 38 | --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Receiving address 39 | 40 | --useMultiSig True means the request will be sent 41 | through multisig. 42 | 43 | --value=value (required) The unit amount of CELO 44 | 45 | EXAMPLES 46 | transfergold --value 9000 --to 0x91c987bf62D25945dB517BDAa840A6c661374402 --from 47 | 0x5409ed021d9299bf6814279a6a1411a7e866a631 48 | 49 | transfergold --value 9000 --to 0x91c987bf62D25945dB517BDAa840A6c661374402 --from 50 | 0x5409ed021d9299bf6814279a6a1411a7e866a631 --useMultiSig 51 | ``` 52 | 53 | _See code: [src/commands/reserve/transfergold.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/reserve/transfergold.ts)_ 54 | -------------------------------------------------------------------------------- /docs/command-line-interface/rewards.md: -------------------------------------------------------------------------------- 1 | # `celocli rewards` 2 | 3 | Show rewards information about a voter, registered Validator, or Validator Group 4 | 5 | 6 | ## `celocli rewards:show` 7 | 8 | Show rewards information about a voter, registered Validator, or Validator Group 9 | 10 | ``` 11 | Show rewards information about a voter, registered Validator, or Validator Group 12 | 13 | USAGE 14 | $ celocli rewards:show 15 | 16 | OPTIONS 17 | -x, --extended show extra columns 18 | 19 | --columns=columns only show provided columns 20 | (comma-separated) 21 | 22 | --csv output is csv format [alias: 23 | --output=csv] 24 | 25 | --epochs=epochs [default: 1] Show results for 26 | the last N epochs 27 | 28 | --estimate Estimate voter rewards from 29 | current votes 30 | 31 | --filter=filter filter property by partial 32 | string matching, ex: name=foo 33 | 34 | --globalHelp View all available global 35 | flags 36 | 37 | --group=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Validator Group to show 38 | rewards for 39 | 40 | --no-header hide table header from output 41 | 42 | --no-truncate do not truncate output to fit 43 | screen 44 | 45 | --output=csv|json|yaml output in a more machine 46 | friendly format 47 | 48 | --slashing Show rewards for slashing 49 | 50 | --sort=sort property to sort by (prepend 51 | '-' for descending) 52 | 53 | --validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Validator to show rewards for 54 | 55 | --voter=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Voter to show rewards for 56 | 57 | EXAMPLE 58 | show --address 0x5409ed021d9299bf6814279a6a1411a7e866a631 59 | ``` 60 | 61 | _See code: [src/commands/rewards/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/rewards/show.ts)_ 62 | -------------------------------------------------------------------------------- /docs/community/CIP-contributors.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Community Improvement Proposals 3 | description: Join a community of developers, designers, dreamers, and doers building prosperity for everyone. 4 | --- 5 | 6 | # Community Improvement Proposals 7 | 8 | Celo’s Improvement Proposals \(CIPs\) describe standards for the Celo platform, including the core protocol specifications, SDK, and contract standards. A CIP is a design document that should provide background information, a rationale for the proposal, detailed solution including technical specifications, and, if any, a list of potential risks. The proposer is responsible for soliciting community feedback and for driving consensus. 9 | 10 | Participation in the Celo project is subject to the [Code of Conduct](https://celo.org/code-of-conduct). 11 | 12 | ## Submitting CIPs 13 | 14 | Draft all proposals following the template below and submit to the [CIPs repository](https://github.com/celo-org/celo-proposals) via a PR \(pull request\). 15 | 16 | CIP template: 17 | 18 | - **Summary:** Describe your proposal in 280 characters or less. 19 | - **Abstract**: Provide a short description of the technical issue being addressed. 20 | - **Motivation:** Clearly explain why the proposed change should be made. It should layout the current Celo protocol shortcomings it addresses and why doing so is important. 21 | - **Specification:** Define and explain in detail the technical requirements for new features and/or changes proposed. 22 | - **Rationale**: Explain the reasoning behind your approach. It should cover alternative approaches considered, related work, and trade-offs made. 23 | - **Implementation:** For all proposals going through the governance process, this section should reference the code implementing the proposed change. It’s recommended to get community feedback before writing any code. 24 | - **Risks:** Highlight any risks and concerns that may affect consensus, proof-of-stake, governance, protocol economics, the stability protocol, security, and privacy. 25 | 26 | :::tip 27 | 28 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 29 | 30 | ::: -------------------------------------------------------------------------------- /docs/community/code-contributors.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Code Contributors 3 | description: How to contribute to the Celo ecosystem as a member of the community. 4 | --- 5 | 6 | # Code Contributors 7 | 8 | How to contribute to the Celo ecosystem as a member of the community. 9 | 10 | ___ 11 | 12 | ## Who are Code Contributors? 13 | 14 | Code Contributors are developers in the Celo community that contribute to the [Celo monorepo](https://github.com/celo-org/celo-monorepo) or the [core protocol code](https://github.com/celo-org/celo-blockchain). They help improve the protocol and infrastructure by fixing bugs and designing new features that help improve the Celo platform. 15 | 16 | ## How to Get Started 17 | 18 | Find an area that is of interest and you would like to help with. Look for issues that are tagged as "[good first issue](https://github.com/celo-org/celo-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)", "[help wanted](https://github.com/celo-org/celo-monorepo/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)" and "[1 hour tasks](https://github.com/celo-org/celo-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3A%221+hour+tasks%22)" to get started. If you’d like to dig deeper, feel free to look at other labels and TODO’s in code comments. If there’s an issue you’re interested in contributing to or taking over, assign yourself to it and add a comment with your plans to address and target timeline. If there’s already someone assigned to it, please check with them before adding yourself to the assignee list. 19 | 20 | Tasks range from minor to major improvements. Based on your interests, skillset, and level of comfort with the code-base feel free to contribute where you see appropriate. Our only ask is that you follow the guidelines below to ensure a smooth and effective collaboration. 21 | ## Please make sure your PR: 22 | 23 | - Requests the appropriate reviewers. When in doubt, consult the CODEOWNERS file for suggestions. 24 | - Provides a comprehensive description of the problem addressed and changes made. 25 | - Explains dependencies and backwards incompatible changes . 26 | - Contains unit and end-to-end tests and a description of how these were run. 27 | - Includes changes to relevant documentation. 28 | 29 | If you are submitting an issue, please double check that there doesn’t already exist and issue for the work you have in mind. 30 | 31 | ## Please make sure your issue: 32 | 33 | - Is created in the correct repository. 34 | - Has a clear detailed title such that it can’t be confused with other Celo issues. 35 | - Provides a comprehensive description of the current and expected behavior including, if relevant, links to external references and specific implementation guidelines. 36 | - Is tagged with the relevant labels. 37 | - Is assigned if you or someone else is already working on it. 38 | 39 | ## Finding Us and Other Contributors 40 | 41 | :::tip 42 | 43 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 44 | 45 | ::: 46 | -------------------------------------------------------------------------------- /docs/community/code-of-conduct.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Code of Conduct 3 | --- 4 | 5 | All communication and contributions to the Celo project are subject to the [Celo Code of Conduct](https://celo.org/code-of-conduct). 6 | -------------------------------------------------------------------------------- /docs/community/contributing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Contributors 3 | description: Join a community of developers, designers, dreamers, and doers building prosperity for everyone. 4 | --- 5 | 6 | import PageRef from '@components/PageRef' 7 | import Tabs from '@theme/Tabs'; 8 | import TabItem from '@theme/TabItem'; 9 | 10 | # Celo Contributors 11 | 12 | Join a community of developers, designers, dreamers, and doers building prosperity for everyone. 13 | 14 | --- 15 | 16 | Celo is a decentralized community of creators -- developers, designers, dreamers, doers -- who are motivated by the power of accessible financial tools to make the world a better place. We are guided by [Celo's Core tenets](https://celo.org/community). 17 | 18 | :::tip 19 | 20 | Not ready to become a Celo Contributor? [Learn more about Celo](../../docs/welcome.md). 21 | 22 | ::: 23 | 24 | ## Get Started as a Celo Contributor 25 | 26 | Find your purpose and join a community focused on building the conditions of prosperity—for everyone 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | :::tip 35 | 36 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 37 | 38 | ::: 39 | -------------------------------------------------------------------------------- /docs/community/documentation-contributors.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Technical Writers 3 | description: How to contribute to the Celo community documentation. 4 | --- 5 | 6 | # Technical Writers 7 | 8 | How to contribute to the Celo community documentation. 9 | 10 | ___ 11 | 12 | import YouTube from '@components/YouTube'; 13 | 14 | ## Who are Celo technical writers? 15 | 16 | Technical writers support the Celo community by educating developers about Celo through engaging, informative, and insightful documentation. 17 | 18 | ## How to Contribute 19 | 20 | 21 | 22 | ## Edit an existing page 23 | 24 | To edit an existing page in the documentation, create a fork of the repo, commit your edits and submit a PR. 25 | 26 | * Go to the page in the docs 27 | * Click “Edit this page” at the bottom of the page 28 | * Edit the page directly on GitHub 29 | * Describe the edit in the commit 30 | * Select “Create a new branch and start a pull request” 31 | * Describe changes in the Pull Request (PR) 32 | * Select “critesjosh” as a reviewer 33 | * Changes must be approved and pass all of the site build checks before being merged. 34 | 35 | ## Add/remove pages 36 | 37 | To add a new page to the documentation, create a fork, add the new pages and update the [table of contents file](https://github.com/celo-org/celo-monorepo/blob/master/packages/docs/SUMMARY.md) to include your new pages in the appropriate location and submit a PR. 38 | 39 | * Add or delete pages directly in Github 40 | * Put new pages where you think makes the most sense, we can move them later 41 | * Create a PR to have your changes added to the live version of the site 42 | * Update the file called “sidebars.js” in the main folder 43 | * This file contains the site layout that you see on the left side of the docs site 44 | * Add or remove the appropriate files from the list 45 | 46 | ## Other languages 47 | 48 | View [Translation Contributions](/community/translation-contributors) for details about translating documentation. 49 | 50 | :::tip 51 | 52 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 53 | 54 | ::: 55 | -------------------------------------------------------------------------------- /docs/community/guidelines.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Contributor Guidelines 3 | description: Join a community of developers, designers, dreamers, and doers building prosperity for everyone. 4 | --- 5 | 6 | # Contributor Guidelines 7 | 8 | Guidelines for submitting contributions to the Celo community. 9 | 10 | ___ 11 | 12 | import PageRef from '@components/PageRef' 13 | import Tabs from '@theme/Tabs'; 14 | import TabItem from '@theme/TabItem'; 15 | 16 | 17 | Celo is open source and we welcome open participation. We strive to fulfill our [Community Tenets](https://celo.org/community) by being an open and inclusive community where everyone feels welcome and empowered to contribute. This also means following some ground rules and abiding by Celo’s [Code of Conduct](https://celo.org/code-of-conduct). 18 | 19 | :::tip 20 | 21 | Not ready to become a Celo Developer? [Learn more about Celo](../../docs/welcome.md). 22 | 23 | ::: 24 | 25 | ## How to Contribute 26 | 27 | Our community includes a group of contributors that help develop, write, translate, and improve Celo. Anyone is welcome to join the community and contribute their skills to help empower other community members and grow the Celo ecosystem. 28 | 29 | 30 | 31 | 32 | 33 | 34 | :::note 35 | 36 | A list of active contributors can be found at [celo.org/about](https://celo.org/about#contributors) 37 | 38 | ::: 39 | 40 | ## Ground Rules 41 | 42 | There are a few basic ground rules for contributing: 43 | 44 | - PRs \(pull requests\) are preferred to issues, especially for small changes such as typos. Issues should be used for missing features and for broad-based changes. 45 | - For on-going work, use your own side-branch and not the master branch. 46 | - For non-trivial amounts of work, we encourage you to submit PRs regularly to solicit feedback. 47 | - Please double check your work before submitting it. Submissions with typos, spelling, and grammatical errors may not be merged until fixed. 48 | - Try to remain as objective and fact-based as possible. 49 | 50 | ## Submitting PRs 51 | 52 | We encourage you to PR \(pull request\) your work regularly and often to solicit feedback and to ensure everyone has an idea of what you’re working on. If you’ve just started, we suggest creating a PR with “WIP” \(Work In Progress\) in the title and let us know when it’s ready to review in the comments. 53 | 54 | ## Code of Conduct 55 | 56 | Participation in the Celo project is subject to the [Code of Conduct](https://celo.org/code-of-conduct). -------------------------------------------------------------------------------- /docs/community/join-the-community.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Join the Celo Community 3 | description: Find Celo on social media, contribute to the codebase, or chat with the community. 4 | --- 5 | 6 | # Join the Community 7 | 8 | Find Celo on social media, contribute to the codebase, or chat with the community. 9 | 10 | --- 11 | 12 | ## Social Media 13 | 14 | Follow on Social Media to learn more about Celo. 15 | 16 | - [Blog](https://medium.com/celoOrg) 17 | - [GitHub](https://github.com/celo-org/celo-monorepo) 18 | - [Twitter](https://twitter.com/CeloOrg) 19 | - [Forum](https://forum.celo.org/) 20 | - [Chat](https://discord.gg/6yWMkgM) 21 | - [YouTube](https://youtube.com/channel/UCCZgos_YAJSXm5QX5D5Wkcw) 22 | - [Instagram](https://www.instagram.com/celoorg/) 23 | - [LinkedIn](https://www.linkedin.com/company/celoOrg/) 24 | - [Twitch](https://www.twitch.tv/celoorg) 25 | - [Reddit](https://www.reddit.com/r/celo/) 26 | - [Telegram](https://t.me/celoplatform) 27 | 28 | ## Discussions 29 | 30 | Ask questions, find answers, and get in touch. 31 | 32 | - [Celo Forum](https://forum.celo.org/) 33 | - [Celo Developer Chat on Discord](https://chat.celo.org/) 34 | - [Celo Subreddit](https://www.reddit.com/r/celo/) 35 | - [Celo Website](https://celo.org/build) 36 | - [Host a Meetup](https://airtable.com/shrTCM7LddTxOm3r6) 37 | 38 | ## Contributions 39 | 40 | Browse the code, raise an issue, or contribute a pull request. 41 | 42 | - [Monorepo GitHub Page](https://github.com/celo-org/celo-monorepo) 43 | - [Celo Client GitHub Page](https://github.com/celo-org/celo-blockchain) 44 | - [Contributing Guide](https://docs.celo.org/community/contributing) 45 | - [Celo Build Page](https://celo.org/build) 46 | -------------------------------------------------------------------------------- /docs/community/release-process/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Release Process 3 | description: Overview of the release process for updates to the Celo platform. 4 | --- 5 | import PageRef from '@components/PageRef' 6 | 7 | # Release Process 8 | 9 | Overview of the release process for updates to the Celo platform. 10 | 11 | :::tip 12 | 13 | It is critical that updates to the Celo platform can be released on a regular basis, and in a way that ensures the security and reliability of the Celo network. In order to facilitate this, the following release processes are published here. 14 | 15 | ::: 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/community/translation-contributors.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Translators 3 | description: Join a community of developers, designers, dreamers, and doers building prosperity for everyone. 4 | --- 5 | 6 | # Translators 7 | 8 | How to contribute to the Celo community as a translator. 9 | 10 | ___ 11 | 12 | ## Who are Translation Contributors? 13 | 14 | Translators support the community expanding Celo to non-English speaking communities by translating and sharing content in different languages. 15 | 16 | ## How to Contribute 17 | 18 | * Go to [https://celo.crowdin.com/](https://celo.crowdin.com/) 19 | * Create an account 20 | * Start translating! 21 | * Submit questions with Crowdin Messages 22 | * Translation request form 23 | 24 | :::tip 25 | 26 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 27 | 28 | ::: -------------------------------------------------------------------------------- /docs/developer-resources/contractkit/data-encryption-key.md: -------------------------------------------------------------------------------- 1 | # Data Encryption Key 2 | 3 | An account may register a data encryption key (DEK) that can be used for lightweight signing or encryption operations. Some examples of DEK usage are: 4 | 5 | 1. Supporting private payment comments between two users 6 | 2. Signing authentication headers to the Oblivious Decentralized Identifier Service 7 | 3. Sharing profile picture and name privately between two users 8 | 9 | Most Valora users automatically register a DEK with their wallet when they go through the onboarding flow. The DEK can be set during account creation or registered after as follows: 10 | 11 | ```ts 12 | const accountWrapper: AccountsWrapper = await contractKit.contracts.getAccounts() 13 | const setKeyTx = accountWrapper.setAccountDataEncryptionKey(dekPublicKey) 14 | ``` 15 | 16 | When using the DEK, it's important to check that the DEK is the latest that's registered for a user. This can be done by querying the account contract and comparing the resulting public key with the key that's expected. 17 | 18 | ```ts 19 | // Query the on-chain data encryption key for a user 20 | const accountWrapper: AccountsWrapper = await contractKit.contracts.getAccounts() 21 | const dataEncryptionKey = await accountWrapper.getDataEncryptionKey(address) 22 | // Check that this matches with the public key 23 | ... 24 | ``` 25 | -------------------------------------------------------------------------------- /docs/developer-resources/contractkit/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo ContractKit 3 | description: Overview of ContractKit, its features, purpose, and resources to help you get started. 4 | slug: /developer-guide/contractkit 5 | --- 6 | 7 | import PageRef from '@components/PageRef' 8 | 9 | # ContractKit 10 | 11 | Overview of ContractKit, its features, purpose, and resources to help you get started. 12 | 13 | --- 14 | 15 | ## What is ContractKit? 16 | 17 | ContractKit is a library to help developers and validators to interact with the Celo blockchain and is well suited to developers looking for an easy way to integrate Celo Smart Contracts within their applications. 18 | 19 | Contractkit includes common functionality to make it easier to get started building. 20 | 21 | **What you can do?** 22 | 23 | [ContractKit](../community/release-process/base-cli-contractkit-dappkit-utils) supports the following functionality: 24 | 25 | - Connect to a node 26 | - Access Web3 object to interact with node's JSON RPC API 27 | - Send Transaction with Celo's extra fields: (feeCurrency, gatewayFeeRecipient, and gatewayFee) 28 | - Simple interface to interact with CELO and cUSD 29 | - Simple interface to interact with Celo Core contracts 30 | - Local sign transactions 31 | - Utilities 32 | - Query on-chain identifier for a phone number 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/developer-resources/contractkit/notes-web3-with-contractkit.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using Web3 from ContractKit with Celo 3 | description: How to use Web3 from ContractKit to read data from the Celo blockchain. 4 | slug: /developer-guide/contractkit/notes-web3-with-contractkit 5 | --- 6 | 7 | # Using Web3 from ContractKit 8 | 9 | How to use Web3 from ContractKit to read data from the Celo blockchain. 10 | 11 | ___ 12 | 13 | :::tip 14 | 15 | Although the [Web3 library](https://web3js.readthedocs.io/) was intended to be used only with `Ethereum`, due to the nature of `Celo`, we can still use the majority of its features. 16 | 17 | ::: 18 | 19 | The ContractKit, for every interaction with the node, uses internally a Web3 instance. 20 | 21 | Because of this, the `Ethereum` JSON-RPC calls done via the web3 (except some specific calls that we will explain in this page) are also supported 22 | 23 | For example: 24 | 25 | ```ts 26 | const web3 = kit.web3 27 | 28 | web3.eth.getBalance(someAddress) 29 | ``` 30 | 31 | or 32 | 33 | ```ts 34 | const web3 = kit.web3 35 | 36 | web3.eth.getBlock("latest") 37 | ``` 38 | 39 | will work the same way. 40 | 41 | ## Web3 limitations 42 | 43 | As you have read in our guide, Celo uses some extra fields: `feeCurrency`, `gatewayFeeRecipient` and `gatewayFee`, that among other things allows you to pay gas with ERC20 Tokens. These fields are expected by the node. 44 | 45 | To facilitate the life of every developer, we decided to wrap the `Provider` set in the `Web3` instance, and add our way to handle local signing using these new fields. Similar to what *Metamask* does, we intercept every transaction and perform a local signing when required. This wrapper is called `CeloProvider`. 46 | 47 | This let you use the Web3 instance to interact with node's Json RPC API in a transparent way, just deciding which Provider do you need. 48 | 49 | This is also the reason that the `Kit` requires a valid provider from the beginning. 50 | 51 | ## Local Signing 52 | 53 | As part of the [Donut hardfork](https://medium.com/celoorg/dissecting-the-donut-hardfork-23cad6015fa2) network upgrade that occurred on May 19th, 2021, the Celo network now accepts Ethereum-style transactions as well as Celo transactions. This means that you can use Ethereum transaction signing tools (like [Metamask](../../getting-started/wallets/using-metamask-with-celo), web3.js and ethers.js) to sign transactions for the Celo network. Remember that Celo is a separate layer 1 blockchain from Ethereum, so do not send Ethereum assets directly to your Celo account address on Ethereum. 54 | -------------------------------------------------------------------------------- /docs/developer-resources/contractkit/setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo ContractKit Setup 3 | description: ContractKit requirements, installation, and initialization. 4 | slug: /developer-guide/contractkit/setup 5 | --- 6 | 7 | # Setup 8 | 9 | ContractKit requirements, installation, and initialization. 10 | 11 | ___ 12 | 13 | ## Installation and System Requirements 14 | 15 | To install, run the following: 16 | 17 | ```bash npm2yarn 18 | npm install web3 @celo/contractkit 19 | ``` 20 | 21 | You will need Node.js v12.x. 22 | 23 | ## Initializing the Kit 24 | 25 | To start working with ContractKit you need a `kit` instance and a valid net to connect with. In this example will use `alfajores` (you can read more about it [here](../../getting-started/alfajores-testnet)) 26 | 27 | ```ts 28 | import Web3 from "web3"; 29 | import { newKitFromWeb3 } from "@celo/contractkit"; 30 | 31 | const web3 = new Web3("https://alfajores-forno.celo-testnet.org") 32 | const kit = newKitFromWeb3(web3); 33 | ``` 34 | 35 | Go to the [page about Forno](/developer-guide/forno) for details about different connection types and network endpoints. 36 | 37 | ## Initialize the Kit with your own node 38 | 39 | If you are hosting your own node (you can follow [this guide](/getting-started/mainnet/running-a-full-node-in-mainnet) to run one) you can connect our ContractKit to it. 40 | 41 | ```js 42 | import Web3 from "web3"; 43 | import { newKitFromWeb3 } from "@celo/contractkit"; 44 | 45 | // define localUrl and port with the ones for your node 46 | 47 | const web3 = new Web3(`${localUrl}:${port}`); 48 | const kit = newKitFromWeb3(web3); 49 | ``` 50 | 51 | Same as `Web3` we support `WebSockets`, `RPC` and connecting via `IPC`. 52 | For this last one you will have to initialize the `kit` with an instances of `Web3` that has a **valid** `IPC Provider` 53 | 54 | ```ts 55 | import Web3 from "web3"; 56 | import { newKitFromWeb3 } from "@celo/contractkit"; 57 | 58 | const web3Instance: Web3 = new Web3( 59 | new Web3.providers.IpcProvider("/Users/myuser/Library/CeloNode/geth.ipc", net) 60 | ); 61 | 62 | const kit = newKitFromWeb3(web3Instance); 63 | ``` 64 | -------------------------------------------------------------------------------- /docs/developer-resources/dappkit/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo DAppKit 3 | description: Introduction to DAppKit and resources to help you gets started. 4 | slug: /developer-guide/dappkit 5 | --- 6 | # DAppKit 7 | 8 | import PageRef from '@components/PageRef' 9 | 10 | Introduction to DAppKit and resources to help you gets started. 11 | 12 | ___ 13 | 14 | :::warning 15 | 16 | While DAppKit is functional, it is no longer being actively maintained in favor of WalletConnect. If WalletConnect does not work for your use case, you can use deep links directly. You can read more about how Valora handles this [here](https://github.com/valora-inc/wallet/blob/main/packages/mobile/docs/deeplinks.md). You can read more about how to use WalletConnect with Valora [here](/developer-resources/walkthroughs/valora-wc-v1). 17 | 18 | ::: 19 | 20 | ## What is DAppKit? 21 | 22 | DAppKit is a lightweight set of functions that allow mobile DApps to work with the Celo Wallet to sign transactions and access the user's account. This allows for a better user experience: DApps can focus on a great native experience without having to worry about key management. It also provides a simpler development experience, as no state or connection management is necessary. 23 | 24 | ## Functionality 25 | 26 | DAppKit supports the following functionality: 27 | 28 | - Request permission to access account information and phone number from the Celo Wallet 29 | - Request permission to sign transaction(s) from the Celo Wallet 30 | - Look up phone numbers using the [Identity Protocol](../../celo-codebase/protocol/identity/index.md) to find contacts using Celo. 31 | 32 | ## Design 33 | 34 | DAppKit is currently built with React Native in mind, though the excellent [Expo framework](https://expo.io) is still highly recommended for developers building mobile and web DApps on Celo. Expo offers awesome features like incredibly easy setup, hot-reloading, and more. Currently, most of our tutorials and examples involve Expo, though we are working on creating additional documentation for other app frameworks. While DAppKit was designed for mobile apps in particular, since version `1.1.0-beta.1` it offers beta support for web DApps running in the browser of a mobile device. More details about this are included in the `Usage` section below. 35 | 36 | ## Resources 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /docs/developer-resources/deploy-dapp.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Deploy on Celo 3 | description: How to deploy a dApp on Celo. 4 | --- 5 | 6 | import PageRef from '@components/PageRef' 7 | 8 | # Deploy on Celo 9 | 10 | How to deploy a dApp on Celo. 11 | 12 | --- 13 | 14 | The fastest way to deploy on Celo is to [Set up a Testnet Development Wallet](./testnet-wallet.md) and [Deploy with Remix](./deploy-remix.md). This doesn’t require installing anything on your local device and gives you access to powerful web-based tools for dApp development. Alternatively, you can set up a local development environment and deploy using many popular dApp deployment tools. 15 | 16 | :::tip 17 | 18 | Developers can build on Celo using many [Ethereum](https://ethereum.org/en/) compatible tools including Remix, Truffle, Hardhat, and others. By making a few adjustments to your project’s network configuration settings, you can deploy your new or existing dApp on Celo. 19 | 20 | Just getting started learning about how to write smart contracts? [The Solidity docs](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html) are a great place to start. 21 | 22 | ::: 23 | 24 | ## Deploy on Celo 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/developer-resources/forno/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Forno 3 | description: How to connect to Celo without running a full node using Forno. 4 | slug: /developer-guide/forno 5 | --- 6 | # Forno 7 | 8 | How to connect to Celo without running a full node using Forno. 9 | 10 | ___ 11 | 12 | ## What is Forno? 13 | 14 | Forno is a cLabs hosted node service for interacting with the Celo network. This allows you to connect to the Celo Blockchain without having to run your own node. 15 | 16 | :::tip 17 | 18 | Forno does not offer a terms of service and there are no guarantees about service uptime. For production applications, consider using [Figment Datahub](/learn/developer-tools#figment-datahub) or [Quicknode](/learn/developer-tools#quicknode). 19 | 20 | ::: 21 | 22 | Forno has HTTP and websocket endpoints that you can use to query current Celo data or post transactions that you would like to broadcast to the network. The service runs full nodes in non-archive mode, so you can query the current state of the blockchain, but cannot access historic state. 23 | 24 | Forno can be used as an `Http Provider` with [ContractKit](/developer-guide/contractkit). 25 | 26 | ```javascript 27 | const Web3 = require("web3"); 28 | const ContractKit = require("@celo/contractkit"); 29 | 30 | const web3 = new Web3("https://forno.celo.org"); 31 | const kit = ContractKit.newKitFromWeb3(web3); 32 | ``` 33 | 34 | Forno is a public node, so to send transactions from a Forno connection you will have to sign transactions with a private key before sending them to Forno. The [Hello Celo](/developer-resources/walkthroughs/hellocelo.md) guide shows you how to connect to the Alfajores testnet with Forno and use it to sign and send transactions on the network. 35 | 36 | ## Forno networks 37 | 38 | Consult [this page](/getting-started/choosing-a-network.md) to determine which network is right for you. 39 | 40 | ### Celo Mainnet 41 | 42 | ```bash 43 | https://forno.celo.org 44 | ``` 45 | 46 | Websocket support: 47 | 48 | ```bash 49 | wss://forno.celo.org/ws 50 | ``` 51 | 52 | ### Alfajores Testnet 53 | 54 | ```bash 55 | https://alfajores-forno.celo-testnet.org 56 | ``` 57 | 58 | Websocket support: 59 | 60 | ```bash 61 | wss://alfajores-forno.celo-testnet.org/ws 62 | ``` 63 | 64 | ### Baklava Testnet 65 | 66 | ``` 67 | https://baklava-forno.celo-testnet.org 68 | ``` 69 | 70 | ### Websocket connections & Event listeners 71 | 72 | Websocket connections are useful for listening to logs (aka events) emitted by a smart contract, but Forno only allows a websocket connection for 20 minutes before disconnecting. On disconnect, you can reconnect to the websocket endpoint to keep listening. [Here](https://gist.github.com/critesjosh/a230e7b2eb54c8d330ca57db1f6239db) is an example script of how to set up an event listener that reconnects when the connection is broken. 73 | -------------------------------------------------------------------------------- /docs/developer-resources/integrations/integrations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Integrate with Celo 3 | description: Collection of resources to help integrate Celo with your service. 4 | slug: /developer-guide/integrations 5 | --- 6 | 7 | import PageRef from '@components/PageRef' 8 | import Tabs from '@theme/Tabs'; 9 | import TabItem from '@theme/TabItem'; 10 | 11 | # Integrate with Celo 12 | 13 | Collection of resources to help integrate Celo with your service. 14 | 15 | --- 16 | 17 | Celo provides you with the tools to easily integrate DeFi into your existing mobile application or blockchain service. Integrating with Celo allows you to accept payments, send payouts, and manage all of your DeFi needs using our global financial infrastructure. 18 | 19 | :::tip 20 | 21 | Not ready to Integrate with Celo? [Learn more about Celo](/welcome.md). 22 | 23 | ::: 24 | 25 | ## Integrate with Celo 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | :::tip 34 | 35 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 36 | 37 | ::: 38 | -------------------------------------------------------------------------------- /docs/developer-resources/networks/alfajores-testnet.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Alfajores Testnet 3 | --- 4 | 5 | # Alfajores Testnet 6 | 7 | The [Alfajores Testnet](/getting-started/alfajores-testnet) is a Celo test network for developers building on the Celo platform. You can use it to try out the[ Celo Wallet](https://celo.org/build/wallet) or the Celo CLI (by sending transfers to yourself or other users of the testnet). You can also assist in running the network by operating a full node on your machine (or on a cloud or hosting provider). 8 | 9 | - [Alfajores Testnet Faucet](https://celo.org/build/faucet) - get testnet tokens to experiment with 10 | - [Celo Wallet for Alfajores](https://celo.org/build/wallet) - download the Android wallet app for the testnet from the Play Store 11 | - [Alfajores Network Status](https://alfajores-celostats.celo-testnet.org/) - to check the current availability of the testnet 12 | - [Alfajores Testnet Block Explorer](https://alfajores-blockscout.celo-testnet.org/) - explore the history of the blockchain and view transaction details 13 | -------------------------------------------------------------------------------- /docs/developer-resources/networks/baklava-testnet.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Baklava Testnet 3 | --- 4 | 5 | ### Baklava Testnet 6 | 7 | The [Baklava Testnet](/getting-started/baklava-testnet) is focused on building operational experience and best practices for node operators. 8 | 9 | It is designed for validators and testing protocol changes. You will most likely not develop on the Baklava testnet. If you have an idea for a project that uses more protocol features in terms of handling the community fund or uniquely handling epoch rewards, like block rewards or staking rewards, it might be useful to develop on Baklava. 10 | 11 | - [Baklava Faucet Request Form](https://forms.gle/JTYkMAJWTAUQp1sv9) - to request faucetted funds to become a Validator on the Baklava network. 12 | - [Baklava Network Status](https://baklava-celostats.celo-testnet.org/) - to check the current availability of the testnet 13 | - [Baklava Network Block Explorer](https://baklava-blockscout.celo-testnet.org/) - explore the history of the blockchain and view transaction details 14 | -------------------------------------------------------------------------------- /docs/developer-resources/networks/celo-mainnet.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Mainnet 3 | --- 4 | 5 | # Celo Mainnet 6 | 7 | The production Celo network, [Mainnet](/getting-started/mainnet) was previously known as the Release Candidate 1 network. Deployed by the Celo community starting 4/22/20, the network is currently working towards enabling the Celo stability mechanism. Much of the activity is being driven by the validator organizations that are featured on the leaderboard of[ The Great Celo Stake Off](https://forum.celo.org/t/the-great-celo-stake-off-the-details/136). 8 | 9 | - [Mainnet Validator Explorer](https://validators.celo.org/) - to view the current status of Validator elections 10 | - [Mainnet Network Status](https://stats.celo.org/) - to check the current availability of the network 11 | - [Mainnet Network Block Explorer](http://explorer.celo.org/) - explore the history of the blockchain and view transaction details 12 | -------------------------------------------------------------------------------- /docs/developer-resources/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Developers Overview 3 | description: There are 6 Billion smartphones on Earth. Build for all of them. 4 | slug: /developer-guide/overview 5 | --- 6 | 7 | import PageRef from '@components/PageRef' 8 | import Tabs from '@theme/Tabs'; 9 | import TabItem from '@theme/TabItem'; 10 | 11 | # Build on Celo 12 | 13 | There are 6 Billion smartphones on Earth. Build for all of them. 14 | 15 | --- 16 | 17 | [Celo Developers](https://celo.org/developers) build financial dApps that create the conditions for prosperity for everyone. Celo's ultralight mobile client makes it easy to build for smartphones across the world. Send or Request stable assets easily with anyone in your address book, powered by decentralized phone number verification. 18 | 19 | :::tip 20 | 21 | Not ready to become a Celo Developer? [Learn more about Celo](../../docs/welcome.md). 22 | 23 | ::: 24 | 25 | ## Set up your environment 26 | 27 | 28 | 29 | 30 | :::info 31 | 32 | Want to create a dApp fast? [Deploy on Celo](/developer-resources/deploy-dapp) 33 | 34 | ::: 35 | 36 | ## Create a testnet wallet 37 | 38 | 39 | 40 | ## Deploy on Celo 41 | 42 | 43 | 44 | ## Integrate with Celo 45 | 46 | 47 | 48 | :::tip 49 | 50 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 51 | 52 | ::: 53 | -------------------------------------------------------------------------------- /docs/developer-resources/reference.md: -------------------------------------------------------------------------------- 1 | # Celo SDK Reference 2 | 3 | This page contains a function-level reference of the SDK. 4 | 5 | TODO 6 | -------------------------------------------------------------------------------- /docs/developer-resources/start.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Developer Code Examples 3 | description: List of examples and guides to help you start building on Celo. 4 | slug: /developer-guide/start 5 | --- 6 | 7 | import PageRef from '@components/PageRef' 8 | 9 | # Code Examples 10 | 11 | List of examples and guides to help you start building on Celo. 12 | 13 | ___ 14 | 15 | ## Sending CELO & cUSD 16 | 17 | The send CELO & cUSD walkthrough will guide you through the basics of connecting to Celo networks using ContractKit and sending a test transaction. 18 | 19 | 20 | 21 | ## Deploy a Contract (local node) 22 | 23 | Our Deploy a Contract walkthrough will guide you through the basics of how to deploy your own smart contracts from a local Celo node. In this tutorial you'll deploy a contract with a simple API for writing and reading names. 24 | 25 | 26 | 27 | ## Deploy a Contract (Forno) 28 | 29 | Our second Deploy a Contract tutorial demonstrates how to deploy smart contracts with [Truffle](https://www.trufflesuite.com/truffle) and [Forno](/developer-guide/forno), a remote node service provider. 30 | 31 | 32 | 33 | ## Mobile DApps 34 | 35 | Valora + Wallet Connect walkthrough will help you create a simple web dApp using React and [Wallet Connect](https://walletconnect.com/). This application will allow connecting to your Valora account and sending transactions. 36 | 37 | 38 | 39 | ## Web DApps 40 | 41 | 42 | 43 | 44 | This React based tutorial will walk you through creating a basic Governance voting DApp. Topics covered include ContractKit usage, connecting to a users wallet and some best practices for general DApp development 45 | 46 | -------------------------------------------------------------------------------- /docs/developer-resources/style-guide/typescript.md: -------------------------------------------------------------------------------- 1 | # TypeScript Style Guide 2 | 3 | ### Function parameters 4 | 5 | _Vanilla parameters_ are preferred over Object Destructuring. 6 | 7 | Example of Vanilla parameters: 8 | 9 | ``` 10 | export const tokenFetchFactory = ( 11 | actionName, 12 | contractGetter, 13 | actionCreator, 14 | tag, 15 | ) 16 | ``` 17 | 18 | Example of Object Destructuring: 19 | 20 | ``` 21 | export const tokenFetchFactory = ({ 22 | actionName, 23 | contractGetter, 24 | actionCreator, 25 | tag, 26 | }: TokenFetchFactory) 27 | ``` 28 | 29 | This is for simplicity, with fewer lines and some evidence shows it's [faster](https://codeburst.io/es6s-function-destructuring-assignment-is-not-free-lunch-19caacc18137). 30 | 31 | ### Function definitions: Arrow functions vs Vanilla functions 32 | 33 | In the root scope, _Vanilla functions_ are preferred over Arrow functions. 34 | 35 | This is because it's consistent with generator functions, simpler to understand, easier to debug, supports recursion and functions are hoisted, meaning no concern about definition order. 36 | 37 | ### Class methods: anonymous functions vs native methods 38 | 39 | Anonymous functions are the preferred way. As shown in the example: 40 | 41 | ``` 42 | class myClass { 43 | myMethod = () => {} 44 | } 45 | ``` 46 | 47 | ### Exporting variables only for testing 48 | 49 | When a variable is exported only for the propose of getting accessed by tests, a low dash should be added before the name. 50 | 51 | For example instead of doing this: 52 | 53 | ``` 54 | export myFunction{...} 55 | ``` 56 | 57 | This is the preferred way: 58 | 59 | ``` 60 | const myFunction{...} 61 | export _myFunction = myFunction 62 | ``` 63 | 64 | In case it's necessary, a decorator could wrap the exported function to allow it only to be accessed during testing. 65 | -------------------------------------------------------------------------------- /docs/developer-resources/walkthroughs/README.md: -------------------------------------------------------------------------------- 1 | # Celo Walkthroughs 2 | -------------------------------------------------------------------------------- /docs/developer-resources/walkthroughs/hellodapp.md: -------------------------------------------------------------------------------- 1 | # Building a dApp on Celo 2 | 3 | Coming Soon! 4 | -------------------------------------------------------------------------------- /docs/developer-resources/walkthroughs/hellodeploy.md: -------------------------------------------------------------------------------- 1 | # Deploying an Ethereum project to Celo 2 | 3 | Coming Soon! 4 | -------------------------------------------------------------------------------- /docs/developer-resources/walkthroughs/randomness.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Use onchain randomness' 3 | description: How to use onchain randomness in your smart contracts. 4 | slug: /developer-guide/start/randomness 5 | --- 6 | import PageRef from '@components/PageRef'; 7 | 8 | Onchain randomness is used for selecting validators to perform phone number verification. Read more about how onchain randomness is produced at the provided page. 9 | 10 | 11 | 12 | This randomness can be used by any smart contracts deployed to a Celo network. 13 | 14 | ```solidity 15 | import "celo-monorepo/packages/protocol/identity/interfaces/IRandom.sol"; 16 | import "celo-monorepo/packages/protocol/common/interfaces/IRegistry.sol"; 17 | 18 | contract Example { 19 | function test() external view returns (bytes32 randomness) { 20 | randomness = IRandom( 21 | IRegistry(0x000000000000000000000000000000000000ce10) 22 | .getAddressFor(keccak256(abi.encodePacked("Random"))) 23 | ).random(); 24 | } 25 | } 26 | ``` 27 | Alternatively, through inheritance of `UsingRegistry`. 28 | 29 | ```solidity 30 | import "celo-monorepo/packages/protocol/common/UsingRegistryV2.sol"; 31 | 32 | contract Example is UsingRegistryV2 { 33 | function test() external view returns (bytes32 randomness) { 34 | randomness = getRandom().random(); 35 | } 36 | } 37 | ``` 38 | -------------------------------------------------------------------------------- /docs/getting-started/alfajores-testnet/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo's Alfajores Testnet 3 | description: Collection of resources to get started with Celo Alfajores Testnet (Celo's Developer Testnet). 4 | id: index 5 | slug: /getting-started/alfajores-testnet 6 | --- 7 | # Alfajores Testnet 8 | 9 | Collection of resources to get started with Celo Alfajores Testnet (Celo's Developer Testnet). 10 | 11 | ___ 12 | 13 | ## What is the Alfajores Testnet? 14 | 15 | The **Alfajores Testnet** is a Celo test network for developers building on the Celo platform. You can use it to try out the [Celo Wallet](https://celo.org/build/wallet) or the [Celo CLI](/command-line-interface/introduction) \(by sending transfers to yourself or other users of the testnet\). You can also assist in running the network by operating a [full node](/getting-started/mainnet/running-a-full-node-in-mainnet) on your machine \(or on a cloud or hosting provider\). 16 | 17 | :::info 18 | 19 | The [Baklava Testnet](/getting-started/baklava-testnet) is focused on building operational experience and best practices for node operators. 20 | 21 | ::: 22 | 23 | :::tip 24 | 25 | Please refer to [Key Concepts](/overview#background-and-key-concepts) for background on blockchains and an explanation of terms used in the section. 26 | 27 | ::: 28 | 29 | :::warning 30 | 31 | The Alfajores Testnet is designed for testing and experimentation by developers. Its tokens hold no real world economic value. The testnet software will be upgraded and the entirety of its data reset on a regular basis. This will erase your accounts, their balance and your transaction history. The testnet software will be upgraded on a regular basis. You may encounter bugs and limitations with the software and documentation. 32 | 33 | ::: 34 | 35 | Please help the community to improve Celo by asking questions on the [Forum](https://forum.celo.org/c/alfajores-testnet)! 36 | 37 | :::info 38 | 39 | Your use of the Alfajores Testnet is subject to the [Alfajores Testnet Disclaimer](/important-information/alfajores-testnet-disclaimer). 40 | 41 | ::: 42 | 43 | ## Useful links 44 | 45 | - [Alfajores Testnet Faucet](https://celo.org/build/faucet) - get testnet tokens to experiment with 46 | - [Celo Wallet for Alfajores](https://celo.org/build/wallet) - download the Android wallet app for the testnet from the Play Store 47 | - [Alfajores Network Status](https://alfajores-celostats.celo-testnet.org) - to check the current availability of the testnet 48 | - [Alfajores Testnet Block Explorer](https://alfajores-blockscout.celo-testnet.org) - explore the history of the blockchain and view transaction details 49 | -------------------------------------------------------------------------------- /docs/getting-started/alfajores-testnet/using-the-mobile-wallet.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using the Mobile Wallet 3 | description: How to get started with the Alfajores Testnet using the Celo Mobile wallet. 4 | --- 5 | # Mobile Wallet 6 | 7 | How to get started with the Alfajores Testnet using the Celo Mobile wallet. 8 | 9 | ___ 10 | 11 | ### Getting Started 12 | 13 | Since verifying your phone number costs gas, you have to be invited to the platform to have the funds to pay for the verification process. To do so, please visit [celo.org/build/wallet](https://celo.org/build/wallet) and enter your phone number to be messaged an invitation code. 14 | 15 | If you already have an account \(and the corresponding seed phrase\), you can download the Celo wallet from the [play store](https://play.google.com/store/apps/details?id=org.celo.mobile.alfajores) and follow instructions in the app to import your wallet using the seed phrase. 16 | 17 | If you need more funds, you can always visit [celo.org/build/faucet](https://celo.org/build/faucet) and enter your address to get more Celo Dollars. 18 | 19 | ![Verifying your phone number with an invitation code](https://storage.googleapis.com/celo-website/docs/celo-onboarding.gif) 20 | 21 | For more information on how to run a build of the Celo Wallet and develop on it, please refer to the [Running the Wallet Locally](/celo-codebase/wallet/intro) section. 22 | 23 | For more detailed information on how to get an account please refer to the [Getting an Account and Funds](/getting-started/alfajores-testnet/faucet.md) section. 24 | 25 | ### Report a Bug 26 | 27 | To report a bug, navigate to the settings screen of the Celo Wallet and tap 'Send an Issue Report'. As always, please reach out on [forum.celo.org](https://forum.celo.org) if you have any questions. 28 | -------------------------------------------------------------------------------- /docs/getting-started/baklava-testnet/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Baklava Testnet 3 | description: Collection of resources to get started with Celo Baklava Testnet (Celo's Node Operator Testnet). 4 | id: index 5 | slug: /getting-started/baklava-testnet 6 | --- 7 | # Baklava Testnet 8 | 9 | Collection of resources to get started with Celo Baklava Testnet (Celo's Node Operator Testnet). 10 | 11 | ___ 12 | 13 | ## What is the Baklava Testnet? 14 | 15 | The Baklava Testnet is a non-production Testnet for the Validator community. 16 | 17 | **It serves several purposes:** 18 | 19 | - **Operational excellence**: Build familiarity with the processes used on Mainnet, and to verify the security and stability of your infrastructure with the new software. 20 | - **Detecting vulnerabilities**: Discover bugs in new software releases before they reach Mainnet. 21 | - **Testing ground**: Experiment with new infrastructure configurations in a low-risk environment. 22 | 23 | :::warning 24 | 25 | The Baklava Testnet is designed for testing and experimentation by developers. Its tokens hold no real world economic value. The testnet software will be upgraded and the entirety of its data reset on a regular basis. This will erase your accounts, their balance and your transaction history. The testnet software will be upgraded on a regular basis. You may encounter bugs and limitations with the software and documentation. 26 | 27 | ::: 28 | 29 | Please help the community to improve Celo by asking questions on [Discord](https://chat.celo.org) the [Forum](https://forum.celo.org/c/baklava-testnet)! 30 | 31 | :::info 32 | 33 | Your use of the Baklava Testnet is subject to the [Baklava Testnet Disclaimer](/important-information/baklava-testnet-disclaimer). 34 | 35 | ::: 36 | 37 | ## Useful links 38 | 39 | - [Baklava Faucet Request Form](https://forms.gle/JTYkMAJWTAUQp1sv9) - to request faucetted funds to become a Validator on the Baklava network. 40 | - [Baklava Network Status](https://baklava-celostats.celo-testnet.org) - to check the current availability of the testnet 41 | - [Baklava Network Block Explorer](https://baklava-blockscout.celo-testnet.org) - explore the history of the blockchain and view transaction details 42 | -------------------------------------------------------------------------------- /docs/getting-started/choosing-a-network.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Networks 3 | description: How to choose a Celo network based on your interested and objectives. 4 | id: choosing-a-network 5 | slug: /getting-started/choosing-a-network 6 | --- 7 | # Networks 8 | 9 | How to choose a Celo network based on your interested and objectives. 10 | 11 | ___ 12 | 13 | ## [Alfajores](/getting-started/alfajores-testnet), the Developer Testnet 14 | 15 | If you're a developer considering building on the Celo platform, or want to try out the [Celo Wallet](https://celo.org/build/wallet), start with [Alfajores](/getting-started/alfajores-testnet). You can [obtain a balance](https://celo.org/build/faucet) immediately and use it for experimenting with. The [SDK tutorials](/developer-guide/start) assume you are using Alfajores. The network is managed by cLabs, who operate all of its validators, and its software and deployed contracts will track mainnet. 16 | 17 | ## [Baklava](/getting-started/baklava-testnet), the Node Operator Testnet 18 | 19 | If you're interested in operating one or more nodes that make up Celo's infrastructure, start with [Baklava](/getting-started/baklava-testnet). Baklava's validators and full nodes are operated by the community. It is intended to provide a venue to test new builds of the Celo Blockchain software, trial on-chain governance proposals, and for node operators to build operational best practices. Support for developers and users of the Wallet is not the primary focus. 20 | 21 | ## [Mainnet](/getting-started/mainnet) 22 | 23 | The production Celo network, Mainnet was previously known as the Release Candidate 1 network. Deployed by the Celo community starting 4/22/20, the network is currently working towards enabling the Celo stability mechansim. Much of the activity is being driven by the validator organisations that featured on the leaderboard of [The Great Celo Stake Off](https://forum.celo.org/t/the-great-celo-stake-off-the-details/136). 24 | -------------------------------------------------------------------------------- /docs/getting-started/hosted-nodes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Hosted Nodes 3 | description: How to get a preconfigured Celo blockchain node running on one of the major cloud providers. 4 | id: hosted-nodes 5 | slug: /getting-started/hosted-nodes 6 | --- 7 | # Hosted Nodes 8 | 9 | How to get a preconfigured Celo blockchain node running on one of the major cloud providers. 10 | 11 | ___ 12 | 13 | ## Before getting started 14 | 15 | cLabs currently provides machine images for launching full and lightest nodes on Alfajores and Mainnet. These prebuilt images are updated with every release of the Celo blockchain client and available on Amazon Web Services and Google Cloud Platform. 16 | 17 | Before proceeding with a hosted Celo blockchain node, you'll need to have an account with your cloud provider of choice and basic knowledge of networking. 18 | 19 | :::info 20 | 21 | If you would like to keep up-to-date with all the news happening in the Celo community, including validation, node operation and governance, please sign up to our [Celo Signal mailing list](https://celo.activehosted.com/f/15). 22 | 23 | You can add the [Celo Signal public calendar](https://calendar.google.com/calendar/u/0/embed?src=c_9su6ich1uhmetr4ob3sij6kaqs@group.calendar.google.com) as well which has relevant dates. 24 | 25 | ::: 26 | 27 | Currently cLabs provides the following machine images: 28 | 29 | - `celo-alfajores-full-node-latest` 30 | - `celo-alfajores-lightest-node-latest` 31 | - `celo-mainnet-full-node-latest` 32 | - `celo-mainnet-lightest-node-latest` 33 | 34 | Please note that the time taken to sync a full node could be significant. 35 | 36 | ## Amazon Web Services 37 | 38 | To get started with a Celo blockchain node on AWS, ensure you're in the North Virginia region (us-east-1). You'll need to navigate to the AMIs tab of the EC2 page. From there you can change your search to only include `Public images` and enter `celo-`. 39 | 40 | :::info 41 | 42 | The cLabs AWS owner ID is `243983831780`, if you're new to Celo or cloud providers, ensure the `Owner` of an AMI you launch matches `243983831780`. 43 | 44 | ::: 45 | 46 | For more information if you're not familiar with launching EC2 instances from machine images, please check the excellent [AWS documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html). 47 | 48 | ## Google Cloud Platform 49 | 50 | GCP by default won't display public machine images when you search for them in your console. This means you'll need to go via the API or [gcloud](https://cloud.google.com/sdk/gcloud) command line to launch a node. 51 | 52 | Depending on the type of node you'd like to launch (see the above list), the `gcloud` command to use may look a bit like this: 53 | 54 | ```bash 55 | gcloud compute instances create --image --image-project celo-testnet --project 56 | ``` 57 | 58 | For more information please check the excellent [GCP documentation](https://cloud.google.com/compute/docs/images) on how to launch a compute instance from a public image. 59 | -------------------------------------------------------------------------------- /docs/getting-started/mainnet/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Mainnet 3 | description: Collection of resources to get started with Celo Mainnet (Celo's production network). 4 | id: index 5 | slug: /getting-started/mainnet 6 | --- 7 | 8 | # Mainnet 9 | 10 | Collection of resources to get started with Celo **Mainnet** (Celo's production network). 11 | 12 | ___ 13 | 14 | :::note 15 | 16 | Celo Mainnet was previously known as the Release Candidate 1 network. 17 | 18 | ::: 19 | 20 | :::tip 21 | 22 | Please refer to [Key Concepts](/overview#background-and-key-concepts) for background on blockchains and an explanation of terms used in the section. 23 | 24 | ::: 25 | ## Useful links 26 | 27 | - [Mainnet Validator Explorer](https://validators.celo.org/) - to view the current status of Validator elections 28 | - [Mainnet Network Status](https://stats.celo.org/) - to check the current availability of the network 29 | - [Mainnet Network Block Explorer](http://explorer.celo.org/) - explore the history of the blockchain and view transaction details 30 | -------------------------------------------------------------------------------- /docs/getting-started/using-the-wallet.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using the Celo Wallet 3 | description: How to set up and use the Alfajores Testnet Celo Wallet. 4 | id: using-the-wallet 5 | slug: /getting-started/using-the-wallet 6 | --- 7 | 8 | # Using the Wallet 9 | 10 | How to set up and use the Alfajores Testnet Celo Wallet. 11 | 12 | ___ 13 | 14 | ## Install 15 | 16 | You can install Android, iOS and Web versions of the Alfajores testnet wallet from [celo.org/build/wallet](https://celo.org/build/wallet). 17 | 18 | ### Running the Celo Wallet Locally 19 | 20 | For more information on how to run the Celo Wallet locally, please refer to the [mobile wallet setup instructions](/celo-codebase/wallet/intro.md) 21 | 22 | ### Get More Funds! 23 | 24 | If you need more funds, you can always visit [celo.org/build/faucet](https://celo.org/build/faucet) and enter your address to get more Celo Dollars. You can find your address in the settings page within the wallet. 25 | 26 | ### Connect a DApp 27 | 28 | You can connect your DApp to the wallet using [WalletConnect](/learn/developer-tools.md#walletconnect) or [DAppKit](/learn/developer-tools.md#dappkit). -------------------------------------------------------------------------------- /docs/getting-started/validator-troubleshooting-faq.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Validator Troubleshooting FAQ 3 | description: Answers to frequently asked questions while troubleshooting isses as a Validator. 4 | id: validator-troubleshooting-faq 5 | slug: /getting-started/validator-troubleshooting-faq 6 | --- 7 | 8 | # Validator FAQ 9 | 10 | Answers to frequently asked questions while troubleshooting isses as a Validator. 11 | 12 | ___ 13 | 14 | 15 | :::tip 16 | 17 | This is a living document. Please contribute if you have a solution to a common problem. 18 | 19 | ::: 20 | ## How do I reset my local celo state? 21 | 22 | You may desire to reset your local chain state when updating parameters or wishing to perform a clean reset. Note that this will cause the node to resync from the genesis block which will take a couple hours. 23 | 24 | ```bash 25 | # Remove the celo state directory 26 | sudo rm -rf celo 27 | ``` 28 | 29 | ## How do I backup a local Celo private key? 30 | 31 | It's important that local accounts are properly backed up for disaster recovery. The local keystore files are encrypted with the specified account password and stored in the keystore directory. To copy this file to your local machine you may use ssh: 32 | 33 | ```bash 34 | ssh USERNAME@IPADDRESS "sudo cat /root/.celo/keystore/" > ./nodeIdentity 35 | ``` 36 | 37 | You can then back this file up to a cloud storage for redundancy. 38 | 39 | :::warning 40 | 41 | It's important that you use a strong password to encrypt this file since it will be held in potentially insecure environments. 42 | 43 | ::: 44 | 45 | ## How do I install and use celocli on my node? 46 | 47 | To install celocli on a Linux machine, run the following: 48 | 49 | ```bash 50 | sudo apt-get update 51 | sudo apt-get install libusb-1.0-0 -y 52 | sudo npm install -g @celo/celocli --unsafe-perm 53 | ``` 54 | 55 | To install celocli on a Mac/Windows machine, run the following: 56 | 57 | ```bash 58 | npm install @celo/celocli 59 | ``` 60 | 61 | You can then run celocli and point it to your local geth.ipc file: 62 | 63 | ```bash 64 | # Check if node is synced using celocli 65 | sudo celocli node:synced --node geth.ipc 66 | ``` 67 | -------------------------------------------------------------------------------- /docs/getting-started/wallets/using-metamask-with-celo/using-a-ledger-with-metamask.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using a Ledger with MetaMask 3 | description: Things to keep in mind when using a Ledger hardware wallet with MetaMask to connect to the Celo network. 4 | --- 5 | # Using a Ledger with MetaMask 6 | 7 | Things to keep in mind when using a Ledger hardware wallet with MetaMask to connect to the Celo network. 8 | 9 | ___ 10 | 11 | ## Using the Ledger 12 | 13 | * When using MetaMask with a Ledger, users should open the Ethereum app on their Ledger hardware device, not the Celo app. 14 | * Users using a Celo-specific wallet with the Ledger should still use the Celo app. 15 | 16 | ## Recovering Assets 17 | 18 | * When recovering [Celo sent to an Eth address](celo-holder-guide/eth-recovery.md), use Metamask with the Ethereum app on the Ledger device. 19 | * When recovering [Eth sent to a Celo address](celo-holder-guide/celo-recovery.md), use the Celo app on the Ledger device with any Celo wallet. 20 | -------------------------------------------------------------------------------- /docs/important-information/mainnet-network-disclaimer.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Mainnet Disclaimer 3 | description: Important considerations, warnings, and legal regulations for users of the Celo Mainnet. 4 | --- 5 | 6 | # Mainnet Disclaimer 7 | 8 | Important considerations, warnings, and legal regulations for users of Celo mainnet. 9 | 10 | ___ 11 | 12 | ## Terms and Conditions 13 | 14 | By using, and contributing to, Celo blockchain and cryptographic network (Celo), you (the User) agree to these terms and acknowledge that the use of Celo, including any and all release candidates, is entirely at the User’s sole risk. You also agree to adhere to the [Celo Code of Conduct](https://celo.org/code-of-conduct). 15 | 16 | All content provided on Celo is subject to the License included and is provided on an ‘AS IS’ and ‘AS AVAILABLE’ basis, without any representations or warranties of any kind. All implied terms are excluded to the fullest extent permitted by law. No party involved in, or having contributed to the development of, Celo including any of their affiliates, directors, employees, contractors, service providers or agents (the Parties Involved) accepts any responsibility or liability to the User or any third parties in relation to any materials or information accessed or downloaded via Celo. The User acknowledges and agrees that the Parties Involved are not responsible for any damage to the User’s computer systems, loss of data, or any other loss or damage resulting (directly or indirectly) from use of Celo. 17 | 18 | Users also understand that release candidates may be replaced, in which event the network may cease to operate, all on-chain data may be destroyed and any rewards or other benefits may be lost and the cliff for ReleaseGold contracts reset. 19 | 20 | To the fullest extent permitted by law, in no event shall the Parties Involved have any liability whatsoever to any person for any direct or indirect loss, liability, cost, claim, expense or damage of any kind, whether in contract or in tort, including negligence or otherwise, arising out of or related to the use of all or part of Celo. 21 | 22 | The Celo software is not subject to the EAR based on Section 734.7 of the U.S. Export Administration Regulations ("EAR", 15 CFR Parts 730-774) and Section 742.15(b) of the EAR, which applies to software containing or designed for use with encryption software that is publicly available as open-source. However, products developed using Celo may be subject to the EAR or local laws/regulations. The User is responsible for compliance with U.S. and local country export/import laws and regulations. 23 | 24 | Celo software may not be exported/reexported, either directly or indirectly, to any destination subject to U.S. embargoes or trade sanctions unless formally authorized by the U.S. Government. The embargoed destinations are subject to change and the scope of what is included in the embargo is specific to each embargoed country. For the most current information on U.S. embargoed and sanctioned countries, see the [Treasury Department regulations](https://www.treasury.gov/resource-center/sanctions/Programs/Pages/Programs.aspx). 25 | -------------------------------------------------------------------------------- /docs/learn/CELO-coin-summary.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo 3 | description: Summary of CELO and the value it provides to the community. 4 | --- 5 | # CELO 6 | 7 | Summary of CELO and the value it provides to the community. 8 | 9 | ___ 10 | 11 | ## Platform-Native Digital Asset 12 | 13 | CELO is the platform-native asset that supports the growth and development of the Celo blockchain and ecosystem. CELO holders can earn rewards, stake with validators, and vote on proposals that shape the future of Celo. 14 | 15 | **CELO aligns incentives of Celo stakeholders** 16 | 17 | * Celo’s native asset is the core utility, reserve, staking, and governance asset 18 | * CELO has a fixed supply and variable value, related to the use of the platform, governance and the amount of stablecoins in use. 19 | 20 | ## Utility 21 | 22 | CELO’s primary function is stabilization, ensuring the healthy velocity of stablecoins that globally circulate and transact on Celo. Serving as the primary reserve asset in Celo’s groundbreaking stability mechanism (Mento), CELO allows platform-native stablecoins like Celo Dollars (cUSD) and Celo Euros (cEUR) to algorithmically follow the value of their namesake currencies. 23 | 24 | ## Governance 25 | 26 | CELO plays a critical role in the governance of the Celo platform and technology. Anyone who holds any amount of CELO is empowered to vote on governance proposals that direct how the core technology operates today and in the future. 27 | 28 | ## Staking 29 | 30 | Leading the industry in energy-efficient, carbon neutral blockchain technology, Celo’s energy-efficiency is born out of its Proof-of-Stake (PoS) consensus protocol, requiring it’s daily elected validators to stake CELO as a signal of participation in confirming transactions on the blockchain, earning Celo Dollars (cUSD) as compensation to cover costs in return. 31 | 32 | ## Learn more about CELO 33 | 34 | [An introductory Guide to Celo](https://medium.com/celoorg/an-introductory-guide-to-celo-b185c62d3067) 35 | -------------------------------------------------------------------------------- /docs/learn/celo-economic-model.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Economic Model 3 | description: Celo’s economic model is derived from research in Sacred Economics and Theory of Change. 4 | --- 5 | import YouTube from '@components/YouTube'; 6 | 7 | 8 | # Economic Model 9 | 10 | Celo’s economic model is derived from research in **Sacred Economics** and **Theory of Change**. 11 | 12 | ___ 13 | 14 | ## Features of Money 15 | 16 | Sep Kamvar speaks about the Future of Value. 17 | 18 | 19 | 20 | ## Sacred Economics 21 | 22 | Celo’s philosophy is grounded in the work of Charles Eisenstein’s[ Sacred Economics](http://sacred-economics.com/film/). 23 | 24 | ## Theory Of Change 25 | 26 | A theory of change is a framework that describes how short-term actions will lead to long-term social impact. Celo’s aim is to create the conditions for prosperity, defined as people fulfilling basic needs, growing along their own unique paths, and supporting each other. All of Celo’s projects have a specific hypothesis that ties our activities to one or more of these indicators of prosperity. 27 | -------------------------------------------------------------------------------- /docs/learn/celo-overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Welcome to Celo 3 | description: Celo's mission, vision, and goals for financial prosperity for everyone. 4 | --- 5 | 6 | # Welcome to Celo 7 | 8 | Celo's mission, vision, and goals for financial prosperity for everyone. 9 | 10 | ___ 11 | 12 | ## Crypto made for Mobile 13 | 14 | [Celo](https://celo.org/) is a mobile-first blockchain that makes decentralized financial (DeFi) tools and services accessible to anyone with a mobile phone. It aims to break down barriers by bringing the powerful benefits of DeFi to the users of the 6 billion smartphones in circulation today. 15 | ## Celo's Mission 16 | 17 | The company’s mission is to build a financial system that creates the conditions of prosperity for everyone. Celo enables native and non-native digital assets–both cryptographic and Central Bank Digital Currencies (CBDCs)–to circulate freely across devices, carriers, and countries. This makes money mobile, global and accessible like never before. Celo is supported by a community of organizations and individuals, including Jack Dorsey, a16z, and Deutsche Telekom. 18 | 19 | **Watch:** [What if Money were Beautiful](https://www.youtube.com/watch?v=kKggE5OvyhE) 20 | 21 | ## Celo Ecosystem 22 | 23 | An Ethereum-compatible technology capable of reaching global users at scale, Celo turns crypto into usable money with a multi-asset system: a governance and staking asset (CELO) and a family of stablecoins. Since the launch of Mainnet in 2020, Celo’s network now supports 1000+ projects from builders, developers, and artists, who everyday create new applications and issue digital currencies from over 100 countries around the world. 24 | 25 | CELO is a platform-native reserve and governance asset, serving as the primary asset in the[ stability mechanism](https://celo.org/papers/Celo_Stability_Analysis.pdf) (Mento) that supports stable digital currencies like cUSD and cEUR. CELO’s primary function is stabilization, ensuring the healthy velocity of assets that globally circulate and transact on Celo. CELO also serves as the key governance mechanism for the Celo Platform. Owning and using CELO supports the growth and development of the Celo Platform by enabling each CELO owner to vote on proposals that direct how the core technology operates today and in the future. 26 | 27 | **Watch:** [Meet the team working at Celo](https://www.youtube.com/watch?v=vwfHiaVzc2E) 28 | 29 | ## Get started with Celo 30 | 31 | To build technology and products that are used and loved by people and solve real-world problems, Celo is building a community with many different perspectives and experiences. Let’s build a monetary system that creates the conditions for prosperity for all. 32 | -------------------------------------------------------------------------------- /docs/learn/celo-protocol-summary.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Protocol 3 | description: Summary of the Celo Protocol and the value it provides to the community. 4 | --- 5 | 6 | # Celo Protocol 7 | 8 | Summary of the Celo Protocol and the value it provides to the community. 9 | 10 | ___ 11 | 12 | ## The Platform for Mobile DeFi 13 | 14 | The Celo protocol provides a platform upon which the Celo community can create stabilized value digital assets. Named for the currencies they follow, Celo Dollars (cUSD) and Celo Euros (cEUR) are stablecoins that allow anyone to share value faster, cheaper and more easily from a mobile phone. 15 | 16 | The Celo protocol also includes mechanisms for [lightweight identity](../celo-codebase/protocol/identity) and [ultralight mobile](../celo-codebase/protocol/consensus/ultralight-sync) clients. 17 | 18 | **Innovative tools to build native mobile dApps:** 19 | 20 | * Stable Value Currencies 21 | * Phone Number Public Key Infrastructure 22 | * On-chain Governance 23 | * Self Custody 24 | * Proof-of-Stake 25 | * Open-source 26 | * Permissionless 27 | * High Speed Sync for Ultra-light Clients 28 | * Gas Payable in Multiple Stablecoins 29 | * Programmable (full EVM Compatibility) 30 | 31 | ## Optimized for Financial Applications 32 | 33 | Powered by Celo’s industry-leading decentralized phone number verification, payment applications built on Celo allow users to easily send or request digital currencies from any mobile number, anywhere in the world, capable of offering their users features like: 34 | 35 | * Non-custodial wallets 36 | * Ultra low network transaction fees 37 | * Digital currency exchange capabilities 38 | * QR Code Support 39 | * Mobile first SDK 40 | 41 | ## Core Contracts 42 | 43 | Designed to support an ecology of stable value currencies. The first stablecoin, cUSD, tracks the value of the US Dollar. 44 | 45 | * Algorithmic reserve-backed stabilization mechanism 46 | * Crypto-asset collateralized 47 | * Native support for multiple stablecoins 48 | 49 | ## Blockchain 50 | 51 | Open source permissionless smart contract platform built on decentralized infrastructure. 52 | 53 | * Proof-of-Stake based consensus with high throughput, low latency, and zero carbon 54 | * Incentives for serving mobile devices 55 | * On-chain governance 56 | 57 | ## Build on Celo 58 | 59 | Visit [docs.celo.org](https://docs.celo.org/) to learn more. 60 | -------------------------------------------------------------------------------- /docs/learn/celo-summary.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo 3 | description: Summary of Celo and the value it provides to the community. 4 | --- 5 | 6 | # Celo 7 | 8 | Summary of Celo and the value it provides to the community. 9 | 10 | ___ 11 | 12 | ## Crypto made for mobile 13 | 14 | Celo is a mobile-first, carbon-neutral blockchain that makes decentralized financial (DeFi) tools and services accessible to anyone with a mobile phone–bringing the powerful benefits of DeFi to the users of the 6 billion smartphones in circulation today. 15 | 16 | With its interoperability, cross-chain compatibility and vision for inclusivity, Celo enables native and non-native digital assets–both private and public)–to circulate freely, at extremely low costs and high speeds, across devices, carriers, and countries–making money mobile, global and accessible like never before. 17 | 18 | Celo's mission is to build a financial system that creates the conditions of prosperity—for everyone. 19 | 20 | * 5s Average block time 21 | * Carbon Offset 65.7 Avg Tons Per Month 22 | * Average Network Transaction Fee <$.01 23 | 24 | ## Mobile-First 25 | 26 | Celo makes sending payments as easy as sending a text, to anyone with an internet connection, anywhere in the world. Celo maps phone numbers to wallet addresses using a novel decentralized address-based identity layer. Mobile participants can earn rewards for securing and maintaining the system. 27 | 28 | ## Multi-Asset 29 | 30 | Celo is turning crypto into usable money with a multi-asset system: a utility, governance, and staking asset (CELO) and a growing family of stablecoins named for the currencies they algorithmically follow (e.g., cUSD, cEUR). 31 | 32 | ## EVM-Compatible 33 | 34 | An EVM-compatible solution capable of reaching billions of global users at scale, Celo’s technology supports 1000+ projects from builders, developers, and even artists who everyday launch new applications and issue digital currencies from everywhere in the world usable by anyone in the world with a desktop computer or mobile phone. 35 | 36 | ## Get Started with Celo 37 | 38 | Visit [celo.org](http://www.celo.org) to learn more. 39 | -------------------------------------------------------------------------------- /docs/learn/celo-whitepapers.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Whitepapers 3 | description: Overview of Celo Whitepapers describing Celo's protocol, economics, and social impact. 4 | --- 5 | # Whitepapers 6 | 7 | Overview of Celo Whitepapers describing Celo's protocol, economics, and social impact. 8 | 9 | ___ 10 | 11 | ## Protocol 12 | 13 | Celo Whitepaper: A Multi-Asset Cryptographic Protocol for Decentralized Social Payments 14 | 15 | * [Read paper](https://celo.org/papers/whitepaper) 16 | * [阅读](https://celo.org/papers/whitepaper/chinese) 17 | 18 | Plumo: Towards Scalable Interoperable Blockchains Using Ultra Light Validation Systems 19 | 20 | * [Read paper](https://celo.org/papers/plumo) 21 | 22 | ## Economics 23 | 24 | An Analysis of the Stability Characteristics of Celo 25 | 26 | * [Read paper](https://celo.org/papers/stability) 27 | 28 | Influencing the Velocity of Central Bank Digital Currencies 29 | 30 | * [Read paper](https://celo.org/papers/cbdc-velocity) 31 | * [Lee el informe](https://celo.org/papers/cbdc-velocity/spanish) 32 | 33 | Shaping the Future of Digital Currencies 34 | 35 | * [Read paper](https://celo.org/papers/future-of-digital-currencies) 36 | 37 | ## Social Impact 38 | 39 | Future-Proof Aid Policy 40 | 41 | * [Read paper](https://celo.org/papers/future-proof-aid) 42 | * [Exec Summary](https://celo.org/papers/future-proof-exec) 43 | 44 | Delivering Humanitarian COVID Aid using the Celo Platform 45 | 46 | * [Read paper](https://celo.org/papers/covid-aid) -------------------------------------------------------------------------------- /docs/learn/key-concepts.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Key Concepts 3 | id: key-concepts 4 | slug: /key-concepts 5 | description: Celo believes in a future where everyone can prosper. 6 | --- 7 | 8 | # Key Concepts 9 | 10 | Crypto made for mobile. 11 | 12 | --- 13 | 14 | import YouTube from '@components/YouTube'; 15 | 16 | ## What is the Celo Platform? 17 | 18 | With its interoperability, cross-chain compatibility and vision for inclusivity, Celo enables native and non-native digital assets–both private and public)–to circulate freely, at extremely low costs and high speeds, across devices, carriers, and countries–making money mobile, global and accessible like never before. 19 | 20 | 21 | 22 | ## What is CELO? 23 | 24 | CELO is a platform-native reserve and governance asset, serving as the primary asset in the stability mechanism (Mento) that supports stable digital currencies like cUSD and cEUR. CELO’s primary function is stabilization, ensuring the healthy velocity of assets that globally circulate and transact on Celo. CELO also serves as the key governance mechanism for the Celo Platform. Owning and using CELO supports the growth and development of the Celo Platform by enabling each CELO owner to vote on proposals that direct how the core technology operates today and in the future. 25 | 26 | 27 | 28 | ## What can Celo Dollars Do? 29 | 30 | Named for the currencies they follow, Celo Dollars (cUSD) and Celo Euros (cEUR) are stablecoins that allow you to share value faster, cheaper, and more easily on your mobile phone. Celo stablecoins instantly unlock access for everyday uses like low-cost remittances and cross-border payments, global distribution of charitable aid, effortlessly paying online, or transferring value within exchanges, particularly in markets subject to currency volatility. 31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/learn/platform-native-stablecoins-summary.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Platform-Native Stablecoins (cUSD, cEUR) 3 | description: Summary of Celo Platform-Native Stablecoins and the value they provide to the community. 4 | --- 5 | 6 | # Platform-Native Stablecoins 7 | 8 | Summary of Celo Platform-Native Stablecoins and the value they provide to the community. 9 | 10 | ___ 11 | 12 | ## Stable with Celo 13 | 14 | Named for the currencies they follow, Celo Dollars (cUSD) and Celo Euros (cEUR) are stablecoins that allow you to share value faster, cheaper, and more easily on your mobile phone. Celo stablecoins instantly unlock access for everyday uses like low-cost remittances and cross-border payments, global distribution of charitable aid, effortlessly paying online, or transferring value within exchanges, particularly in markets subject to currency volatility. 15 | 16 | * Average Network Transaction Fee <$.01 17 | * Algorithmic stabilization mechanism 18 | * Publicly verifiable stability 19 | * 5 second block times 20 | * Can be used to pay gas fees 21 | 22 | ## Pay instantly 23 | 24 | With payment applications and mobile solutions built on Celo users can easily transfer stable value globally using only a mobile number while retailers can accept Celo Dollars (cUSD) and Celo Euros (cEUR) as stable forms of payment online or and in-person, 25 | 26 | ## Share directly 27 | 28 | Designed to enable a future without high transaction fees or expensive third party intermediaries for peer to peer payments, payments applications built on Celo allows its users to securely and instantly send and receive money locally or internationally without the burden of high transaction fees or third parties. With Celo, users can conveniently share directly on their mobile phones for as little as $0.01 to virtually anyone around the world. 29 | 30 | ## Borrow easily 31 | 32 | Many individuals don’t have a way of establishing assets or credit history on which to receive loans. With Celo, companies can reimagine the possibilities of financing by enabling anyone with even a basic feature phone to access to save, send peer-to-peer payments, and even obtain loans. 33 | 34 | ## Get Started with Celo 35 | 36 | * [Read Stability White Paper](https://celo.org/papers) 37 | * [Celo Dollars](https://medium.com/celoorg/celo-dollars-powerful-new-digital-money-in-circulation-b4147eda2d10) (cUSD) 38 | * [Celo Euros](https://medium.com/celoorg/deutsche-telekom-joins-celo-ecosystem-as-the-first-mobile-carrier-amid-launch-of-ceur-stablecoin-2b79aae38540) (cEUR) -------------------------------------------------------------------------------- /docs/learn/valora-summary.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Valora 3 | description: Summary of Valora and the value it provides to the community. 4 | --- 5 | # Valora 6 | 7 | Summary of Valora and the value it provides to the community. 8 | 9 | ___ 10 | 11 | ## Use crypto like everyday money 12 | 13 | Valora is a mobile wallet focused on making global peer-to-peer payments simple and accessible to anyone. It supports the Celo Identity Protocol which allows users to verify their phone number and send payments to their contacts. 14 | 15 | Valora syncs to your contacts list, which means you can make payments, send international remittances or simply split the bill with someone in your contact list - no matter where they are in the world. 16 | 17 | Valora’s mission is to be the most reliable way to send and receive value worldwide 18 | 19 | * Available on mobile for all iOS and Android users 20 | * Confirms transactions in less than 5 seconds on average 21 | * Transaction fees as low as 1/100th of the current cost 22 | 23 | ## Send money like a text message 24 | 25 | Valora makes global transfers easy. Send money to your friends and family back home, as simply as sending a text message. 26 | 27 | ## Near-zero fee for transactions on the Celo network 28 | 29 | Valora gives you control of your value by making your phone your wallet. Send transactions directly from your mobile phone to your friends at a fraction of the current cost. 30 | 31 | ## Spend on the things you love 32 | 33 | Use Valora to buy gift cards for major retailers, services, and subscriptions around the world. 34 | 35 | ## Use crypto like everyday money 36 | 37 | Send, pay, and spend cryptocurrency like everyday money - all from the palm of your hand. 38 | 39 | * **Send** funds across borders without any intermediaries. 40 | * **Receive** global transactions in seconds with Valora. 41 | * **Pay** online or in-store where Celo is accepted. 42 | 43 | ## Get Started with Valora 44 | 45 | Visit [valoraapp.com](https://valoraapp.com/) to learn more. 46 | -------------------------------------------------------------------------------- /docs/learn/walletconnect.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: WalletConnect 3 | --- 4 | 5 | # WalletConnect 6 | 7 | [WalletConnect](https://walletconnect.com/) is a standard across EVM compatible blockchains to connect wallets to dapps. It allows developers to build connections between wallets and dapps on the same desktop or mobile device, or between desktop dapps and mobile wallets. 8 | -------------------------------------------------------------------------------- /docs/validator-guide/celo-signal.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Signal 3 | description: How to join the mailing list for everything involving the Celo core community and owners who participate in governance. 4 | --- 5 | # Celo Signal 6 | 7 | How to join the mailing list for everything involving the Celo core community and owners who participate in governance. 8 | 9 | ___ 10 | 11 | ## Why join the Mailing List? 12 | 13 | **If you are a:** 14 | 15 | * Validator 16 | * Node Operator 17 | * Dapp Running Its Own Node 18 | * Exchange or Custodian 19 | * Owner who is Staking + Participating in Governance 20 | * Core Developer or Contributor 21 | 22 | Then Celo Signal Mailing List is a great way to keep up with everything happening in Celo's core community. 23 | 24 | **Updates include information on following events:** 25 | 26 | * Celo All-Core Dev Call (where Celo Platform enhancements and proposals are discussed in the community) 27 | * Celo Governance Call (where governance proposals are discussed prior to submission on-chain) 28 | * Celo Foundation Voting Program updates 29 | * celo-blockchain node and attestation service release updates 30 | * Hardfork Updates 31 | * Celo Core Contract Release schedule 32 | * Core Community Happy Hour 33 | 34 | 35 | :::note 36 | 37 | If you would like to keep up-to-date with all the news happening in the Celo community, including validation, node operation and governance, please sign up to our [Celo Signal mailing list here](https://celo.activehosted.com/f/15). 38 | 39 | ::: 40 | 41 | :::tip 42 | 43 | You can add the [Celo Signal public calendar](https://calendar.google.com/calendar/u/0/embed?src=c_9su6ich1uhmetr4ob3sij6kaqs@group.calendar.google.com) as well which has relevant dates. 44 | 45 | ::: -------------------------------------------------------------------------------- /docs/validator-guide/devops-best-practices.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo DevOps Best Practices 3 | description: Best practices for running cloud infrastructure for Celo nodes and services. 4 | --- 5 | # DevOps Best Practices 6 | 7 | Best practices for running cloud infrastructure for Celo nodes and services. 8 | 9 | ___ 10 | 11 | ## Cloud Infrastructure Best Practices 12 | 13 | ### Node Redundancy 14 | 15 | If you are running your celo-blockchain nodes for mainnet in the cloud as a validator, then we recommend having more than one node running. 16 | 17 | You can use the redundant validator node as a backup node. It's important that it should only be used as a backup node so you must not enable block-signing with it (to avoid double signing). 18 | 19 | In case your primary validator node fails for some reason, then having the redundant node is extremely valuable as you can add the validator keys to it and point it to your proxy to continue signing blocks. 20 | 21 | 22 | ### Snapshotting 23 | 24 | Another useful thing you can do is enabling snapshotting on your redundant node. 25 | 26 | There's no best answer on cadence for snapshotting your redundant node, but one snapshot a week is a good estimate, depending on budget and how the cloud provider charges for snapshotting. 27 | 28 | That way, in the event of a node or instance failure on your validator box, which can potentially lead to database failure and requiring you to resync your validator node, then you can use your snapshot as a starting point for syncing and don't have to wait too long to sync. 29 | 30 | 31 | ### Kubernetes 32 | 33 | We are working on getting a Kubernetes recommended specification and will update this section once we have a recommended spec. If you are using Kubernetes with your validator node, feel free to submit a PR to update this section with your setup. 34 | -------------------------------------------------------------------------------- /docs/validator-guide/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Celo Validators 3 | description: Collection of resources to support Validators on the Celo network. 4 | --- 5 | 6 | import PageRef from '@components/PageRef' 7 | import Tabs from '@theme/Tabs'; 8 | import TabItem from '@theme/TabItem'; 9 | 10 | # Celo Validators 11 | 12 | Secure the Celo network by participating in consensus of the Celo protocol. 13 | 14 | ___ 15 | 16 | Celo Validators participate in the consensus of the Celo protocol. They help secure the Celo network by verifying transactions and proposing blocks to add to the Celo blockchain. 17 | 18 | :::tip 19 | 20 | Not ready to become a Celo Validator? [Learn more about Celo](../../docs/welcome.md). 21 | 22 | ::: 23 | 24 | ## Run a Validator 25 | 26 | 27 | 28 | 29 | ## Important Information 30 | 31 | 32 | 33 | 34 | ## Nodes and Services 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | ## Validator Tools 43 | 44 | 45 | 46 | ## Voting Policy 47 | 48 | 49 | 50 | :::tip 51 | 52 | For questions, comments, and discussions please use the [Celo Forum](https://forum.celo.org/) or [Discord](https://chat.celo.org/). 53 | 54 | ::: 55 | 56 | -------------------------------------------------------------------------------- /docs/validator-guide/proxy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Running Proxies on Celo 3 | description: How to ensure Validator uptime by running proxy nodes. 4 | --- 5 | # Running Proxies 6 | 7 | How to ensure Validator uptime by running proxy nodes. 8 | 9 | ___ 10 | 11 | ## Why run a Proxy? 12 | 13 | Validator uptime is essential for the health of the Celo blockchain. To help with validator uptime, operators can use the proxy node, which will provide added security for the validator. It allows the validator to run within a private network, and to communicate to the rest of the Celo network via the proxy. 14 | 15 | Also, starting from the Celo client 1.2 release, we will support assigning multiple proxies per validator. This provides better uptime for the validator for the case of a proxy going down. Also, it will help with making each proxy enode URL less public by only sharing it with a subset of the other validators. 16 | 17 | :::danger 18 | 19 | The communication protocol between the validator and it's proxies implemented in release 1.2 is NOT backwards compatible to the pre-1.2 protocol. So if the proxy or validator is being upgraded to 1.2, then both needs to be upgraded to that version. Note that validators and proxies using release 1.2 are still compatible with remote nodes. 20 | 21 | ::: 22 | 23 | There are two ways to specify the proxy information to a validator. It can be done on validator startup via the command line argument, or by the rpc api when the validator is running. 24 | 25 | ## Command Line 26 | 27 | Instructions on how to add proxies via the command line is described in the [Getting Started guide for mainnet](/getting-started/mainnet/running-a-validator-in-mainnet#deploy-a-validator-machine). 28 | 29 | ## RPC API 30 | 31 | - `istanbul.addProxy(, )` can be used on the validator to add a proxy to the validator's proxy set 32 | - `istanbul.removeProxy()` can be used on the validator to remove a proxy from the validator's proxy set 33 | - `istanbul.proxies` can be used on the validator to list the validator's proxy set 34 | 35 | - `istanbul.proxiedValidators` can be used on the proxies to list the proxied validators 36 | -------------------------------------------------------------------------------- /docs/validator-guide/securing-nodes-and-services.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Run Secure Celo Nodes and Services 3 | description: Recommendations for running secure Celo nodes and services. 4 | --- 5 | # Run Secure Nodes and Services 6 | 7 | Recommendations for running secure Celo nodes and services. 8 | 9 | ___ 10 | 11 | :::warning 12 | 13 | Running Celo nodes and services securely, especially as part of running a validator, is of utmost importance. Failure to do so can lead to severe consequences including, but not limited to loss of funds, slashing due to double signing, etc. 14 | 15 | ::: 16 | ### RPC Endpoints 17 | 18 | Celo nodes can be interacted with through an RPC interface for common interactions such as querying the blockchain, inspecting network connectivity and much more. The RPC interface is exposed via HTTP, WebSockets or a local IPC socket. There are two considerations: 19 | 20 | 1) There is no authentication in the RPC interface. Anyone with access to the interface will be able to execute any actions that are enabled with the command-line options. This includes sensitive RPC modules like `personal` which interacts with the private keys stored on the node (`admin` is another one). It is not recommended to enable RPC modules unless you explicitly need them. Other RPC modules might be less sensitive but could create unnecessary load on your machine (like the `debug` module) to execute a DoS attack. 21 | 22 | 2) If you do need access to the RPC modules (for example to use `celocli` or the attestation service), use a firewall and similar mechanisms to restrict access to the RPC interface. You almost never want the interface to be accessible from outside the machine itself. 23 | 24 | 25 | ### Public Endpoints 26 | 27 | Beyond the RPC interface, Celo nodes and services have other interfaces that actually need to be exposed to the public internet. While varying degrees of protection exist within the software, such as validating attestation requests against the blockchain or monitoring connections in the discovery protocol, additional measures are recommended to reduce the impact of malicious traffic. Examples include, but are not limited to: 28 | 29 | - **DDoS protection:** Protected public endpoints from a DDoS attack is highly recommended to allow valid requests to be served 30 | - **Whitelist endpoints:** The attestation service exposes a [limited number of paths](https://github.com/celo-org/celo-monorepo/blob/master/packages/attestation-service/src/index.ts#L34) to function correctly. You could use a reverse proxy to reject paths that don't match them. 31 | -------------------------------------------------------------------------------- /docs/welcome.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Welcome to Celo 3 | description: Celo's mission is to build a financial system that creates the conditions for prosperity—for everyone. 4 | id: welcome 5 | slug: / 6 | --- 7 | 8 | import YouTube from '@components/YouTube'; 9 | import PageRef from '@components/PageRef'; 10 | 11 | Celo's mission is to build a financial system that creates the conditions for prosperity—for everyone. 12 | 13 | --- 14 | 15 | ## Crypto made for Mobile 16 | 17 | Celo is a mobile-first blockchain that makes decentralized financial (DeFi) tools and services accessible to anyone with a mobile phone. It aims to break down barriers by bringing the powerful benefits of DeFi to the users of the 6 billion smartphones in circulation today. 18 | 19 | :::tip 20 | 21 | First time visiting Celo? [View the Website](https://www.celo.org) 22 | 23 | ::: 24 | 25 | ## Celo's Mission 26 | 27 | The company’s mission is to build a financial system that creates the conditions of prosperity for everyone. Celo enables native and non-native digital assets–both cryptographic and Central Bank Digital Currencies (CBDCs)–to circulate freely across devices, carriers, and countries. This makes money mobile, global and accessible like never before. Celo is supported by a community of organizations and individuals, including Jack Dorsey, a16z, and Deutsche Telekom. 28 | 29 | 30 | 31 | ## Celo Ecosystem 32 | 33 | An Ethereum-compatible technology capable of reaching global users at scale, Celo turns crypto into usable money with a multi-asset system: a governance and staking asset (CELO) and a family of stablecoins. Since the launch of Mainnet in 2020, Celo’s network now supports 1000+ projects from builders, developers, and artists, who everyday create new applications and issue digital currencies from over 100 countries around the world. 34 | 35 | 36 | 37 | ## Get started with Celo 38 | 39 | To build technology and products that are used and loved by people and solve real-world problems, Celo is building a community with many different perspectives and experiences. Let’s build a monetary system that creates the conditions for prosperity for all. 40 | -------------------------------------------------------------------------------- /i18n/en/docusaurus-plugin-content-blog/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": { 3 | "message": "Blog", 4 | "description": "The title for the blog used in SEO" 5 | }, 6 | "description": { 7 | "message": "Blog", 8 | "description": "The description for the blog used in SEO" 9 | }, 10 | "sidebar.title": { 11 | "message": "Recent posts", 12 | "description": "The label for the left sidebar" 13 | } 14 | } -------------------------------------------------------------------------------- /i18n/en/docusaurus-theme-classic/footer.json: -------------------------------------------------------------------------------- 1 | { 2 | "link.title.Docs": { 3 | "message": "Docs", 4 | "description": "The title of the footer links column with title=Docs in the footer" 5 | }, 6 | "link.title.Community": { 7 | "message": "Community", 8 | "description": "The title of the footer links column with title=Community in the footer" 9 | }, 10 | "link.item.label.Home": { 11 | "message": "Home", 12 | "description": "The label of footer link with label=Home linking to /" 13 | }, 14 | "link.item.label.Stack Overflow": { 15 | "message": "Stack Overflow", 16 | "description": "The label of footer link with label=Stack Overflow linking to https://stackoverflow.com/questions/tagged/celo" 17 | }, 18 | "link.item.label.Discord": { 19 | "message": "Discord", 20 | "description": "The label of footer link with label=Discord linking to https://discordapp.com/invite/docusaurus" 21 | }, 22 | "link.item.label.Twitter": { 23 | "message": "Twitter", 24 | "description": "The label of footer link with label=Twitter linking to https://twitter.com/docusaurus" 25 | }, 26 | "copyright": { 27 | "message": "Copyright © 2021 Celo Foundation, Inc. Built with Docusaurus.", 28 | "description": "The footer copyright" 29 | } 30 | } -------------------------------------------------------------------------------- /i18n/en/docusaurus-theme-classic/navbar.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": { 3 | "message": "Celo Docs", 4 | "description": "The title in the navbar" 5 | }, 6 | "item.label.Celo Home": { 7 | "message": "Celo Home", 8 | "description": "Navbar item with label Celo Home" 9 | }, 10 | "item.label.Build": { 11 | "message": "Build", 12 | "description": "Navbar item with label Build" 13 | }, 14 | "item.label.Faucet": { 15 | "message": "Faucet", 16 | "description": "Navbar item with label Faucet" 17 | }, 18 | "item.label.GitHub": { 19 | "message": "GitHub", 20 | "description": "Navbar item with label GitHub" 21 | } 22 | } -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | # Reference: https://docs.netlify.com/site-deploys/overview/#deploy-contexts 2 | 3 | # Production context: 4 | # All deploys from the main repository branch 5 | # will inherit these settings. 6 | [context.production] 7 | command = "yarn build" 8 | 9 | # Deploy Preview context: 10 | # All deploys generated from a pull/merge request 11 | # will inherit these settings. 12 | [context.deploy-preview] 13 | command = "yarn run build --locale en" 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "celo-docs", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "docusaurus": "docusaurus", 7 | "start": "docusaurus start", 8 | "build": "yarn crowdin:sync && docusaurus build", 9 | "swizzle": "docusaurus swizzle", 10 | "deploy": "docusaurus deploy", 11 | "clear": "docusaurus clear", 12 | "serve": "docusaurus serve", 13 | "write-translations": "docusaurus write-translations", 14 | "write-heading-ids": "docusaurus write-heading-ids", 15 | "crowdin": "crowdin", 16 | "crowdin:sync": "docusaurus write-translations && crowdin upload && crowdin download" 17 | }, 18 | "dependencies": { 19 | "@crowdin/cli": "^3.7.0", 20 | "@docusaurus/core": "^2.0.0-beta.14", 21 | "@docusaurus/plugin-client-redirects": "^2.0.0-beta.14", 22 | "@docusaurus/preset-classic": "^2.0.0-beta.14", 23 | "@docusaurus/remark-plugin-npm2yarn": "^2.0.0-beta.14", 24 | "@docusaurus/theme-live-codeblock": "^2.0.0-beta.14", 25 | "@docusaurus/theme-search-algolia": "^2.0.0-beta.14", 26 | "@mdx-js/react": "^1.6.21", 27 | "clsx": "^1.1.1", 28 | "docusaurus-plugin-fathom": "^1.1.0", 29 | "hast-util-is-element": "1.1.0", 30 | "react": "^17.0.1", 31 | "react-dom": "^17.0.1", 32 | "react-youtube": "^7.13.1", 33 | "rehype-katex": "4", 34 | "remark-math": "3" 35 | }, 36 | "browserslist": { 37 | "production": [ 38 | ">0.5%", 39 | "not dead", 40 | "not op_mini all" 41 | ], 42 | "development": [ 43 | "last 1 chrome version", 44 | "last 1 firefox version", 45 | "last 1 safari version" 46 | ] 47 | }, 48 | "devDependencies": { 49 | "@docusaurus/module-type-aliases": "^2.0.0-beta.14", 50 | "@tsconfig/docusaurus": "^1.0.2", 51 | "@types/react": "^17.0.11", 52 | "@types/react-helmet": "^6.1.1", 53 | "@types/react-router-dom": "^5.1.7", 54 | "typescript": "^4.3.4" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/components/CustomBlogListPage.module.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import React from 'react'; 9 | 10 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 11 | import BlogLayout from '@theme/BlogLayout'; 12 | import BlogPostItem from '@theme/BlogPostItem'; 13 | import BlogListPaginator from '@theme/BlogListPaginator'; 14 | import type {Props} from '@theme/BlogListPage'; 15 | import {ThemeClassNames} from '@docusaurus/theme-common'; 16 | 17 | function BlogListPage(props: Props): JSX.Element { 18 | const {metadata, items, sidebar} = props; 19 | const { 20 | siteConfig: {title: siteTitle}, 21 | } = useDocusaurusContext(); 22 | const {blogDescription, blogTitle, permalink} = metadata; 23 | const isBlogOnlyMode = permalink === '/'; 24 | const title = isBlogOnlyMode ? siteTitle : blogTitle; 25 | 26 | return ( 27 | 37 | Filter posts by tag 38 | {items.map(({content: BlogPostContent}) => ( 39 | 45 | 46 | 47 | ))} 48 | 49 | 50 | ); 51 | } 52 | 53 | export default BlogListPage; 54 | 55 | -------------------------------------------------------------------------------- /src/components/HomepageFeatures.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import styles from './HomepageFeatures.module.css'; 4 | 5 | const FeatureList = [ 6 | { 7 | title: 'Learn the basics', 8 | // Svg: require('../../static/img/homepage/1.svg').default, 9 | description: ( 10 | <>Join the mission to build a financial system that creates the conditions for prosperity—for everyone. 11 | ), 12 | link: ( 13 | Get started with Celo 14 | ), 15 | }, 16 | { 17 | title: 'Build on Celo', 18 | // Svg: require('../../static/img/homepage/1.svg').default, 19 | description: ( 20 | <>Build, deploy, and manage applications on the Celo network. 21 | ), 22 | link: ( 23 | Start building 24 | ), 25 | }, 26 | { 27 | title: 'Secure the network', 28 | // Svg: require('../../static/img/homepage/1.svg').default, 29 | description: ( 30 | <>Setup Celo nodes to maintain the network and earn rewards. 31 | ), 32 | link: ( 33 | Run a node 34 | ), 35 | }, 36 | { 37 | title: 'Contribute to Celo', 38 | // Svg: require('../../static/img/homepage/1.svg').default, 39 | description: ( 40 | <>Start sending, spending, and earning crypto from your mobile phone. 41 | ), 42 | link: ( 43 | Use the Celo network 44 | ), 45 | }, 46 | { 47 | title: 'Learn by coding', 48 | // Svg: require('../../static/img/homepage/1.svg').default, 49 | description: ( 50 | <>Gain the skills you need to get the most from the Celo platform. 51 | ), 52 | link: ( 53 | // Learn Celo 54 | Learn more with Celo 55 | ), 56 | }, 57 | { 58 | title: 'Join the Discussion', 59 | // Svg: require('../../static/img/homepage/1.svg').default, 60 | description: ( 61 | <>Join a community of developers, designers, dreamers, and doers. 62 | ), 63 | link: ( 64 | Join Discord 65 | ), 66 | }, 67 | ]; 68 | 69 | function Feature({title, description, link}) { 70 | return ( 71 |
72 | {/*
73 | 74 |
*/} 75 |
76 |

{title}

77 |

{description}

78 |

{link}

79 |
80 |
81 | ); 82 | } 83 | 84 | export default function HomepageFeatures() { 85 | return ( 86 |
87 |
88 |
89 | {FeatureList.map((props, idx) => ( 90 | 91 | ))} 92 |
93 |
94 |
95 | ); 96 | } 97 | -------------------------------------------------------------------------------- /src/components/HomepageFeatures.module.css: -------------------------------------------------------------------------------- 1 | .features { 2 | display: flex; 3 | align-items: center; 4 | padding: 2rem 0; 5 | width: 100%; 6 | } 7 | 8 | .featureSvg { 9 | height: 200px; 10 | width: 200px; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/components/ImageWrapper.module.css: -------------------------------------------------------------------------------- 1 | .center { 2 | text-align: center; 3 | } -------------------------------------------------------------------------------- /src/components/ImageWrapper.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './ImageWrapper.module.css'; 3 | 4 | type ImageWrapperProps = { 5 | path: string, 6 | alt: string, 7 | width: string 8 | } 9 | 10 | export default function PageRef({ path, alt, width } : ImageWrapperProps) { 11 | return ( 12 |
13 | {alt} 14 |
15 | ) 16 | } -------------------------------------------------------------------------------- /src/components/PageRef.module.css: -------------------------------------------------------------------------------- 1 | .pageRef { 2 | display: flex; 3 | margin: 32px 0px; 4 | align-items: center; 5 | text-decoration: none; 6 | justify-content: space-between; 7 | padding: 8px 16px; 8 | border: 1px solid var(--ifm-color-secondary); 9 | border-radius: 3px; 10 | box-shadow: rgb(116 129 141 / 10%) 0px 3px 8px 0px; 11 | transition: border 250ms ease 0s; 12 | } 13 | 14 | .left { 15 | display: flex; 16 | align-items: center; 17 | } 18 | 19 | .pageRef:hover { 20 | text-decoration: none; 21 | border: 1px solid var(--ifm-color-primary); 22 | } 23 | 24 | .arrow { 25 | font-size: 30px; 26 | margin-right: 16px; 27 | } 28 | 29 | .pageName { 30 | } 31 | 32 | .url { 33 | justify-self: end; 34 | color: var(--ifm-color-secondary-darkest); 35 | font-size: 12px; 36 | } 37 | -------------------------------------------------------------------------------- /src/components/PageRef.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './PageRef.module.css'; 3 | 4 | type PageRefProps = { 5 | url: string, 6 | pageName: string, 7 | } 8 | 9 | export default function PageRef({ url, pageName } : PageRefProps) { 10 | return ( 11 | 15 |
16 |
17 |
{pageName}
18 |
19 |
{url}
20 |
21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /src/components/YouTube.module.css: -------------------------------------------------------------------------------- 1 | .container { 2 | margin: 24px 0px; 3 | width: 100%; 4 | /* Small trick to get the height a ratio of the width */ 5 | padding-bottom: 56.25%; 6 | position: relative; 7 | height: 0; 8 | } 9 | 10 | .sizer { 11 | position: absolute; 12 | height: 100%; 13 | width: 100%; 14 | } 15 | -------------------------------------------------------------------------------- /src/components/YouTube.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactYouTube from 'react-youtube'; 3 | import styles from './YouTube.module.css'; 4 | 5 | export default function YouTube({ videoId } : { videoId: string }) { 6 | return ( 7 |
8 | 16 |
17 | ) 18 | } 19 | -------------------------------------------------------------------------------- /src/pages/index.module.css: -------------------------------------------------------------------------------- 1 | /** 2 | * CSS files with the .module.css suffix will be treated as CSS modules 3 | * and scoped locally. 4 | */ 5 | 6 | .heroBanner { 7 | padding: 4rem 0; 8 | text-align: center; 9 | position: relative; 10 | overflow: hidden; 11 | } 12 | 13 | @media screen and (max-width: 966px) { 14 | .heroBanner { 15 | padding: 2rem; 16 | } 17 | } 18 | 19 | .buttons { 20 | display: flex; 21 | align-items: center; 22 | justify-content: center; 23 | } 24 | -------------------------------------------------------------------------------- /src/pages/markdown-page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Markdown page example 3 | --- 4 | 5 | # Markdown page example 6 | 7 | You don't need React to write simple standalone pages. 8 | -------------------------------------------------------------------------------- /src/pages/remove-index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import Layout from '@theme/Layout'; 4 | import Link from '@docusaurus/Link'; 5 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 6 | import styles from './index.module.css'; 7 | import HomepageFeatures from '../components/HomepageFeatures'; 8 | 9 | function HomepageHeader() { 10 | const {siteConfig} = useDocusaurusContext(); 11 | return ( 12 |
13 |
14 |

{siteConfig.title}

15 |

{siteConfig.tagline}

16 |
17 | 20 | Get Started 21 | 22 |
23 |
24 |
25 | ); 26 | } 27 | 28 | export default function Home() { 29 | const {siteConfig} = useDocusaurusContext(); 30 | return ( 31 | 34 | 35 |
36 | 37 |
38 |
39 | ); 40 | } 41 | -------------------------------------------------------------------------------- /src/pages/styles.module.css: -------------------------------------------------------------------------------- 1 | /* stylelint-disable docusaurus/copyright-header */ 2 | 3 | /** 4 | * CSS files with the .module.css suffix will be treated as CSS modules 5 | * and scoped locally. 6 | */ 7 | 8 | .heroBanner { 9 | padding: 4rem 0; 10 | text-align: center; 11 | position: relative; 12 | overflow: hidden; 13 | } 14 | 15 | @media screen and (max-width: 966px) { 16 | .heroBanner { 17 | padding: 2rem; 18 | } 19 | } 20 | 21 | .buttons { 22 | display: flex; 23 | align-items: center; 24 | justify-content: center; 25 | } 26 | 27 | .features { 28 | display: flex; 29 | align-items: center; 30 | padding: 2rem 0; 31 | width: 100%; 32 | } 33 | 34 | .featureImage { 35 | height: 200px; 36 | width: 200px; 37 | } 38 | -------------------------------------------------------------------------------- /src/plugins/aliases.ts: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = function (context, options) { 4 | return { 5 | name: 'aliases', 6 | configureWebpack() { 7 | return { 8 | resolve: { 9 | alias: { 10 | '@components': path.resolve(__dirname, '../../src/components/'), 11 | } 12 | } 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/.nojekyll -------------------------------------------------------------------------------- /static/img/color-favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/color-favicon.png -------------------------------------------------------------------------------- /static/img/color-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/color-logo.png -------------------------------------------------------------------------------- /static/img/doc-images/band-protocol-how-to/deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/band-protocol-how-to/deploy.png -------------------------------------------------------------------------------- /static/img/doc-images/band-protocol-how-to/get-price.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/band-protocol-how-to/get-price.png -------------------------------------------------------------------------------- /static/img/doc-images/band-protocol-how-to/getmultiprices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/band-protocol-how-to/getmultiprices.png -------------------------------------------------------------------------------- /static/img/doc-images/band-protocol-how-to/remix-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/band-protocol-how-to/remix-environment.png -------------------------------------------------------------------------------- /static/img/doc-images/band-protocol-how-to/saveprice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/band-protocol-how-to/saveprice.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-hardhat/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-hardhat/image1.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-hardhat/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-hardhat/image2.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-hardhat/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-hardhat/image3.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-remix/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-remix/image1.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-remix/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-remix/image2.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-remix/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-remix/image3.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-remix/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-remix/image4.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-remix/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-remix/image5.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-remix/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-remix/image6.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image1.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image10.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image11.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image12.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image2.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image3.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image4.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image5.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image6.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image7.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image8.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-replit/image9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-replit/image9.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-truffle/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-truffle/image1.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-truffle/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-truffle/image2.png -------------------------------------------------------------------------------- /static/img/doc-images/deploy-truffle/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/deploy-truffle/image3.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/confirm-transaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/confirm-transaction.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/connect-metamask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/connect-metamask.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/estimated-gas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/estimated-gas.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/ethereum-to-celo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/ethereum-to-celo.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-1-connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-1-connect.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-2-connect-confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-2-connect-confirm.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-3-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-3-select.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-4-amount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-4-amount.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-5-approve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-5-approve.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-6-swap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-6-swap.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-7-swap-confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-7-swap-confirm.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/mobius-migrate-8-verify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/mobius-migrate-8-verify.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/token-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/token-list.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/transaction-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/transaction-history.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/verify-token-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/verify-token-list.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/verify-token-wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/verify-token-wallet.png -------------------------------------------------------------------------------- /static/img/doc-images/migrating-optics-v2/weth-to-ethereum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/migrating-optics-v2/weth-to-ethereum.png -------------------------------------------------------------------------------- /static/img/doc-images/testnet-wallet/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/testnet-wallet/image1.png -------------------------------------------------------------------------------- /static/img/doc-images/testnet-wallet/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/testnet-wallet/image2.png -------------------------------------------------------------------------------- /static/img/doc-images/testnet-wallet/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/testnet-wallet/image3.png -------------------------------------------------------------------------------- /static/img/doc-images/testnet-wallet/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/testnet-wallet/image4.png -------------------------------------------------------------------------------- /static/img/doc-images/testnet-wallet/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/testnet-wallet/image5.png -------------------------------------------------------------------------------- /static/img/doc-images/testnet-wallet/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/testnet-wallet/image6.png -------------------------------------------------------------------------------- /static/img/doc-images/valora-wc-v1/connect-dapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/valora-wc-v1/connect-dapp.png -------------------------------------------------------------------------------- /static/img/doc-images/valora-wc-v1/connect-valora.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/valora-wc-v1/connect-valora.jpg -------------------------------------------------------------------------------- /static/img/doc-images/valora-wc-v1/qr-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/valora-wc-v1/qr-code.png -------------------------------------------------------------------------------- /static/img/doc-images/valora-wc-v1/send-cusd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/valora-wc-v1/send-cusd.png -------------------------------------------------------------------------------- /static/img/doc-images/valora-wc-v1/valora-send.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/doc-images/valora-wc-v1/valora-send.jpg -------------------------------------------------------------------------------- /static/img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/docusaurus.png -------------------------------------------------------------------------------- /static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/favicon.ico -------------------------------------------------------------------------------- /static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/redstone-finance/docs/de9199cd762cfe036ee91787a03a24a7c7dab18e/static/img/logo.png -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/docusaurus/tsconfig.json", 3 | "include": ["src/"] 4 | } 5 | --------------------------------------------------------------------------------