├── .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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
18 |
19 | ## Add Account
20 |
21 | Select “Add account”
22 |
23 | 
24 |
25 | ## Add Ledger Account
26 |
27 | Connect your ledger device and choose “Add Ledger Account”
28 |
29 | 
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 | 
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 | 
19 |
20 | ## Use Ledger
21 |
22 | Select “Use Ledger”
23 |
24 | 
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 | 
31 |
32 | ## Ledger Plugin
33 |
34 | Plugin your ledger device and select connect.
35 |
36 | 
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 | 
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 |

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 |
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 |
--------------------------------------------------------------------------------