From 53b7a402c9ab57865fdce05f30d0212826d7598b Mon Sep 17 00:00:00 2001 From: GigaHierz Date: Thu, 25 Jun 2026 13:52:50 +0100 Subject: [PATCH 1/5] fix: repair broken external links across docs Swept all external URLs in the active docs and replaced genuine 404s (verified each replacement now returns 200). Internal links unaffected. - Vendor docs that moved: MetaMask, Self, Jaw.id, Quex, POKT, Dynamic, Para, Witnet, OpenZeppelin, Coinbase Wallet - GitHub repo restructures: celo-composer, Validators.sol, CGP links (migrated to governance repo), ODIS source (moved to social-connect) - Dead project hosts: Credit Collective, MCP community, indexing.co - Deprecated content: SETUP.md -> README, oracle Helm chart -> archived repo, ContractKit sample RPC -> Celo Sepolia forno Co-Authored-By: Claude Opus 4.8 --- build-on-celo/build-with-ai/mcp/index.mdx | 2 +- build-on-celo/build-with-defi.mdx | 2 +- build-on-celo/build-with-self.mdx | 10 +++++----- build-on-celo/fee-abstraction/add-fee-currency.mdx | 2 +- .../community-rpc-nodes/how-it-works.mdx | 2 +- contribute-to-celo/release-process/smart-contracts.mdx | 6 +++--- home/protocol/governance/voting-in-governance.mdx | 2 +- tooling/dev-environments/hardhat.mdx | 2 +- tooling/indexers/indexing-co.mdx | 2 +- tooling/libraries-sdks/contractkit/odis.mdx | 10 +++++----- tooling/libraries-sdks/contractkit/setup.mdx | 2 +- tooling/libraries-sdks/dynamic/index.mdx | 2 +- tooling/libraries-sdks/jaw/index.mdx | 6 +++--- tooling/nodes/overview.mdx | 4 ++-- tooling/oracles/quex-oracles.mdx | 4 ++-- tooling/oracles/run.mdx | 4 ++-- tooling/oracles/wit-oracle.mdx | 2 +- tooling/overview/setup/windows.mdx | 2 +- tooling/wallets/coinbase-wallet.mdx | 4 ++-- tooling/wallets/index.mdx | 2 +- tooling/wallets/metamask/setup.mdx | 4 ++-- 21 files changed, 38 insertions(+), 38 deletions(-) diff --git a/build-on-celo/build-with-ai/mcp/index.mdx b/build-on-celo/build-with-ai/mcp/index.mdx index 1a3d32979..de582e77d 100644 --- a/build-on-celo/build-with-ai/mcp/index.mdx +++ b/build-on-celo/build-with-ai/mcp/index.mdx @@ -50,4 +50,4 @@ Explore existing MCP server implementations: ## Additional Resources - [Official MCP Documentation](https://modelcontextprotocol.io/introduction) -- [MCP Community Forum](https://community.modelcontextprotocol.io) +- [MCP Community Discussions](https://github.com/modelcontextprotocol/modelcontextprotocol/discussions) diff --git a/build-on-celo/build-with-defi.mdx b/build-on-celo/build-with-defi.mdx index e9b29e563..a009777d1 100644 --- a/build-on-celo/build-with-defi.mdx +++ b/build-on-celo/build-with-defi.mdx @@ -40,7 +40,7 @@ Celo supports a vibrant ecosystem of DeFi protocols that utilize stablecoins: ### Lending & Borrowing - **[Aave](https://aave.com/)** – Decentralized lending and borrowing platform officially launched on Celo in 2025, expanding lending options with institutional and retail liquidity support. -- **[Credit Collective](https://creditcollective.xyz/)** – On-chain private credit protocol supporting real-world assets (RWAs) and emerging market stablecoins. Manages liquidity strategies and provides sustainable market-making for new stablecoins. +- **[Credit Collective](https://www.credit-collective.com)** – On-chain private credit protocol supporting real-world assets (RWAs) and emerging market stablecoins. Manages liquidity strategies and provides sustainable market-making for new stablecoins. - **[PWN](https://pwn.xyz/)** – Fixed rate lending platform. ### Exchanges diff --git a/build-on-celo/build-with-self.mdx b/build-on-celo/build-with-self.mdx index 664321d50..bd4eceae8 100644 --- a/build-on-celo/build-with-self.mdx +++ b/build-on-celo/build-with-self.mdx @@ -84,11 +84,11 @@ Self has introduced a points program that incentivizes consistent, secure use: - [Self Documentation](https://docs.self.xyz/) - [Self Playground](https://playground.self.xyz/) - [Self Staging Playground](https://playground.staging.self.xyz/) -- [Self Quickstart Guide](https://docs.self.xyz/use-self/quickstart) -- [Contract Integration Guide](https://docs.self.xyz/contract-integration/basic-integration) -- [Backend Integration Guide](https://docs.self.xyz/backend-integration/basic-integration) -- [QRCode SDK Documentation](https://docs.self.xyz/frontend-integration/qrcode-sdk) -- [Deployed Contracts](https://docs.self.xyz/contract-integration/deployed-contracts) +- [Self Quickstart Guide](https://docs.self.xyz/docs/self-pass/quickstart) +- [Contract Integration Guide](https://docs.self.xyz/docs/self-pass/contracts/basic-integration) +- [Backend Integration Guide](https://docs.self.xyz/docs/self-pass/backend/basic-integration) +- [QRCode SDK Documentation](https://docs.self.xyz/docs/self-pass/frontend/qrcode-sdk) +- [Deployed Contracts](https://docs.self.xyz/docs/self-pass/contracts/deployed-contracts) ## Support diff --git a/build-on-celo/fee-abstraction/add-fee-currency.mdx b/build-on-celo/fee-abstraction/add-fee-currency.mdx index 126403bb0..4a9d3ad38 100644 --- a/build-on-celo/fee-abstraction/add-fee-currency.mdx +++ b/build-on-celo/fee-abstraction/add-fee-currency.mdx @@ -12,7 +12,7 @@ For background on how fee abstraction works, see the [Overview](/build-on-celo/f ## The IFeeCurrency Interface -Fee currencies must implement the [IFeeCurrency](https://github.com/celo-org/fee-currency-example/blob/main/src/IFeeCurrency.sol) interface, which extends ERC20 with two additional functions used by the Celo blockchain to debit and credit gas fees. +Fee currencies must implement the [IFeeCurrency](https://github.com/celo-org/fee-currency-example) interface, which extends ERC20 with two additional functions used by the Celo blockchain to debit and credit gas fees. When a [CIP-64](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0064.md) transaction is executed: diff --git a/contribute-to-celo/community-rpc-nodes/how-it-works.mdx b/contribute-to-celo/community-rpc-nodes/how-it-works.mdx index c65a691a1..a36a1249b 100644 --- a/contribute-to-celo/community-rpc-nodes/how-it-works.mdx +++ b/contribute-to-celo/community-rpc-nodes/how-it-works.mdx @@ -42,7 +42,7 @@ Elections are handled my smart contracts, and as such can be changed through Cel - [`LockedGold.sol`](https://github.com/celo-org/celo-monorepo/blob/master/packages/protocol/contracts/governance/LockedGold.sol) manages the lifecycle of Locked Gold. -- [`Validators.sol`](https://github.com/celo-org/celo-monorepo/blob/master/packages/protocol/contracts/governance/Validators.sol) handles registration, deregistration, staking, key management and epoch rewards for validators and validator groups, as well as routines to manage the members of groups. +- [`Validators.sol`](https://github.com/celo-org/celo-monorepo/blob/master/packages/protocol/contracts-0.8/governance/Validators.sol) handles registration, deregistration, staking, key management and epoch rewards for validators and validator groups, as well as routines to manage the members of groups. - [`Election.sol`](https://github.com/celo-org/celo-monorepo/blob/master/packages/protocol/contracts/governance/Election.sol) manages Locked Gold voting and epoch rewards and runs Validator Elections. diff --git a/contribute-to-celo/release-process/smart-contracts.mdx b/contribute-to-celo/release-process/smart-contracts.mdx index c169815b4..43d1d39a2 100644 --- a/contribute-to-celo/release-process/smart-contracts.mdx +++ b/contribute-to-celo/release-process/smart-contracts.mdx @@ -68,7 +68,7 @@ Github branches/tags and Github releases are used to coordinate past and ongoing There are several scripts provided (under `packages/protocol` in [celo-org/celo-monorepo](https://github.com/celo-org/celo-monorepo) and via [celocli](/cli/)) for use in the release process and with contract upgrade governance proposals to give participating stakeholders increased confidence. -For these to run, you may need to follow the [setup instructions](https://github.com/celo-org/celo-monorepo/blob/master/SETUP.md). These steps include installing Node and setting `nvm` to use the correct version of Node. Successful `yarn install` and `yarn build` in the protocol package signal a completed setup. +For these to run, you may need to follow the [setup instructions](https://github.com/celo-org/celo-monorepo/blob/master/README.md). These steps include installing Node and setting `nvm` to use the correct version of Node. Successful `yarn install` and `yarn build` in the protocol package signal a completed setup. Using these tools, a contract release candidate can be built, deployed, and proposed for upgrade automatically on a specified network. Subsequently, stakeholders can verify the release candidate against a governance upgrade proposal's contents on the network. @@ -117,7 +117,7 @@ The following exceptions apply: Critically, this ensures that proxied contracts do not experience storage collisions between implementation versions. See [this -article](https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies#storage-collisions-between-implementation-versions) +article](https://docs.openzeppelin.com/upgrades-plugins/proxies#storage-collisions-between-implementation-versions) by OpenZeppelin for a good overview of this problem and why it's important to check for it. @@ -304,7 +304,7 @@ Deploying a new contract release should occur with the following process. On-cha
  1. {" "} - Submit a governance proposal draft using this [format: ](https://github.com/celo-org/celo-proposals/blob/master/CGPs/template.md) + Submit a governance proposal draft using this [format: ](https://github.com/celo-org/governance/blob/main/CGPs/cgp-template.md)
  2. {" "} diff --git a/home/protocol/governance/voting-in-governance.mdx b/home/protocol/governance/voting-in-governance.mdx index 991b5bc97..047de0204 100644 --- a/home/protocol/governance/voting-in-governance.mdx +++ b/home/protocol/governance/voting-in-governance.mdx @@ -57,7 +57,7 @@ metadata: deposit: 100000000000000000000 (~1.000e+20) timestamp: 1609961608 (~1.610e+9) transactionCount: 1 - descriptionURL: https://github.com/celo-org/celo-proposals/blob/master/CGPs/0016.md + descriptionURL: https://github.com/celo-org/governance/blob/main/CGPs/cgp-0016.md stage: Referendum upvotes: 0 votes: diff --git a/tooling/dev-environments/hardhat.mdx b/tooling/dev-environments/hardhat.mdx index b81b18185..1d5712163 100644 --- a/tooling/dev-environments/hardhat.mdx +++ b/tooling/dev-environments/hardhat.mdx @@ -28,7 +28,7 @@ Choose one of the following items to prepare a dApp to deploy on Celo. ## Update the hardhat.config.js file -Open [hardhat.config.js](https://hardhat.org/config/) in a text editor and replace its contents with this [Celo configuration code](https://github.com/celo-org/celo-composer/blob/main/packages/hardhat/hardhat.config.ts). This code is similar to Hardhat settings with a few configuration updates needed to deploy to a Celo network. You will need to create a `.env` file in the project root directory and install `dotenv` with npm or yarn in order to read the `process.env.MNEMONIC` variable in the config file. +Open [hardhat.config.js](https://hardhat.org/config/) in a text editor and replace its contents with this [Celo configuration code](https://github.com/celo-org/celo-composer/blob/main/templates/contracts/hardhat/hardhat.config.ts.hbs). This code is similar to Hardhat settings with a few configuration updates needed to deploy to a Celo network. You will need to create a `.env` file in the project root directory and install `dotenv` with npm or yarn in order to read the `process.env.MNEMONIC` variable in the config file. ### Connect to Testnet using Forno diff --git a/tooling/indexers/indexing-co.mdx b/tooling/indexers/indexing-co.mdx index ff575c289..98e33313c 100644 --- a/tooling/indexers/indexing-co.mdx +++ b/tooling/indexers/indexing-co.mdx @@ -143,7 +143,7 @@ cp -r indexing-co-pipeline-skill/skills/indexing-co-pipelines ~/.claude/skills/ ## Resources - [Documentation](https://docs.indexing.co) -- [Platform](https://app.indexing.co) +- [Platform](https://indexing.co) - [GitHub](https://github.com/indexing-co) - [MCP Server](https://github.com/indexing-co/indexing-co-mcp) - [Claude Code Skill](https://github.com/indexing-co/indexing-co-pipeline-skill) diff --git a/tooling/libraries-sdks/contractkit/odis.mdx b/tooling/libraries-sdks/contractkit/odis.mdx index cf1c8378b..08a061311 100644 --- a/tooling/libraries-sdks/contractkit/odis.mdx +++ b/tooling/libraries-sdks/contractkit/odis.mdx @@ -99,16 +99,16 @@ Or use the `WasmBlsBlindingClient` if your runtime environment supports Web Asse const blsBlindingClient = new WasmBlsBlindingClient(odisPubKey); ``` -Now you're ready to get the phone number identifier. `OdisUtils.PhoneNumberIdentifier.getPhoneNumberIdentifier` [documentation can be found here](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L36). +Now you're ready to get the phone number identifier. `OdisUtils.PhoneNumberIdentifier.getPhoneNumberIdentifier` [documentation can be found here](https://github.com/celo-org/social-connect/blob/main/packages/identity/src/odis/phone-number-identifier.ts). -The response will be [an object](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L26) with the original phone number, the on-chain identifier (phoneHash), and the phone number's pepper. +The response will be [an object](https://github.com/celo-org/social-connect/blob/main/packages/identity/src/odis/phone-number-identifier.ts) with the original phone number, the on-chain identifier (phoneHash), and the phone number's pepper. -You can view an example of this call in [our mobile project here](https://github.com/celo-org/wallet/blob/master/packages/mobile/src/identity/privateHashing.ts). +You can view an example of this call in [the social-connect identity SDK here](https://github.com/celo-org/social-connect/tree/main/packages/identity/src/odis). ## Matchmaking -Instead of querying for all the user's contact's peppers and consuming the user's quota, it's recommended to only query the pepper before it's actually used (ex. just before sending funds). However, sometimes it's helpful to let your users know that they have contacts already using the Celo network. To do this, you can make use of the matchmaking interface. Given two phone numbers, it will let you know whether the other party has also registered on the Celo network with this identifier. `OdisUtils.Matchmaking.getContactMatches` [documentation can be found here](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/matchmaking.ts#L19). +Instead of querying for all the user's contact's peppers and consuming the user's quota, it's recommended to only query the pepper before it's actually used (ex. just before sending funds). However, sometimes it's helpful to let your users know that they have contacts already using the Celo network. To do this, you can make use of the matchmaking interface. Given two phone numbers, it will let you know whether the other party has also registered on the Celo network with this identifier. `OdisUtils.Matchmaking.getContactMatches` [documentation can be found here](https://github.com/celo-org/social-connect/tree/main/packages/identity/src/odis). The response will be a subset of the input `e164NumberContacts` that are matched by the matchmaking service. -You can view an example of this call in [our mobile project here](https://github.com/celo-org/wallet/blob/master/packages/mobile/src/identity/matchmaking.ts). \ No newline at end of file +You can view an example of this call in [the social-connect identity SDK here](https://github.com/celo-org/social-connect/tree/main/packages/identity/src/odis). \ No newline at end of file diff --git a/tooling/libraries-sdks/contractkit/setup.mdx b/tooling/libraries-sdks/contractkit/setup.mdx index 4a6da1410..52a81c47e 100644 --- a/tooling/libraries-sdks/contractkit/setup.mdx +++ b/tooling/libraries-sdks/contractkit/setup.mdx @@ -56,7 +56,7 @@ To start working with ContractKit you need a `kit` instance and a valid net to c import Web3 from "web3"; import { newKitFromWeb3 } from "@celo/contractkit"; -const web3 = new Web3("https://alfajores-forno.celo-testnet.org"); +const web3 = new Web3("https://forno.celo-sepolia.celo-testnet.org/"); const kit = newKitFromWeb3(web3); ``` diff --git a/tooling/libraries-sdks/dynamic/index.mdx b/tooling/libraries-sdks/dynamic/index.mdx index dc72e3354..726f14010 100644 --- a/tooling/libraries-sdks/dynamic/index.mdx +++ b/tooling/libraries-sdks/dynamic/index.mdx @@ -12,7 +12,7 @@ You can see a CodeSandbox of the example below [here](https://shv1y7.csb.app/) ( ## Prerequisites -Dynamic works with React today. You can go through the standard getting started guide [here](https://docs.dynamic.xyz/docs/getting-started-with-dynamic). +Dynamic works with React today. You can go through the standard getting started guide [here](https://docs.dynamic.xyz/introduction/welcome). ## Step 1: Create a Dynamic account diff --git a/tooling/libraries-sdks/jaw/index.mdx b/tooling/libraries-sdks/jaw/index.mdx index de7cbe938..8fd981b56 100644 --- a/tooling/libraries-sdks/jaw/index.mdx +++ b/tooling/libraries-sdks/jaw/index.mdx @@ -321,7 +321,7 @@ const result = await provider.request({ console.log('Permission granted:', result.permissionId); ``` -Once a permission is granted, a server-side spender can execute calls against it using `Account.fromLocalAccount()` from `@jaw.id/core`. See [Subscription Payments](https://docs.jaw.id/guides/subscription-payments) and [Account API](https://docs.jaw.id/account) for full details. +Once a permission is granted, a server-side spender can execute calls against it using `Account.fromLocalAccount()` from `@jaw.id/core`. See [Subscription Payments](https://docs.jaw.id/guides/subscription) and [Account API](https://docs.jaw.id/account) for full details. ## Authentication Modes @@ -343,8 +343,8 @@ See the [JAW configuration docs](https://docs.jaw.id/configuration) for setup de - [Quickstart guide](https://docs.jaw.id/guides/quickstart): full end-to-end walkthrough - [Account API](https://docs.jaw.id/account): headless smart accounts for agents and server-side use - [Gas Sponsoring](https://docs.jaw.id/guides/gas-sponsoring): paymaster setup and sponsorship policies -- [Sign-In With Ethereum](https://docs.jaw.id/guides/sign-in-with-ethereum): SIWE during connection -- [Subscription Payments](https://docs.jaw.id/guides/subscription-payments): recurring charges with delegated permissions +- [Sign-In With Ethereum](https://docs.jaw.id/guides/siwe): SIWE during connection +- [Subscription Payments](https://docs.jaw.id/guides/subscription): recurring charges with delegated permissions - [Onchain Identity](https://docs.jaw.id/guides/onchain-identity): ENS subname issuance on onboarding - [Configuration reference](https://docs.jaw.id/configuration): all config options diff --git a/tooling/nodes/overview.mdx b/tooling/nodes/overview.mdx index a816bb40f..6fb4ae08f 100644 --- a/tooling/nodes/overview.mdx +++ b/tooling/nodes/overview.mdx @@ -130,8 +130,8 @@ https://thirdweb.com/celo - Celo Mainnet - -https://docs.pokt.network/reference/supported-chains#pokt-mainnet + +https://docs.pocket.network/developers/supported-chains ### Tatum diff --git a/tooling/oracles/quex-oracles.mdx b/tooling/oracles/quex-oracles.mdx index ea89f386b..40e5a34ed 100644 --- a/tooling/oracles/quex-oracles.mdx +++ b/tooling/oracles/quex-oracles.mdx @@ -33,13 +33,13 @@ Unlike traditional oracles, Quex allows you to securely make verifiable API call IMPORTANT: Quex contracts are currently undergoing security audits and infrastructure security improvements. Before using Quex oracles in production dApps, please reach out to us [on Discord](https://discord.com/invite/NsuE32xHvj). We'll be happy to assist you with the integration and, if needed, set up a dedicated data oracle pools if there is a need. -Please refer to this [short documentation](https://docs.quex.tech/developers/getting_started2) to learn how to integrate your dApp with Quex oracles. +Please refer to this [short documentation](https://docs.quex.tech/consumer/getting_started/) to learn how to integrate your dApp with Quex oracles. ## 🔥 How to use Quex oracles? IMPORTANT: Quex contracts are currently undergoing a security audit, and we are actively working on infrastructure security improvements. Before using Quex oracles in production dApps, please reach out to us [on Discord](https://discord.com/invite/NsuE32xHvj). We’ll be happy to assist you with integration and, if necessary, set up a dedicated pool of data provider nodes. -Please read this [short getting started guide](https://docs.quex.tech/developers/getting_started2) to learn how to integrate your dApp with Quex oracles. +Please read this [short getting started guide](https://docs.quex.tech/consumer/getting_started/) to learn how to integrate your dApp with Quex oracles. ## 👨‍💻 Code examples diff --git a/tooling/oracles/run.mdx b/tooling/oracles/run.mdx index 3190a673f..9427fda0e 100644 --- a/tooling/oracles/run.mdx +++ b/tooling/oracles/run.mdx @@ -69,7 +69,7 @@ The output field of `privateKey` should be stored in a file and its path should WARNING: it is encouraged that before running the oracles in production, they should run for at least a week in one of the Celo Public testnets. -The configuration currently run by cLabs in production can be found [here](https://github.com/celo-org/celo-monorepo/tree/master/packages/helm-charts/oracle) for each stable token. It is strongly advised not to modify the recommended values, especially the exchange sources, unless there is good data to support it. +The configuration previously run by cLabs in production can be found [here](https://github.com/celo-org/helm-charts-deprecated/tree/master/packages/helm-charts/oracle) (in the archived `helm-charts-deprecated` repo) for each stable token. It is strongly advised not to modify the recommended values, especially the exchange sources, unless there is good data to support it. The only variable that is not set in the env file is `PRICE_SOURCES`. This sets what exchanges and prices shall be used to report. It is recommended to store this in a file called `price_sources` and export the content to a new env variable with `cat`. @@ -122,7 +122,7 @@ The last step to run an oracle is to enable their addresses on-chain using the [ ## Using kubernetes -You can reference [Helm Charts](https://helm.sh/docs/topics/charts/) configuration used by cLabs, which can be found in the [celo-monorepo repository](https://github.com/celo-org/celo-monorepo/tree/master/packages/helm-charts/oracle). +You can reference [Helm Charts](https://helm.sh/docs/topics/charts/) configuration used by cLabs, which can be found in the [archived `helm-charts-deprecated` repository](https://github.com/celo-org/helm-charts-deprecated/tree/master/packages/helm-charts/oracle). ## Metrics diff --git a/tooling/oracles/wit-oracle.mdx b/tooling/oracles/wit-oracle.mdx index 3c0636f14..465f139cf 100644 --- a/tooling/oracles/wit-oracle.mdx +++ b/tooling/oracles/wit-oracle.mdx @@ -44,7 +44,7 @@ contract MyCeloContract { /** * IMPORTANT: pass the WitnetPriceRouter address depending on * the network you are using! Please find available addresses here: - * https://docs.witnet.io/smart-contracts/price-feeds/contract-addresses + * https://docs.witnet.io/smart-contracts/witnet-data-feeds/addresses */ constructor(IWitnetPriceRouter _router)) router = _router; diff --git a/tooling/overview/setup/windows.mdx b/tooling/overview/setup/windows.mdx index 5e255c233..45c2a7403 100644 --- a/tooling/overview/setup/windows.mdx +++ b/tooling/overview/setup/windows.mdx @@ -34,7 +34,7 @@ You can view the source documentation for setting up the Linux distro [here](htt ### Set up the Linux Environment -Now that you have Linux installed, let’s install [nvm](https://github.com/nvm-sh/nvm) and [yarn](https://yarnpkg.com/). Nvm \(node version manager\) makes it easy to install and manage different versions of Node.js. The following instructions are from the [celo-monorepo setup documentation for Linux](https://github.com/celo-org/celo-monorepo/blob/master/SETUP.md#linux). +Now that you have Linux installed, let’s install [nvm](https://github.com/nvm-sh/nvm) and [yarn](https://yarnpkg.com/). Nvm \(node version manager\) makes it easy to install and manage different versions of Node.js. The following instructions are from the [celo-monorepo setup documentation](https://github.com/celo-org/celo-monorepo/blob/master/README.md). Run the following commands in the Linux terminal. diff --git a/tooling/wallets/coinbase-wallet.mdx b/tooling/wallets/coinbase-wallet.mdx index daf9b5e44..d7fc1874f 100644 --- a/tooling/wallets/coinbase-wallet.mdx +++ b/tooling/wallets/coinbase-wallet.mdx @@ -5,7 +5,7 @@ og:description: How dApp developers can use Coinbase Wallet to interact with the ## Adding a Celo Network to Coinbase Wallet -To add a Celo Network to your dApp, you can use Coinbase's RPC API's `wallet_addEthereumChain` method. \([See documentation](https://docs.cloud.coinbase.com/wallet-sdk/docs/switching-chains#switching-or-adding-alternative-evm-compatible-chains)\). +To add a Celo Network to your dApp, you can use Coinbase's RPC API's `wallet_addEthereumChain` method. \([See documentation](https://docs.base.org/identity/smart-wallet/technical-reference/sdk/CoinbaseWalletProvider/wallet_addEthereumChain)\). Here is a JavaScript snippet you can use: @@ -46,7 +46,7 @@ const CELO_SEPOLIA_PARAMS = { ## Adding Tokens \(e.g. USDm, EURm\) -To watch an asset on a Celo netowork \(e.g. USDm, EURm\) in your dApp, you can use MetaMask's RPC API's `wallet_watchAsset` method. \([See documentation](https://docs.cloud.coinbase.com/wallet-sdk/docs/tracking-assets#calling-wallet_watchasset)\). +To watch an asset on a Celo netowork \(e.g. USDm, EURm\) in your dApp, you can use Coinbase's RPC API's `wallet_watchAsset` method. \([See documentation](https://docs.base.org/identity/smart-wallet/technical-reference/sdk/CoinbaseWalletProvider/wallet_watchAsset)\). Here is a JavaScript snippet you can use: diff --git a/tooling/wallets/index.mdx b/tooling/wallets/index.mdx index c9f97f0c5..fa62bc185 100644 --- a/tooling/wallets/index.mdx +++ b/tooling/wallets/index.mdx @@ -127,7 +127,7 @@ Wallet as a Service product provides fintechs with secure, scalable wallet infra Wallet and authentication suite for crypto applications. - Homepage: [getpara.com](https://www.getpara.com/) -- [Docs](https://docs.getpara.com/welcome) +- [Docs](https://docs.getpara.com/) - [Source Code](https://github.com/getpara) --- diff --git a/tooling/wallets/metamask/setup.mdx b/tooling/wallets/metamask/setup.mdx index 3802c33bb..e470934dd 100644 --- a/tooling/wallets/metamask/setup.mdx +++ b/tooling/wallets/metamask/setup.mdx @@ -9,7 +9,7 @@ How dApp developers can use MetaMask to interact with the Celo network. ## Adding a Celo Network to MetaMask -To add a Celo Network to your dApp, you can use MetaMask's RPC API's `wallet_addEthereumChain` method. \([See documentation](https://docs.metamask.io/guide/rpc-api.html#wallet-addethereumchain)\). +To add a Celo Network to your dApp, you can use MetaMask's RPC API's `wallet_addEthereumChain` method. \([See documentation](https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/)\). Here is a JavaScript snippet you can use: @@ -50,7 +50,7 @@ const CELO_SEPOLIA_PARAMS = { ## Adding Tokens \(e.g. USDm, EURm\) -To watch an asset on a Celo network \(e.g. USDm, EURm\) in your dApp, you can use MetaMask's RPC API's `wallet_watchAsset` method. \([See documentation](https://docs.metamask.io/guide/rpc-api.html#wallet-watchasset)\). +To watch an asset on a Celo network \(e.g. USDm, EURm\) in your dApp, you can use MetaMask's RPC API's `wallet_watchAsset` method. \([See documentation](https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_watchasset/)\). Here is a JavaScript snippet you can use: From cf8d34b27c22c8f3c8b5f7c6a84761e7871803e1 Mon Sep 17 00:00:00 2001 From: GigaHierz <55887077+GigaHierz@users.noreply.github.com> Date: Fri, 26 Jun 2026 11:22:14 +0100 Subject: [PATCH 2/5] Update contribute-to-celo/release-process/smart-contracts.mdx Co-authored-by: Seola Oh --- contribute-to-celo/release-process/smart-contracts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contribute-to-celo/release-process/smart-contracts.mdx b/contribute-to-celo/release-process/smart-contracts.mdx index 43d1d39a2..5eb0be242 100644 --- a/contribute-to-celo/release-process/smart-contracts.mdx +++ b/contribute-to-celo/release-process/smart-contracts.mdx @@ -68,7 +68,7 @@ Github branches/tags and Github releases are used to coordinate past and ongoing There are several scripts provided (under `packages/protocol` in [celo-org/celo-monorepo](https://github.com/celo-org/celo-monorepo) and via [celocli](/cli/)) for use in the release process and with contract upgrade governance proposals to give participating stakeholders increased confidence. -For these to run, you may need to follow the [setup instructions](https://github.com/celo-org/celo-monorepo/blob/master/README.md). These steps include installing Node and setting `nvm` to use the correct version of Node. Successful `yarn install` and `yarn build` in the protocol package signal a completed setup. +For these to run, you may need to set up the celo-monorepo: follow the [Getting Started](https://github.com/celo-org/celo-monorepo/blob/045aa0061/README.md#-getting-started) steps and install the Node version pinned in [`.nvmrc`](https://github.com/celo-org/celo-monorepo/blob/045aa0061/.nvmrc) (managed with `nvm`). A successful `yarn install` and `yarn build` in the protocol package signal a completed setup. Using these tools, a contract release candidate can be built, deployed, and proposed for upgrade automatically on a specified network. Subsequently, stakeholders can verify the release candidate against a governance upgrade proposal's contents on the network. From 376703f6773fd56f50665ff348f334522a70b58b Mon Sep 17 00:00:00 2001 From: GigaHierz <55887077+GigaHierz@users.noreply.github.com> Date: Fri, 26 Jun 2026 11:35:22 +0100 Subject: [PATCH 3/5] Update tooling/overview/setup/windows.mdx Co-authored-by: Seola Oh --- tooling/overview/setup/windows.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling/overview/setup/windows.mdx b/tooling/overview/setup/windows.mdx index 45c2a7403..3b09b9190 100644 --- a/tooling/overview/setup/windows.mdx +++ b/tooling/overview/setup/windows.mdx @@ -34,7 +34,7 @@ You can view the source documentation for setting up the Linux distro [here](htt ### Set up the Linux Environment -Now that you have Linux installed, let’s install [nvm](https://github.com/nvm-sh/nvm) and [yarn](https://yarnpkg.com/). Nvm \(node version manager\) makes it easy to install and manage different versions of Node.js. The following instructions are from the [celo-monorepo setup documentation](https://github.com/celo-org/celo-monorepo/blob/master/README.md). +Now that you have Linux installed, let’s install [nvm](https://github.com/nvm-sh/nvm) and [yarn](https://yarnpkg.com/). Nvm \(node version manager\) makes it easy to install and manage different versions of Node.js. The following instructions are from the [celo-org/developer-tooling contributing guide](https://github.com/celo-org/developer-tooling/blob/88cbd54f1/CONTRIBUTING.md#installing-nodejs). Run the following commands in the Linux terminal. From bcd4ba6a0558f9b72412fd6492f3c7f0d2569282 Mon Sep 17 00:00:00 2001 From: GigaHierz <55887077+GigaHierz@users.noreply.github.com> Date: Fri, 26 Jun 2026 11:35:52 +0100 Subject: [PATCH 4/5] Update build-on-celo/fee-abstraction/add-fee-currency.mdx Co-authored-by: Seola Oh --- build-on-celo/fee-abstraction/add-fee-currency.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-on-celo/fee-abstraction/add-fee-currency.mdx b/build-on-celo/fee-abstraction/add-fee-currency.mdx index 4a9d3ad38..3b4368283 100644 --- a/build-on-celo/fee-abstraction/add-fee-currency.mdx +++ b/build-on-celo/fee-abstraction/add-fee-currency.mdx @@ -12,7 +12,7 @@ For background on how fee abstraction works, see the [Overview](/build-on-celo/f ## The IFeeCurrency Interface -Fee currencies must implement the [IFeeCurrency](https://github.com/celo-org/fee-currency-example) interface, which extends ERC20 with two additional functions used by the Celo blockchain to debit and credit gas fees. +Fee currencies must implement the [IFeeCurrency](https://github.com/celo-org/fee-currency-example/blob/92e2fcb/src/IFeeCurrency.sol) interface, which extends ERC20 with two additional functions used by the Celo blockchain to debit and credit gas fees. When a [CIP-64](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0064.md) transaction is executed: From 659fa7f7a9936d53d24f1624addd696ef0e4357c Mon Sep 17 00:00:00 2001 From: seolaoh Date: Fri, 26 Jun 2026 18:51:34 +0900 Subject: [PATCH 5/5] docs(odis): refresh ODIS guide to non-deprecated SocialConnect API The ODIS guide documented APIs that were deprecated or removed, so repointing the dead links alone kept removed functionality looking current. - Use OdisUtils.Identifier.getObfuscatedIdentifier. The older getPhoneNumberIdentifier is deprecated and just forwards to it; the response is now IdentifierHashDetails (obfuscatedIdentifier, not phoneHash). - Drop the ReactBlsBlindingClient snippet. Only WasmBlsBlindingClient is shipped, and its constructor throws in React Native and in the browser, so point browser/RN users at a web blinding client example instead. - Remove the Matchmaking section. getContactMatches / matchmaking.ts were removed in the ODIS 2.0.0 refactor (celo-org/celo-monorepo#9693) and social-connect's OdisUtils has no Matchmaking export. - Replace the dead valora wallet example link with the maintained celo-org/SocialConnect-Twitter sample app. All source links are pinned to a commit SHA instead of a branch so they do not rot again. --- tooling/libraries-sdks/contractkit/odis.mdx | 29 +++++++-------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/tooling/libraries-sdks/contractkit/odis.mdx b/tooling/libraries-sdks/contractkit/odis.mdx index 08a061311..8c6458ddc 100644 --- a/tooling/libraries-sdks/contractkit/odis.mdx +++ b/tooling/libraries-sdks/contractkit/odis.mdx @@ -23,10 +23,7 @@ One of Celo's key features is the ability to associate a phone number to a Celo ODIS requests are rate-limited based on transaction history and balance. Ensure the account that is performing the queries has a balance and has performed transactions on the network. If an out of quota error is hit, this indicates that more transactions need to be sent from the querying account. -There are two methods for ODIS: - -1. `getPhoneNumberIdentifier` - Query and compute the identifier for a phone number -2. `getContactMatches` - Find mutual connections between users +The main ODIS method is `getObfuscatedIdentifier`, which queries and computes the on-chain identifier for an off-chain identifier such as a phone number. See [this overview document](/legacy/protocol/identity/odis-use-case-phone-number-privacy) for more details on ODIS. @@ -87,28 +84,22 @@ This call consumes quota. When the user runs out of quota, it's recommended to p ### BLS Blinding Client -It's important for user privacy that the ODIS servers don't have the ability to view the raw phone number. Before making the request, the library first blinds the phone number using a BLS library. This prevents the ODIS from being able to see the phone number but still makes the resulting signature recoverable to the original phone number. The blinding client is written in [Rust](https://github.com/celo-org/celo-threshold-bls-rs) and compiled to Web Assembly, which is not compatible with React native. If you choose not to pass in a `BLSBlindingClient` it will default to the Web Assembly version. You may create a `ReactBlindingClient` by calling the constructor with the ODIS public key: - -```ts -const blsBlindingClient = new ReactBlsBlindingClient(odisPubKey); -``` +It's important for user privacy that the ODIS servers don't have the ability to view the raw phone number. Before making the request, the library first blinds the phone number using a BLS library. This prevents ODIS from seeing the phone number while still making the resulting signature recoverable to the original phone number. The blinding client is written in [Rust](https://github.com/celo-org/celo-threshold-bls-rs) and compiled to WebAssembly. -Or use the `WasmBlsBlindingClient` if your runtime environment supports Web Assembly: +The SDK ships a `WasmBlsBlindingClient`. If you don't pass a blinding client, `getObfuscatedIdentifier` defaults to it: ```ts const blsBlindingClient = new WasmBlsBlindingClient(odisPubKey); ``` -Now you're ready to get the phone number identifier. `OdisUtils.PhoneNumberIdentifier.getPhoneNumberIdentifier` [documentation can be found here](https://github.com/celo-org/social-connect/blob/main/packages/identity/src/odis/phone-number-identifier.ts). +`WasmBlsBlindingClient` only runs in a Node.js environment: its constructor throws in React Native and in the browser. For browser or React Native runtimes, pass your own web blinding client. See the [example web blinding client](https://github.com/celo-org/social-connect/blob/d013ed9/docs/examples/blinding/webBlindingClient.ts) in the social-connect repo. -The response will be [an object](https://github.com/celo-org/social-connect/blob/main/packages/identity/src/odis/phone-number-identifier.ts) with the original phone number, the on-chain identifier (phoneHash), and the phone number's pepper. +Now you're ready to get the on-chain identifier. `OdisUtils.Identifier.getObfuscatedIdentifier` [documentation can be found here](https://github.com/celo-org/social-connect/blob/d013ed9/packages/identity/src/odis/identifier.ts#L105). -You can view an example of this call in [the social-connect identity SDK here](https://github.com/celo-org/social-connect/tree/main/packages/identity/src/odis). +The response will be [an `IdentifierHashDetails` object](https://github.com/celo-org/social-connect/blob/d013ed9/packages/identity/src/odis/identifier.ts#L74) with the plaintext identifier, the on-chain identifier (`obfuscatedIdentifier`), and the pepper. -## Matchmaking - -Instead of querying for all the user's contact's peppers and consuming the user's quota, it's recommended to only query the pepper before it's actually used (ex. just before sending funds). However, sometimes it's helpful to let your users know that they have contacts already using the Celo network. To do this, you can make use of the matchmaking interface. Given two phone numbers, it will let you know whether the other party has also registered on the Celo network with this identifier. `OdisUtils.Matchmaking.getContactMatches` [documentation can be found here](https://github.com/celo-org/social-connect/tree/main/packages/identity/src/odis). - -The response will be a subset of the input `e164NumberContacts` that are matched by the matchmaking service. + +The older `OdisUtils.PhoneNumberIdentifier.getPhoneNumberIdentifier` (which returns a `phoneHash`) is deprecated in favor of `getObfuscatedIdentifier`. + -You can view an example of this call in [the social-connect identity SDK here](https://github.com/celo-org/social-connect/tree/main/packages/identity/src/odis). \ No newline at end of file +You can view an example of this call in the [SocialConnect Twitter sample app](https://github.com/celo-org/SocialConnect-Twitter/blob/f5d398f/packages/react-app/pages/index.tsx). \ No newline at end of file