From f06386522942be60d54bba0db3f43476f1238545 Mon Sep 17 00:00:00 2001 From: GigaHierz Date: Thu, 22 Jan 2026 19:13:50 +0000 Subject: [PATCH 1/5] - move netowrk overview to build on celo section - remove ai tutorials - add goldrush to indexers - update exchanges page for clearer separation - add 1inch wallet to wallet page --- .../build-with-goat/mint-nft-agent.mdx | 284 ---------------- .../build-with-goat/send-token-agent.mdx | 235 ------------- .../build-with-goat/token-swap-agent.mdx | 243 -------------- .../build-with-ai/examples/ai-memecoins.mdx | 146 -------- .../examples/build-with-thirdweb-ai.mdx | 86 ----- .../examples/building_with_goat.mdx | 312 ------------------ .../network-overview.mdx | 0 docs.json | 58 ++-- home/celo.mdx | 2 +- home/exchanges.mdx | 13 +- home/wallets.mdx | 29 ++ tooling/indexers/goldrush.mdx | 18 + tooling/indexers/overview.mdx | 2 + tooling/wallets/staking.mdx | 4 - 14 files changed, 96 insertions(+), 1336 deletions(-) delete mode 100644 build-on-celo/build-with-ai/build-with-goat/mint-nft-agent.mdx delete mode 100644 build-on-celo/build-with-ai/build-with-goat/send-token-agent.mdx delete mode 100644 build-on-celo/build-with-ai/build-with-goat/token-swap-agent.mdx delete mode 100644 build-on-celo/build-with-ai/examples/ai-memecoins.mdx delete mode 100644 build-on-celo/build-with-ai/examples/build-with-thirdweb-ai.mdx delete mode 100644 build-on-celo/build-with-ai/examples/building_with_goat.mdx rename {tooling/overview => build-on-celo}/network-overview.mdx (100%) create mode 100644 tooling/indexers/goldrush.mdx delete mode 100644 tooling/wallets/staking.mdx diff --git a/build-on-celo/build-with-ai/build-with-goat/mint-nft-agent.mdx b/build-on-celo/build-with-ai/build-with-goat/mint-nft-agent.mdx deleted file mode 100644 index bb6943d66..000000000 --- a/build-on-celo/build-with-ai/build-with-goat/mint-nft-agent.mdx +++ /dev/null @@ -1,284 +0,0 @@ ---- -title: Build an AI-Powered NFT Minting Agent on Celo -sidebarTitle: "Build an NFT Minting Agent" ---- - -# Tutorial: Build an AI-Powered NFT Minting Agent on Celo - -This tutorial guides you through building an AI-powered agent capable of minting NFTs on the Celo blockchain. We will adapt the structure from the previous [token swapping tutorial](/build/build-with-ai/build-with-goat/token-swap-agent) to create an agent that can mint NFTs based on natural language prompts. - -This approach provides direct control over the minting process and utilizes core blockchain interaction libraries. We will use `@ai-sdk/openai` for AI capabilities, `viem` for direct blockchain interaction, and `@goat-sdk` for agent framework components. - -### Understanding the Code: AI Agent for NFT Minting (Direct Contract Interaction) - -Let's examine the code structure, building upon the token swapping agent example and focusing on NFT minting. - -#### 1. Importing Libraries: - -```javascript -import readline from "node:readline"; - -import { openai } from "@ai-sdk/openai"; -import { generateText } from "ai"; - -import { http } from "viem"; -import { createWalletClient } from "viem"; -import { privateKeyToAccount } from "viem/accounts"; -import { celo } from "viem/chains"; // Using Celo chain - -import { getOnChainTools } from "@goat-sdk/adapter-vercel-ai"; - -import { viem } from "@goat-sdk/wallet-viem"; - -require("dotenv").config(); -``` - -- **Libraries**: We use the core libraries: readline, @ai-sdk/openai, ai, viem, and @goat-sdk. -- **Chain Import**: We directly import celo from viem/chains to configure for the Celo network. -- **Focused Approach**: We are focusing solely on NFT minting in this version with a generic mintNFT tool. - -#### 2. Wallet Client Creation: - -```javascript -// 1. Create a wallet client -const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`); - -const walletClient = createWalletClient({ - account: account, - transport: http(process.env.RPC_PROVIDER_URL), - chain: celo, // Using Celo chain -}); -``` - -- **Wallet Client**: This section sets up a viem wallet client connected to the Celo network. - -#### 3. Getting On-Chain Tools (NFT Minting Focus): - -```javascript -// 2. Get your onchain tools for your wallet -const tools = await getOnChainTools({ - wallet: viem(walletClient), - plugins: [ - // We define a custom mintNFT tool here - { - name: "mintNFT", - description: - "Use this tool to mint an NFT to a specified address. Input should be the recipient address and (optionally) NFT metadata.", - async execute({ recipientAddress, metadata }) { - // Implementation for minting NFT will be added here using viem - // This is a placeholder - actual minting logic needs to be implemented - console.log( - `Minting NFT to address: ${recipientAddress} with metadata:`, - metadata - ); - return "NFT minting initiated (placeholder - not actually minted). Implement actual minting logic in the execute function."; - }, - }, - ], -}); -``` - -- **On-Chain Tools for NFT Minting**: We define a custom mintNFT tool directly within the plugins array. - - **name: "mintNFT"**: The name of the tool, which the AI agent will use to identify and call it. - - **description**: A crucial description that tells the AI agent when and how to use this tool. It specifies that the tool is for minting NFTs and expects recipientAddress and optional metadata as input. - - **execute(recipientAddress, metadata)**: This is the function that will be executed when the AI agent decides to use the mintNFT tool. - - **Placeholder Implementation**: Currently, the execute function is a placeholder. It logs a message indicating that NFT minting is initiated but does not contain actual minting logic. - - **Implementation using viem** (To be added - see "Implementing the mintNFT Tool" section below): The actual implementation of NFT minting within this execute function will involve using viem to interact with an NFT smart contract on Celo. This will include: - - Connecting to the NFT Contract: Using viem to get an instance of your deployed NFT contract using its address and ABI. - - Calling the Mint Function: Using viem to call the minting function of your NFT contract. This will likely involve sending a transaction from your walletClient and paying gas fees in CELO. - - Handling NFT Metadata: If your NFT contract supports metadata, you'll need to incorporate the metadata input into the minting transaction. - -#### 4. Command Line Interface and AI Interaction Loop: - -```javascript -// 3. Create a readline interface to interact with the agent -const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, -}); - -while (true) { - const prompt = - (await new Promise()) < - string > - ((resolve) => { - rl.question('Enter your prompt (or "exit" to quit): ', resolve); - }); - - if (prompt === "exit") { - rl.close(); - break; - } - - console.log("\n-------------------\n"); - console.log("TOOLS CALLED"); - console.log("\n-------------------\n"); - try { - const result = await generateText({ - model: openai("gpt-4o-mini"), - tools: tools, - maxSteps: 10, // Maximum number of tool invocations per request - prompt: prompt, - onStepFinish: (event) => { - console.log(event.toolResults); - }, - }); - - console.log("\n-------------------\n"); - console.log("RESPONSE"); - console.log("\n-------------------\n"); - console.log(result.text); - } catch (error) { - console.error(error); - } - console.log("\n-------------------\n"); -} -``` - -- **Interactive Loop**: This provides the command-line interface and AI interaction using generateText. - -### Setup Guide for Celo NFT Minting Agent - -Follow these steps to set up the AI-powered NFT minting agent on Celo: - -#### 1. Clone Repository and Navigate to Example Directory: - -Follow steps 1-5 from the [previous tutorial](/build/build-with-ai/build-with-goat/token-swap-agent) to clone the GOAT repository, navigate to the typescript directory, install dependencies, build the project, and go to the example directory: examples/by-use-case/evm-mint-nft. - -#### 2. Configure Environment Variables: - -```bash -cp .env.template .env -``` - -Copy .env.template to .env and populate the following environment variables: - -- **OPENAI_API_KEY**: Your OpenAI API key from OpenAI. -- **WALLET_PRIVATE_KEY**: Your private key for the wallet that will mint NFTs on Celo. Security Best Practices: Use a test wallet and handle private keys with extreme caution. -- **RPC_PROVIDER_URL**: The RPC URL for the Celo network (e.g., Celo Sepolia Testnet: https://forno.celo-sepolia.celo-testnet.org/). See previous articles for more Celo RPC options. - -Example .env file (for Celo Sepolia Testnet): - -``` -OPENAI_API_KEY=YOUR_OPENAI_API_KEY -WALLET_PRIVATE_KEY=YOUR_PRIVATE_KEY -RPC_PROVIDER_URL=https://forno.celo-sepolia.celo-testnet.org/ -``` - -#### 3. Adapt Code for Celo and NFT Minting: - -- **Chain Configuration**: In index.ts, ensure you have celo chain imported and configured in createWalletClient as shown in the code examples above. - -- **Implement the mintNFT Tool's execute Function**: This is the crucial step to enable actual NFT minting. You need to replace the placeholder implementation in the mintNFT tool's execute function with the actual logic to interact with your NFT smart contract on Celo using viem. - -**Implementing the mintNFT Tool's execute Function (Conceptual Steps):** - -```javascript -// ... inside the plugins array in getOnChainTools: -{ - name: "mintNFT", - description: "...", - async execute({ recipientAddress, metadata }) { - try { - // 1. NFT Contract Address and ABI: - const nftContractAddress = "YOUR_NFT_CONTRACT_ADDRESS"; // Replace with your NFT contract address on Celo - const nftContractAbi = [...]; // Replace with your NFT contract ABI (interface) - - // 2. Get Contract Instance using viem: - const nftContract = getContract({ - address: nftContractAddress, - abi: nftContractAbi, - publicClient: walletClient, // or use publicClient if you only need to read - }); - - // 3. Call the mint function (Adapt to your contract's mint function name and parameters): - const mintTxHash = await walletClient.writeContract({ - address: nftContractAddress, - abi: nftContractAbi, - functionName: 'mint', // Replace with your contract's mint function name - account: walletClient.account, - args: [recipientAddress, metadata], // Adapt arguments based on your contract's mint function parameters - gas: 2000000, // Adjust gas limit as needed - }); - - console.log("Mint Transaction Hash:", mintTxHash); - return `NFT mint transaction initiated. Transaction hash: ${mintTxHash}. (Remember to check transaction status on a Celo block explorer.)`; - - - } catch (error) { - console.error("Error minting NFT:", error); - return `NFT minting failed. Error: ${error.message}`; - } - }, -} -``` - -**Explanation of mintNFT Tool Implementation:** - -- **NFT Contract Address and ABI**: - - - **nftContractAddress**: You MUST replace "YOUR_NFT_CONTRACT_ADDRESS" with the actual address of your deployed NFT smart contract on the Celo network (Celo Sepolia testnet or Mainnet). - - **nftContractAbi**: You MUST replace [...] with the ABI (Application Binary Interface) of your NFT smart contract. The ABI defines how to interact with your contract's functions. You can usually get the ABI from your smart contract compilation output (e.g., from Hardhat or Truffle). - -- **getContract**: We use viem's getContract function to create a contract instance, allowing us to interact with your deployed NFT contract. We provide the address, abi, and publicClient (or walletClient if you need to send transactions). - -- **walletClient.writeContract**: This is the core viem function to send a transaction to your smart contract to call the minting function. - - - **address**: NFT contract address. - - **abi**: NFT contract ABI. - - **functionName**: 'mint': Replace 'mint' with the actual name of your minting function in your NFT contract. - - **account**: walletClient.account: Specifies the account (your wallet) that will send the transaction. - - **args**: [recipientAddress, metadata]: Adapt args to match the parameters of your NFT contract's mint function. The example assumes your mint function takes a recipientAddress and metadata. You might need to adjust this based on your contract. Metadata handling will also depend on how your NFT contract stores or handles metadata (e.g., you might pass a URI, or metadata might be handled differently). - - **gas**: 2000000: Sets a gas limit for the transaction. Adjust this value as needed based on your contract's gas requirements. You can estimate gas using viem functions or start with a generous limit and adjust down if needed. - -- **Transaction Hash and Error Handling**: The code logs the transaction hash and returns a message. It also includes basic error handling. - -**Important Considerations for mintNFT Implementation:** - -- **NFT Contract Deployment**: You need to have a deployed NFT smart contract on Celo (Celo Sepolia testnet or Mainnet) to use this agent. You'll need the contract address and ABI. -- **NFT Contract mint Function**: Understand the exact function name, parameters, and any access control or requirements of your NFT contract's minting function. -- **Metadata Handling**: Determine how your NFT contract handles metadata. You might need to adjust the metadata parameter and how you pass it to the mint function. -- **Gas Fees**: Minting transactions require CELO to pay for gas fees. Ensure your wallet has sufficient CELO. -- **Error Handling**: Implement more robust error handling in the execute function to catch potential issues during contract interaction. -- **Security**: Be extremely cautious when dealing with smart contracts and blockchain transactions, especially in production. Thoroughly test your contract and agent in a test environment before deploying to mainnet. - -#### 4. Usage Instructions: - -**Run the Interactive CLI:** - -From the examples/by-use-case/evm-mint-nft directory, run: - -```bash -pnpm ts-node index.ts -``` - -**Chat with the Agent for NFT Minting:** - -Interact with the agent using natural language prompts to mint NFTs. Here are example prompts: - -- "Mint an NFT for address 0x1234...5678" - Instruct the agent to mint an NFT to the specified recipient address. (Replace 0x1234...5678 with an actual Celo address). -- "Mint an NFT with metadata `{'name': 'My NFT', 'description': 'A test NFT'}`" - Instruct the agent to mint an NFT with specific metadata. (The exact format of metadata and how it's handled will depend on your mintNFT tool implementation and NFT contract). - -**Example Interaction:** - -``` -Enter your prompt (or "exit" to quit): Mint an NFT for address 0xRecipientAddressHere -------------------- -TOOLS CALLED -------------------- -// Output of tool calls will be logged here (from onStepFinish callback) -------------------- -RESPONSE -------------------- -// AI agent's response based on the prompt and tool execution -------------------- -Enter your prompt (or "exit" to quit): exit -``` - -### Conclusion - -This tutorial has provided a guide to building an AI-powered NFT minting agent on Celo. By directly interacting with an NFT smart contract using viem, you gain more control over the minting process. - -Remember that the provided mintNFT tool's execute function is a placeholder. You MUST implement the actual NFT minting logic using viem and your deployed NFT smart contract on Celo as described in the "Implementing the mintNFT Tool" section. - -Thoroughly test your agent and smart contract in a test environment before deploying to the Celo mainnet. Explore the viem documentation and experiment with different prompts and metadata handling to create a powerful and user-friendly AI-driven NFT minting experience on Celo! diff --git a/build-on-celo/build-with-ai/build-with-goat/send-token-agent.mdx b/build-on-celo/build-with-ai/build-with-goat/send-token-agent.mdx deleted file mode 100644 index 561da145b..000000000 --- a/build-on-celo/build-with-ai/build-with-goat/send-token-agent.mdx +++ /dev/null @@ -1,235 +0,0 @@ ---- -title: Build an AI Agent to Send Tokens on Celo -sidebarTitle: "Build a Token Sending Agent" ---- - -# Tutorial: Build an AI Agent to Send Tokens on Celo - -This tutorial will guide you through creating an AI-powered agent capable of sending tokens on the Celo blockchain. We will adapt the provided code, which demonstrates sending tokens on the Sepolia test network, to function seamlessly on Celo. This will allow you to build an interactive agent that can send both native CELO and ERC20 tokens based on natural language prompts. - -We will utilize `@ai-sdk/openai` for AI capabilities, `viem` for blockchain interaction, and `@goat-sdk` to simplify the development of our on-chain agent. We will be using `@goat-sdk/wallet-evm` for sending native tokens and `@goat-sdk/plugin-erc20` for handling ERC20 tokens. - -### Understanding the Code: AI Agent for Sending Tokens - -Let's dissect the provided code, which forms the foundation for our token sending agent. - -**1. Importing Libraries:** - -```javascript -import readline from "node:readline"; - -import { openai } from "@ai-sdk/openai"; -import { generateText } from "ai"; - -import { http } from "viem"; -import { createWalletClient } from "viem"; -import { privateKeyToAccount } from "viem/accounts"; -import { baseSepolia } from "viem/chains"; // We will change 'baseSepolia' to 'celo' - -import { getOnChainTools } from "@goat-sdk/adapter-vercel-ai"; -import { PEPE, USDC, erc20 } from "@goat-sdk/plugin-erc20"; - -import { sendETH } from "@goat-sdk/wallet-evm"; // We will adapt sendETH for CELO -import { viem } from "@goat-sdk/wallet-viem"; - -require("dotenv").config(); -``` - -- **Libraries:** The imports are similar to previous examples, including `readline`, `@ai-sdk/openai`, `ai`, `viem`, and `@goat-sdk`. -- **Chain Import:** `baseSepolia` is imported from `viem/chains`, which we will replace with `celoSepolia` to target the Celo network. -- **Token Imports:** `PEPE` and `USDC` are imported from `@goat-sdk/plugin-erc20`. We will need to ensure these or similar tokens are relevant and available on Celo, or configure for other ERC20 tokens on Celo. -- **`sendETH` Import:** `sendETH` from `@goat-sdk/wallet-evm` is imported to enable sending native tokens. We will adapt this to send CELO. - -**2. Wallet Client Creation:** - -```javascript -// 1. Create a wallet client -const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`); - -const walletClient = createWalletClient({ -    account: account, -    transport: http(process.env.RPC_PROVIDER_URL), -    chain: baseSepolia, // We will change 'baseSepolia' to 'celoSepolia' -}); -``` - -- **Wallet Client Setup:** This section sets up a `viem` wallet client, retrieving the private key from the `WALLET_PRIVATE_KEY` environment variable and connecting to the blockchain using the `RPC_PROVIDER_URL`. We will modify `chain` to `celoSepolia` for Celo. - -**3. Getting On-Chain Tools (Token Sending Focus):** - -```javascript -// 2. Get your onchain tools for your wallet -const tools = await getOnChainTools({ - wallet: viem(walletClient), - plugins: [ - sendETH(), // Enable ETH transfers - Adapt for CELO - erc20({ tokens: [USDC, PEPE] }), // Enable ERC20 token operations - Review for Celo tokens - ], -}); -``` - -- **On-Chain Tools for Token Sending:** This section configures the tools for sending tokens: - - `sendETH()`: Enables sending native ETH on Base Sepolia. We will adapt this to send native CELO on Celo Sepolia. - - `erc20({ tokens: [USDC, PEPE] })`: Enables ERC20 token operations for USDC and PEPE. We will need to review and potentially replace these tokens with relevant ERC20 tokens on Celo Sepolia. - -**4. Command Line Interface and AI Interaction Loop:** - -```javascript -// 3. Create a readline interface to interact with the agent -    const rl = readline.createInterface({ -        input: process.stdin, -        output: process.stdout, -    }); - -    while (true) { -        const prompt = await new Promise((resolve) => { -            rl.question('Enter your prompt (or "exit" to quit): ', resolve); -        }); - -        if (prompt === "exit") { -            rl.close(); -            break; -        } - -        console.log("\n-------------------\n"); -        console.log("TOOLS CALLED"); -        console.log("\n-------------------\n"); -        try { -            const result = await generateText({ -                model: openai("gpt-4o-mini"), -                tools: tools, -                maxSteps: 10, // Maximum number of tool invocations per request -                prompt: prompt, -                onStepFinish: (event) => { -                    console.log(event.toolResults); -                }, -            }); - -            console.log("\n-------------------\n"); -            console.log("RESPONSE"); -            console.log("\n-------------------\n"); -            console.log(result.text); -        } catch (error) { -            console.error(error); -        } -        console.log("\n-------------------\n"); -    } -})(); -``` - -- **Interactive Loop:** This section sets up the command-line interface and the AI interaction loop, identical to previous examples, using `generateText` to process prompts and interact with the configured tools. - -### Setup Guide for Celo Sepolia Token Sending Agent - -Follow these steps to set up the AI-powered token sending agent on Celo Sepolia: - -**1. Clone Repository and Navigate to Example Directory:** - -Follow steps 1-5 from the [NFT minting tutorial](/build/build-with-ai/build-with-goat/mint-nft-agent) (or previous tutorials) to clone the GOAT repository, navigate to the `typescript` directory, install dependencies, build the project, and go to the example directory: `examples/by-use-case/evm-mint-nft`. You can reuse this directory or create a new one if you prefer. - -**2. Configure Environment Variables:** - -```bash -cp .env.template .env -``` - -Copy `.env.template` to `.env` and populate the following environment variables in the `.env` file: - -- **`OPENAI_API_KEY`**: Your OpenAI API key from [OpenAI](https://platform.openai.com/). -- **`WALLET_PRIVATE_KEY`**: Your private key for the wallet that will send tokens on Celo. **Security Best Practices:** Use a test wallet and handle private keys with extreme caution. -- **`RPC_PROVIDER_URL`**: The RPC URL for the Celo Sepolia network. Use a Celo Sepolia RPC URL for testing (e.g., `https://forno.celo-sepolia.celo-testnet.org/`). Refer to previous articles for more Celo Sepolia RPC options. - -**Example `.env` file (for Celo Sepolia Testnet):** - -```text -OPENAI_API_KEY=YOUR_OPENAI_API_KEY -WALLET_PRIVATE_KEY=YOUR_PRIVATE_KEY -RPC_PROVIDER_URL=https://forno.celo-sepolia.celo-testnet.org/ -``` - -**Note:** We only need `OPENAI_API_KEY`, `WALLET_PRIVATE_KEY`, and `RPC_PROVIDER_URL` for this token sending agent. - -**3. Adapt Code for Celo Token Sending:** - -1. **Chain Configuration:** In `index.ts`, replace `baseSepolia` with `celoSepolia` from `viem/chains`: - - ```javascript - import { celoSepolia } from "viem/chains"; // Import Celo Sepolia chain - - // ... - - const walletClient = createWalletClient({ - account: account, - transport: http(process.env.RPC_PROVIDER_URL), - chain: celoSepolia, // Use Celo Sepolia chain configuration for testnet - }); - ``` - -2. **Adapt `sendETH()` to `sendCELO()`:** The `@goat-sdk/wallet-evm` might have a function specifically for sending CELO. Check the `@goat-sdk` documentation for `sendCELO()`. If it exists, replace `sendETH()` with `sendCELO()` in the `plugins` array: - - ```javascript - import { cUSD, CELO } from "@goat-sdk/plugin-erc20"; // Import Celo tokens - - // ... - - plugins: [ - sendETH(), // sendETH() is chain-aware and works with CELO on Celo network - erc20({ tokens: [cUSD, CELO] }), // Use Celo-specific tokens: cUSD, CELO - // ... - ]; - ``` - - If `sendCELO()` is not directly available in `@goat-sdk/wallet-evm`, it's likely that `sendETH()` is designed to be chain-aware and will send the native token of the configured chain (`celo` in this case). In that case, you might not need to change `sendETH()`. **Test sending CELO after setup to confirm if `sendETH()` works for CELO or if you need to find an alternative.** If `sendETH()` does not work for CELO, you might need to create a custom tool using `viem`'s `sendTransaction` function to send CELO directly. - -3. **Use Celo-Specific Tokens:** Import and use Celo native tokens from `@goat-sdk/plugin-erc20`: - - ```javascript - import { cUSD, CELO } from "@goat-sdk/plugin-erc20"; - - // In plugins array: - erc20({ tokens: [cUSD, CELO] }), // Use Celo-specific tokens - ``` - - The `@goat-sdk/plugin-erc20` package includes pre-configured Celo tokens. For additional tokens, you can define custom token configurations or remove the `tokens` array to allow the agent to handle any ERC20 token specified by symbol or address in the prompt. - -**4. Usage Instructions:** - -1. **Run the Interactive CLI:** - - From the `examples/by-use-case/evm-mint-nft` directory (or your chosen directory), run: - - ```bash - pnpm ts-node index.ts - ``` - -2. **Chat with the Agent for Token Sending:** - - Interact with the agent using natural language prompts to send tokens. Here are example prompts: - - - **Send CELO:** - - `"Send 1 CELO to 0xRecipientAddressHere"` (Replace `0xRecipientAddressHere` with a Celo address) - - `"Transfer 0.5 CELO to my friend at 0xFriendAddress"` - - **Send ERC20 Tokens (e.g., cUSD, cEUR, USDT - adjust based on your configuration):** - - `"Send 10 cUSD to 0xRecipientAddress"` (Assuming `cUSD` is configured) - - `"Transfer 5 EURC to address 0xAnotherAddress"` (Assuming `cEUR` is configured) - - `"Send 2 USDT to 0xYetAnotherAddress"` (Assuming `USDT` is configured) - -**Example Interaction:** - -``` -Enter your prompt (or "exit" to quit): Send 0.1 CELO to 0xRecipientAddressHere -------------------- -TOOLS CALLED -------------------- -// Output of tool calls will be logged here (from onStepFinish callback) - will show details of the sendETH/sendCELO tool execution. -------------------- -RESPONSE -------------------- -// AI agent's response based on the prompt and tool execution - will confirm the token sending action or indicate success/failure. -------------------- -Enter your prompt (or "exit" to quit): exit -``` - -### Conclusion - -This tutorial has guided you through building an AI-powered agent capable of sending tokens on the Celo Sepolia blockchain. By adapting the provided code, configuring for Celo Sepolia, and utilizing the `@goat-sdk/wallet-evm` and `@goat-sdk/plugin-erc20` tools, you can create an interactive agent that can understand natural language prompts to send both native CELO and ERC20 tokens. Remember to test thoroughly on the Celo Sepolia Testnet before using on Mainnet and always handle private keys securely. Explore the `@goat-sdk` documentation to understand more advanced configurations and error handling for your token sending agent on Celo! diff --git a/build-on-celo/build-with-ai/build-with-goat/token-swap-agent.mdx b/build-on-celo/build-with-ai/build-with-goat/token-swap-agent.mdx deleted file mode 100644 index 4de90e1af..000000000 --- a/build-on-celo/build-with-ai/build-with-goat/token-swap-agent.mdx +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: Build an AI-Powered Token Swap Agent on Celo Using GOAT SDK -sidebarTitle: "Build a TokenSwap Agent" ---- - -This article provides a detailed guide on how to build an AI-powered token swap agent on the Celo blockchain using GOAT SDK. You'll learn how to create an interactive agent capable of performing token swaps through natural language prompts. - -## Understanding GOAT SDK for Token Swapping - -GOAT SDK provides tools to simplify on-chain interactions for AI agents. This example demonstrates how to use GOAT to swap ERC-20 tokens on Celo. You can use this approach with any EVM-compatible blockchain by simply changing the chain configuration and RPC URL. - -Let's examine the code step-by-step: - -### 1. Importing Libraries - -```javascript -import readline from "node:readline"; -import { openai } from "@ai-sdk/openai"; -import { generateText } from "ai"; -import { http } from "viem"; -import { createWalletClient } from "viem"; -import { privateKeyToAccount } from "viem/accounts"; -import { celo } from "viem/chains"; // Using Celo chain -import { getOnChainTools } from "@goat-sdk/adapter-vercel-ai"; -import { cUSD, CELO, erc20 } from "@goat-sdk/plugin-erc20"; // Celo tokens -import { uniswap } from "@goat-sdk/plugin-uniswap"; -import { sendETH } from "@goat-sdk/wallet-evm"; -import { viem } from "@goat-sdk/wallet-viem"; -require("dotenv").config(); -``` - -#### Library Descriptions: - -- **readline**: This Node.js module is used to create an interactive command-line interface, allowing the user to input prompts and interact with the agent. -- **@ai-sdk/openai and ai**: These libraries facilitate the integration with OpenAI's models (like gpt-4o-mini) to generate text responses and process natural language prompts. -- **viem**: A popular Javascript library for interacting with Ethereum-compatible blockchains, including Celo. -- **http, createWalletClient, privateKeyToAccount**: These are viem modules used to create a wallet client for blockchain interactions. -- **celo**: This imports the chain configuration for the Celo blockchain. -- **@goat-sdk**: This SDK provides tools to simplify on-chain interactions for AI agents. -- **getOnChainTools**: A function to bundle various on-chain tools for the agent. -- **@goat-sdk/plugin-erc20, erc20, cUSD, CELO**: Modules for handling ERC20 tokens on Celo. -- **@goat-sdk/plugin-uniswap, uniswap**: Modules for interacting with decentralized exchanges. -- **@goat-sdk/wallet-evm, viem**: Wallet adapters to connect viem wallet client with @goat-sdk tools. -- **dotenv**: This library loads environment variables from a .env file. - -### 2. Wallet Client Creation - -```javascript -// 1. Create a wallet client -const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`); - -const walletClient = createWalletClient({ - account: account, - transport: http(process.env.RPC_PROVIDER_URL), - chain: celo, // Using Celo chain configuration -}); -``` - -This section creates a viem wallet client: - -- It retrieves the private key from the `WALLET_PRIVATE_KEY` environment variable. -- `privateKeyToAccount` converts the private key into a viem account object. -- `createWalletClient` initializes a wallet client connected to the Celo blockchain using the RPC URL from the `RPC_PROVIDER_URL` environment variable. - -### 3. Setting Up On-Chain Tools for Token Swapping - -```javascript -// 2. Get your onchain tools for your wallet -const tools = await getOnChainTools({ - wallet: viem(walletClient), - plugins: [ - sendETH(), // Enable CELO transfers (native token) - erc20({ tokens: [cUSD, CELO] }), // Enable Celo token operations - uniswap({ - baseUrl: process.env.UNISWAP_BASE_URL as string, - apiKey: process.env.UNISWAP_API_KEY as string, - }), - ], -}); -``` - -`getOnChainTools` is used to assemble the tools the AI agent can use for token swapping: - -- `wallet: viem(walletClient)`: Provides the viem wallet client to the toolset. -- `plugins`: An array of plugins that extend the agent's capabilities: - - `sendETH()`: Enables sending native CELO (although named ETH in the function, it handles the native token). - - `erc20({ tokens: [cUSD, CELO] })`: Enables ERC20 token operations for Celo-specific tokens. - - `uniswap(...)`: Enables interaction with Uniswap, configured with a baseUrl and apiKey from environment variables. - -### 4. Command Line Interface and AI Interaction Loop - -```javascript -// 3. Create a readline interface to interact with the agent -const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, -}); - -while (true) { - const prompt = - (await new Promise()) < - string > - ((resolve) => { - rl.question('Enter your prompt (or "exit" to quit): ', resolve); - }); - - if (prompt === "exit") { - rl.close(); - break; - } - - console.log("\n-------------------\n"); - console.log("TOOLS CALLED"); - console.log("\n-------------------\n"); - try { - const result = await generateText({ - model: openai("gpt-4o-mini"), - tools: tools, - maxSteps: 10, // Maximum number of tool invocations per request - prompt: prompt, - onStepFinish: (event) => { - console.log(event.toolResults); - }, - }); - - console.log("\n-------------------\n"); - console.log("RESPONSE"); - console.log("\n-------------------\n"); - console.log(result.text); - } catch (error) { - console.error(error); - } - console.log("\n-------------------\n"); -} -``` - -This sets up the interactive loop where users can input natural language prompts to swap tokens: - -- The agent accepts commands like "Swap cUSD for CELO" or "Check my token balance" -- `generateText()` processes these commands through the AI model (gpt-4o-mini) -- The AI determines which tools to call to fulfill the request -- Results are returned in natural language - -## Setting Up Your Celo Token Swap Agent - -Follow these steps to set up your own token swap agent on Celo: - -### 1. Clone the Repository - -```bash -git clone https://github.com/goat-sdk/goat.git && cd goat -``` - -### 2. Install and Build Dependencies - -```bash -cd typescript -pnpm install -pnpm build -``` - -### 3. Navigate to the Example Directory - -```bash -cd examples/by-use-case/evm-swap-tokens -``` - -### 4. Configure Environment Variables - -Create a `.env` file with your credentials: - -```bash -cp .env.template .env -``` - -Edit the `.env` file to include: - -```plaintext -OPENAI_API_KEY=your_openai_api_key -WALLET_PRIVATE_KEY=your_wallet_private_key -RPC_PROVIDER_URL=https://forno.celo-sepolia.celo-testnet.org/ # Celo Sepolia Testnet (recommended for testing) -# For mainnet: https://forno.celo.org -UNISWAP_BASE_URL=provided_value # Will be populated from template -UNISWAP_API_KEY=provided_value # Will be populated from template -``` - -**Security Best Practices:** - -- Use a dedicated test wallet with minimal funds for development -- Never commit your `.env` file to version control -- Use environment variables for all sensitive data -- For production, use a dedicated RPC provider (Ankr, QuickNode, etc.) instead of public RPCs - -For production use, you can get your own Uniswap API key from [Uniswap Hub](https://www.uniswap.org/developers). - -### 5. Run the Interactive CLI - -```bash -pnpm ts-node index.ts -``` - -## Using the Token Swap Agent on Celo - -Once your agent is running, you can interact with it using natural language. Here are some examples specifically for Celo tokens: - -``` -Swap cUSD for CELO -Swap CELO for cUSD -Check my token balance -What's the current exchange rate between cUSD and CELO? -``` - -The agent will interpret your commands, call the appropriate tools, and execute the token swaps on your behalf. - -## Production Considerations for Token Swap Agents - -When deploying token swap agents in production environments, consider using smart wallets to: - -### Enhance Security with Programmable Permissions - -- Limit fund amounts for transactions -- Restrict contract interactions to trusted protocols -- Define required signatures for high-value transactions - -### Maintain Regulatory Compliance with Non-Custodial Wallets - -- Ensure agent platforms never have access to users' wallets -- Avoid money transmitter license requirements -- Improve user trust and control - -### Celo-Specific Considerations - -When implementing token swap functionality on Celo, keep these additional considerations in mind: - -- **Gas Fees**: Celo uses CELO as gas for transactions, so ensure your wallet has sufficient CELO. -- **Liquidity Sources**: Consider using Celo-specific DEXes like Ubeswap or Uniswap. -- **Stable Tokens**: Celo offers several stable tokens (cUSD, cEUR, cREAL) that might be useful for your swap use cases. - -## Conclusion - -By following this guide, you've learned how to create an AI-powered token swap agent on Celo using GOAT SDK. This agent can understand natural language commands and execute token swaps on your behalf, providing a seamless bridge between AI and blockchain functionality. - -As Celo continues to grow as an ecosystem, these types of AI agents can significantly improve user experience by abstracting away the complexities of interacting with DeFi protocols and token swaps, making blockchain technology more accessible to everyone. diff --git a/build-on-celo/build-with-ai/examples/ai-memecoins.mdx b/build-on-celo/build-with-ai/examples/ai-memecoins.mdx deleted file mode 100644 index 555a758cd..000000000 --- a/build-on-celo/build-with-ai/examples/ai-memecoins.mdx +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: Launching Tokens on Celo using Gaia AI Agent Framework -sidebarTitle: "Launch AI Agent Memecoins" ---- - -## Prerequisites - -- Node (v20 or higher) -- A wallet with some test tokens (more on this later) - -## Create a Wallet and get your Gaia API Keys - -1. Visit the [Gaia Homepage](https://www.gaianet.ai/) and click **`Launch App`**. -2. Click **`Connect`**, then install the [MetaMask](https://metamask.io/download/) extension. -3. Once installed, create your wallet and securely store your recovery keys. -4. Finally, navigate to [Gaia API Keys](https://www.gaianet.ai/setting/gaia-api-keys) to generate your API keys. - -## Create you Celo Private Key - -1. Install the [Celo CLI](npm install -g @celo/celocli) -2. Make sure you're working on Celo Sepolia testnet - -``` -celocli config:set --rpc-url https://forno.celo-sepolia.celo-testnet.org -``` - -3. Create an account and store it well formatted in an .env file - -``` -celocli account:new | sed -E 's/: (.+)/="\1"/g' | grep '=' > .env` -source .env -``` - -4. Copy the account address to your clipboard - -``` -echo $accountAddress | pbcopy -``` - -5. Head to the faucet to get some money and paste your account address there - -``` -open https://faucet.celo.org/celo-sepolia -``` - -6. Verify you got money successfully - -``` -celocli account:balance $accountAddress -``` - -7. Register your account - -``` -celocli account:register --from $accountAddress -k $privateKey -``` - -If you open your **`.env`** file, you will find your **`Celo private key`** - -## Clone the Celo Meme Token Generator - -1. Clone this repository - -``` -git clone https://github.com/harishkotra/celo-token-agent -cd celo-token-agent -``` - -2. Install dependencies - -``` -npm install -``` - -3. Create a .env file: - -``` -PRIVATE_KEY=your_celo_private_key -GAIA_API_KEY=your_gaia_api_keys -``` - -4. Compile the contract - -``` -npx hardhat compile -``` - -5. Deploy your token - -``` -node deploy.js -``` - -The script will - -1. Generate a token name -2. Check your balance -3. Deploy the contract -4. Provide you with the contract address and transaction details - -## Understanding the Code - -The project uses three main components - -1. Token Generation **`(tokenGenerator.js)`** - -- Generates creative token names -- Uses AI with a fallback to random generation -- Configures initial token supply - -2. Contract Deployment **`(tokenDeployer.sol)`** - -- Uses viem to interact with Celo -- Handles gas estimation and transaction monitoring -- Provides deployment status updates - -3. Smart Contract **`(tokenDeployer.js)`** - -- Standard ERC20 implementation -- Built with OpenZeppelin for security -- Deployable to Celo Sepolia testnet - -## Example response - -``` -Generated fallback token: { name: 'Mega Gem', symbol: 'MG' } -Reading artifacts from: /Users/blag/Documents/GitHub/celo-token-agent/artifacts/contracts/MemeToken.sol/MemeToken.json -Deploying from account: 0x5A96d23F76440C099F22327D1324786f6abe459A -Account balance: -CELO: 1.08303052 CELO -Sending deployment transaction... -Transaction sent! Hash: 0x035457c46ef5118db065b0a2ccc6bae1ce62f1c8ef688bbaf2d2596a6dd0fbd8 -Deployment confirmed in block: 38170881 -Token deployed successfully! -{ - name: 'Mega Gem', - symbol: 'MG', - address: '0x5e473F7650ABD9B6A5b28b2B0B64ebBd1ef01D94', - transactionHash: '0x035457c46ef5118db065b0a2ccc6bae1ce62f1c8ef688bbaf2d2596a6dd0fbd8', - explorer: 'https://celoscan.io/address/0x5e473F7650ABD9B6A5b28b2B0B64ebBd1ef01D94' # For Celo Sepolia: https://sepolia.celoscan.io/address/YOUR_CONTRACT_ADDRESS -} -``` - -## Support - -Join the [Celo Discord server](https://discord.com/invite/celo). Reach out in the #build-with-celo channel with your questions and feedback. diff --git a/build-on-celo/build-with-ai/examples/build-with-thirdweb-ai.mdx b/build-on-celo/build-with-ai/examples/build-with-thirdweb-ai.mdx deleted file mode 100644 index 1a0d5cddf..000000000 --- a/build-on-celo/build-with-ai/examples/build-with-thirdweb-ai.mdx +++ /dev/null @@ -1,86 +0,0 @@ -# What is thirdweb AI? - - - **Migration Notice**: Nebula has been rebranded to **thirdweb AI**. The Nebula - app and API were deprecated on September 30, 2025. All functionality is now - available through the thirdweb AI dashboard and API. Please migrate to the new - endpoints and update your integrations. - - -Thirdweb AI (formerly Nebula) is a natural language model with improved blockchain reasoning, autonomous transaction capabilities, and real-time access to the blockchain. It provides a standard OpenAI-compatible chat completion API optimized for blockchain interactions. - -**Key Features:** - -- Query real-time data from the blockchain -- Analyze transactions -- Fetch token balances, prices and metadata -- Execute or prepare any contract call or transaction -- Execute or prepare swaps from/to any token pair -- Deploy contracts -- Generate images -- Search the web - -Watch this workshop to learn more about thirdweb AI and how to create a Telegram bot for app developers to access daily and weekly stats of the dApp. - - - -## Get started building - -### API Endpoint - -The thirdweb AI API endpoint is: - -``` -https://api.thirdweb.com/ai/chat -``` - -### Authentication - -Use your project's `secret_key` from the thirdweb dashboard for authenticated API calls: - -```javascript -fetch("https://api.thirdweb.com/ai/chat", { - method: "POST", - headers: { - "x-secret-key": "", - }, - body: { - messages: [ - { - role: "user", - content: "Send 0.01 ETH to vitalik.eth", - }, - ], - context: { - // Note: Chain IDs for thirdweb differ from standard chain IDs. - // Find the correct chain IDs in the thirdweb dashboard or documentation. - // https://thirdweb.com/chainlist/mainnets - chain_ids: [8453], - from: "0x1234567890123456789012345678901234567890", - }, - stream: false, - }, -}); -``` - -### Example Projects - -- Follow this [guide](https://github.com/thirdweb-example/erc20-token-deployer) to test out thirdweb AI and build your own token deployer -- Check out the [thirdweb AI mini-app example](https://github.com/thirdweb-example/thirdweb-ai-mini-app) - -### Documentation - -- [thirdweb AI Documentation](https://portal.thirdweb.com/ai/chat) -- [API Reference](https://portal.thirdweb.com/reference#tag/ai/post/ai/chat) -- [Migration Guide](https://blog.thirdweb.com/changelog/nebula-is-now-thirdweb-ai/) - -## Support - -Join the [Celo Discord server](https://discord.com/invite/celo). Reach out in the #build-with-celo channel with your questions and feedback. diff --git a/build-on-celo/build-with-ai/examples/building_with_goat.mdx b/build-on-celo/build-with-ai/examples/building_with_goat.mdx deleted file mode 100644 index aac0cc66a..000000000 --- a/build-on-celo/build-with-ai/examples/building_with_goat.mdx +++ /dev/null @@ -1,312 +0,0 @@ ---- -title: Building a conversational AI agent for Celo transactions with GOAT -sidebarTitle: "Using GOAT Framework" ---- - -## Introduction - -This tutorial guides you through creating a Node.js application using TypeScript that leverages the GOAT AI agent framework to interact with the Celo blockchain. GOAT allows you to use natural language prompts to perform on-chain actions, such as transferring tokens and checking allowances. We'll cover setup, configuration, code explanation, and common usage scenarios. - -## Prerequisites - -Before you begin, ensure you have the following: - -- **Node.js (v18 or higher) and npm (or yarn) installed.** You can download Node.js from [https://nodejs.org/](https://nodejs.org/). -- **A Celo wallet with a private key.** You'll need a wallet with some CELO and cUSD for testing. _Never commit your private key to version control._ -- **An RPC provider URL for the Celo network.** For testing, use the Celo Sepolia testnet RPC: `https://forno.celo-sepolia.celo-testnet.org/`. For production, consider using a dedicated RPC provider like [Ankr](https://www.ankr.com/), [QuickNode](https://www.quicknode.com/), or others. -- **An OpenAI API key.** GOAT utilizes OpenAI's language models. Obtain an API key from [https://platform.openai.com/](https://platform.openai.com/). -- **A code editor or IDE.** VS Code, Sublime Text, or any other code editor will work. - -## Project Setup - -1. **Create a new project directory:** - - ```bash - mkdir goat-celo-tutorial - cd goat-celo-tutorial - ``` - -2. **Initialize a Node.js project:** - - ```bash - npm init -y - ``` - -3. **Install dependencies:** - - ```bash - npm install typescript @ai-sdk/openai @goat-sdk/adapter-vercel-ai @goat-sdk/plugin-erc20 @goat-sdk/wallet-viem ai dotenv viem @types/node - ``` - - - `typescript`: For using TypeScript. - - `@ai-sdk/openai`: The OpenAI adapter for AI-SDK. - - `@goat-sdk/adapter-vercel-ai`: GOAT's adapter for using AI-SDK. - - `@goat-sdk/plugin-erc20`: GOAT plugin for interacting with ERC-20 tokens. - - `@goat-sdk/wallet-viem`: GOAT's wallet integration using Viem. - - `ai`: The core AI-SDK library. - - `dotenv`: For loading environment variables from a `.env` file. - - `viem`: A lightweight Ethereum library for interacting with the blockchain. - - `@types/node`: TypeScript definitions for Node.js. - -4. **Initialize TypeScript configuration:** - - ```bash - npx tsc --init - ``` - -5. **Configure `tsconfig.json`:** - - Open `tsconfig.json` and update it with the following settings (adjusting paths as needed): - - ```json - { - "compilerOptions": { - "target": "ES2020", // Or a later version if supported by your environment - "module": "commonjs", - "lib": ["ESNext"], - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "skipLibCheck": true, - "outDir": "./dist", // Output directory for compiled JavaScript - "rootDir": "./src", // Source directory for TypeScript files - "moduleResolution": "node", - "resolveJsonModule": true, - "sourceMap": true - }, - "include": ["src/**/*"], - "exclude": ["node_modules"] - } - ``` - - - `outDir`: Specifies where the compiled JavaScript files will be placed. - - `rootDir`: Specifies the root directory for your TypeScript source files. - - `sourceMap`: Enables source map generation, helpful for debugging. - - `resolveJsonModule`: allows importing JSON files - - `moduleResolution`: Specifies how modules are resolved. "node" is standard for Node.js projects. - -## Project Structure - -Organize your project files as follows: - -```text -goat-celo-tutorial/ -├── src/ -│ ├── index.ts <- Main application file -│ └── tokens.ts <- Definitions for Celo tokens -├── .env <- Environment variables (KEEP THIS PRIVATE) -├── package.json -├── package-lock.json -└── tsconfig.json -``` - -## Code Implementation - -### 1. `src/tokens.ts`: - -This file defines the Celo tokens we'll be interacting with (CELO, cUSD, and USDC). - -```typescript -// src/tokens.ts -import { Token } from "@goat-sdk/plugin-erc20"; - -export const tokens: Token[] = [ - { - decimals: 6, - symbol: "USDC", - name: "USD Coin", - chains: { - "42220": { - contractAddress: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C", - }, - }, - }, - { - decimals: 18, - symbol: "CELO", - name: "Celo", - chains: { - "42220": { - contractAddress: "0x471EcE3750Da237f93B8E339c536989b8978a438", - }, - }, - }, - { - decimals: 18, - symbol: "cUSD", - name: "Celo Dollar", - chains: { - "42220": { - contractAddress: "0x765de816845861e75a25fca122bb6898b8b1282a", - }, - }, - }, -]; -``` - -### 2. `src/index.ts`: - -This is the main application file where we set up GOAT, the wallet, and the interactive prompt. - -```typescript -// src/index.ts -import { openai } from "@ai-sdk/openai"; -import { getOnChainTools } from "@goat-sdk/adapter-vercel-ai"; -import { erc20 } from "@goat-sdk/plugin-erc20"; -import { viem } from "@goat-sdk/wallet-viem"; -import { generateText } from "ai"; -import dotenv from "dotenv"; -import readline from "node:readline"; -import { createWalletClient, http } from "viem"; -import { privateKeyToAccount } from "viem/accounts"; -import { celo } from "viem/chains"; -import { tokens } from "./tokens"; - -dotenv.config(); - -// --- Wallet Setup --- -const account = privateKeyToAccount( - process.env.WALLET_PRIVATE_KEY as `0x${string}` -); - -const walletClient = createWalletClient({ - account: account, - transport: http(process.env.RPC_PROVIDER_URL), - chain: celo, -}); - -(async () => { - // --- GOAT Setup --- - const tools = await getOnChainTools({ - wallet: viem(walletClient), - plugins: [erc20({ tokens })], - }); - - // --- Interactive Prompt --- - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, - }); - - while (true) { - const prompt = await new Promise((resolve) => { - rl.question('Enter your prompt (or "exit" to quit): ', resolve); - }); - - if (prompt === "exit") { - rl.close(); - break; - } - - try { - const result = await generateText({ - model: openai("gpt-4o"), // Use "gpt-4o" for better performance, or another model - tools: tools, - maxSteps: 10, // Maximum number of tool invocations per request - prompt: prompt, - onStepFinish: (event) => { - console.log(event.toolResults); // Log the results of each tool invocation - }, - }); - console.log(result.text); - } catch (error) { - console.error("An error occurred:", error); // Improved error handling - } - console.log("\n-------------------\n"); - } -})(); -``` - -### 3. `.env` - -Create a `.env` file in the root of your project and add the following, replacing the placeholders with your actual values: - -```bash -WALLET_PRIVATE_KEY=your_wallet_private_key -RPC_PROVIDER_URL=https://forno.celo-sepolia.celo-testnet.org/ # Celo Sepolia Testnet (recommended for testing) -# For mainnet: https://forno.celo.org -OPENAI_API_KEY=your_openai_api_key -``` - -Important Security Note: Never commit your `.env` file or your private key to version control (e.g., Git). Add `.env` to your `.gitignore` file. - -## Running the Application - -Compile and run the TypeScript code: - -```bash -# Compile TypeScript -npx tsc - -# Run the compiled JavaScript -node dist/index.js -``` - -Or use a TypeScript runner: - -```bash -# Using ts-node -npx ts-node src/index.ts - -# Or using tsx -npx tsx src/index.ts -``` - -The application will start, and you'll see the prompt: `Enter your prompt (or "exit" to quit):`. You can now enter natural language commands. - -## Example Prompts and Explanations - -Here are some example prompts you can use and explanations of what's happening: - -- "Transfer 1 cUSD to 0x13F6b54c5491cd4745fF4cFfaA9EfEe59E628657" - - - GOAT uses the `get_address` tool (implicitly, you don't need to specify it). - - It then uses `get_token_info_by_symbol` to find the cUSD token details. - - `convert_to_base_unit` converts 1 cUSD to its base unit (1 \* 10^18). - - Finally, the `transfer` tool is called with the token address, recipient, and amount. - - The transaction hash is returned. - -- "What is my allowance on USDC?" - - - `get_address` is called to get the user's address. - - `get_token_info_by_symbol` finds the USDC token. - - `get_chain` is used to get the current chain - - `get_token_allowance` is called to check the allowance of your address to spend USDC. The spender, in this case, is also your address, so you get 0. This is by design. - - The allowance amount is returned. - -- "Approve 0x13F6b54c5491cd4745fF4cFfaA9EfEe59E628657 to spend 10 USDC on my behalf" - - - This prompt would use the `approve` tool from the ERC-20 plugin. You'd see similar steps to the transfer, but instead of transferring, it would set an allowance for the specified address to spend your USDC. - -- "What is my CELO balance?" - - - `get_address` will be used to get the current user address. - - `get_token_info_by_symbol` finds the CELO token. - - `get_balance` is used to get the current address balance. - - The balance amount is returned. - -## Troubleshooting - -- `TypeError: Cannot read properties of undefined (reading 'call')` or similar errors: Double-check your `tsconfig.json` settings, particularly `module`, `target`, and `lib`. Make sure your Node.js version is compatible. Reinstall your dependencies (`rm -rf node_modules && npm install`). - -- `Error: Invalid ABI`: Ensure your contract addresses in `tokens.ts` are correct for the Celo network (chain ID 42220). - -- OpenAI API errors (e.g., 401 Unauthorized): Verify your `OPENAI_API_KEY` is correct and that your OpenAI account has sufficient credits. - -- Transaction failures: - - - Check that your wallet has enough CELO to pay for gas. - - Verify your `RPC_PROVIDER_URL` is correct and functioning. - - If you're using a custom RPC provider, ensure it supports the necessary methods. - -- Type errors after installation: If you encounter persistent type errors, you can try adding `// @ts-ignore` comments above the lines causing issues as a temporary workaround. However, it's best to resolve the underlying type issues if possible. The provided code avoids this, but it's a useful debugging technique. - -## Conclusion - -This tutorial demonstrated how to build a Celo blockchain AI agent with GOAT, Node.js, and TypeScript. You've learned to set up a project, integrate a wallet, define tokens, and use natural language to execute on-chain actions. This provides a foundation for creating powerful, user-friendly Web3 applications that simplify complex blockchain interactions. Remember to prioritize security and continue exploring the possibilities! - -## Next Steps - -- Explore more examples and documentation for GOAT and the ERC-20 plugin and ERC-721 plugin. -- Build a more complex application using GOAT and other Celo tools. -- Contribute to the GOAT project and provide feedback. diff --git a/tooling/overview/network-overview.mdx b/build-on-celo/network-overview.mdx similarity index 100% rename from tooling/overview/network-overview.mdx rename to build-on-celo/network-overview.mdx diff --git a/docs.json b/docs.json index b0fb289f2..d8c4b0f04 100644 --- a/docs.json +++ b/docs.json @@ -112,6 +112,7 @@ "pages": [ "build-on-celo/index", "build-on-celo/quickstart", + "build-on-celo/overview/network-overview", "build-on-celo/cel2-architecture", "build-on-celo/launch-checklist", "build-on-celo/scaling-your-app", @@ -124,26 +125,10 @@ "pages": [ "build-on-celo/build-with-ai/overview", "build-on-celo/build-with-ai/vibe-coding", - { - "group": "Build with GOAT", - "pages": [ - "build-on-celo/build-with-ai/build-with-goat/token-swap-agent", - "build-on-celo/build-with-ai/build-with-goat/mint-nft-agent", - "build-on-celo/build-with-ai/build-with-goat/send-token-agent" - ] - }, "build-on-celo/build-with-ai/resources", "build-on-celo/build-with-ai/tools", "build-on-celo/build-with-ai/multi-agent-systems", "build-on-celo/build-with-ai/usecases", - { - "group": "Examples", - "pages": [ - "build-on-celo/build-with-ai/examples/ai-memecoins", - "build-on-celo/build-with-ai/examples/building_with_goat", - "build-on-celo/build-with-ai/examples/build-with-thirdweb-ai" - ] - }, { "group": "Celo MCPs", "pages": [ @@ -187,7 +172,6 @@ "group": "Overview", "pages": [ "tooling/overview/index", - "tooling/overview/network-overview", "tooling/bridges/bridges", "tooling/overview/fee-abstraction", "tooling/overview/faucet" @@ -236,8 +220,7 @@ "tooling/wallets/ledger/to-celo-web", "tooling/wallets/ledger/to-celo-cli" ] - }, - "tooling/wallets/staking" + } ] }, { @@ -256,7 +239,8 @@ "tooling/indexers/overview", "tooling/indexers/the-graph", "tooling/indexers/subquery", - "tooling/indexers/envio" + "tooling/indexers/envio", + "tooling/indexers/goldrush" ] }, { @@ -3029,6 +3013,38 @@ { "source": "/build/support", "destination": "/build-on-celo/index" + }, + { + "source": "/build-on-celo/build-with-ai/build-with-goat/token-swap-agent", + "destination": "/build-on-celo/build-with-ai/overview" + }, + { + "source": "/build-on-celo/build-with-ai/build-with-goat/mint-nft-agent", + "destination": "/build-on-celo/build-with-ai/overview" + }, + { + "source": "/build-on-celo/build-with-ai/build-with-goat/send-token-agent", + "destination": "/build-on-celo/build-with-ai/overview" + }, + { + "source": "/build-on-celo/build-with-ai/examples/ai-memecoins", + "destination": "/build-on-celo/build-with-ai/overview" + }, + { + "source": "/build-on-celo/build-with-ai/examples/building_with_goat", + "destination": "/build-on-celo/build-with-ai/overview" + }, + { + "source": "/build-on-celo/build-with-ai/examples/build-with-thirdweb-ai", + "destination": "/build-on-celo/build-with-ai/overview" + }, + { + "source": "/tooling/overview/network-overview", + "destination": "/build-on-celo/overview/network-overview" + }, + { + "source": "/tooling/wallets/staking", + "destination": "/contribute-to-celo/community-rpc-nodes/how-it-works" } ], "footer": { @@ -3063,7 +3079,7 @@ }, { "href": "https://lemonade.social/celo", - "label": "Lemonade" + "label": "Events" } ] } diff --git a/home/celo.mdx b/home/celo.mdx index 48a981fdb..a3e2bdec1 100644 --- a/home/celo.mdx +++ b/home/celo.mdx @@ -85,7 +85,7 @@ description: "Celo is a leading Ethereum L2. As the frontier chain for global im Connect Celo to your application diff --git a/home/exchanges.mdx b/home/exchanges.mdx index fbd0a99e0..e079bc537 100644 --- a/home/exchanges.mdx +++ b/home/exchanges.mdx @@ -3,7 +3,7 @@ title: Exchanges on Celo sidebarTitle: "Exchanges" --- -Swapping assets on Celo allows users to easily exchange tokens within the Celo ecosystem. +CELO is the native token that powers the Celo network. --- @@ -11,13 +11,18 @@ Swapping assets on Celo allows users to easily exchange tokens within the Celo e Be sure you understand and review the risks when swapping assets. +#### Centralized Exchanges + +- [Binance](https://www.binance.com/en/trade/CELO_USDT?ref=40896146) +- [Coinbase](https://exchange.coinbase.com/trade/CGLD-USD) + #### Decentralized Exchanges - [Uniswap](https://app.uniswap.org/) -- [Ubeswap](https://app.ubeswap.org/#/swap) - [Velodrome](https://velodrome.finance/) - [Other Exchanges](https://coinmarketcap.com/currencies/celo/) -#### Stablecoin Swaps +#### Celo Specific Exchanges -- [Mento](https://app.mento.org/) \ No newline at end of file +- [Ubeswap](https://app.ubeswap.org/#/swap) +- [Mento](https://app.mento.org/) - Good for stablecoin swaps \ No newline at end of file diff --git a/home/wallets.mdx b/home/wallets.mdx index 6c40a0291..5f30b4b89 100644 --- a/home/wallets.mdx +++ b/home/wallets.mdx @@ -101,6 +101,26 @@ Trust Wallet is a self-custody wallet with support for Celo available as a mobil --- +### [Rabby](https://rabby.io/) + +Your go-to wallet for Ethereum and EVM - Track portfolio across all EVM chains in one place - Discover popular Dapps for your needs. + +- [Homepage](https://rabby.io/) +- Platforms: Browser, iOS, Android + +--- + +### [OKX Web3 Wallet](https://web3.okx.com/) + +Supports over 130 blockchains, including CELO. Enables users to store, trade, analyze, earn, and connect to Web3 sites. The mobile app features a built-in browser for seamless Web3 access and includes a tab to switch to the OKX exchange (though creating an exchange account is not required to use the wallet). It’s fully compatible with WalletConnect and widely supported across Web3 platforms. + +- [Homepage](https://web3.okx.com/) +- Platforms: [iOS](https://apps.apple.com/us/app/okx-wallet-portal-to-web3/id6743309484), [Android](https://play.google.com/store/apps/details?id=com.okx.wallet), [Chrome, Brave, Opera, & Edge Browser](https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge), [Telegram](https://web.telegram.org/k/#@OKX_WALLET_BOT) +- Maintainers: [OKX](https://okx.com/) +- Source code is not available, although there are two repositories related and useful for developers: https://github.com/okx/go-wallet-sdk and https://github.com/okx/js-wallet-sdk + +--- + ### [Safe Wallet](https://app.safe.global/welcome) Decentralized custody protocol and collective asset management platform. Provide multisg wallet support, Account Abstraction and more. @@ -122,6 +142,15 @@ Zerion Wallet is a non-custodial wallet for crypto that gives you access to a br --- +### [1Inch Wallet](https://1inch.com/wallet) + +1inch Wallet gives you rapid updates and swap orders - whether you’re checking balances or trading on the go. + +- [Homepage](https://1inch.com/wallet) +- Platforms: iOS, Android + +--- + ### [Bridge Wallet](https://www.mtpelerin.com/bridge-wallet) - [Homepage](https://www.mtpelerin.com/bridge-wallet) diff --git a/tooling/indexers/goldrush.mdx b/tooling/indexers/goldrush.mdx new file mode 100644 index 000000000..81ca8fceb --- /dev/null +++ b/tooling/indexers/goldrush.mdx @@ -0,0 +1,18 @@ +## GoldRush (powered by Covalent) + +GoldRush offers the most comprehensive Blockchain Data API suite for developers, analysts, and enterprises. Whether you are building a DeFi dashboard, a wallet, a trading bot, an AI agent or a compliance platform, the Data APIs provide fast, accurate, and developer-friendly access to the essential on-chain data you need. + +GoldRush consists of the following self-serve products that can be used independently or together to power your application: + +| **Product Name** | **Description** | **Key Data Feeds** | **Use Cases** | +| --- | --- | --- | --- | +| **Foundational API** | Access structured historical blockchain data across 100+ chains via REST APIs |
  • Token balances (spot & historical)
  • Token transfers
  • Token holders (spot & historical)
  • Token prices (onchain)
  • Wallet transactions
  • Get logs
|
  • Wallets
  • Portfolio trackers
  • Crypto accounting & tax tools
  • DeFi dashboards
  • Activity feeds
| +| **Streaming API** | Subscribe to real-time blockchain events with sub-second latency using GraphQL over WebSockets |
  • OHLCV tokens & pairs
  • New & updated DEX pairs
  • Wallet activity
  • Token balances
|
  • Trading dashboards
  • Sniper bots
  • Gaming
  • Agentic workflows
| + + +The **[GoldRush TypeScript SDK](https://www.npmjs.com/package/@covalenthq/client-sdk)** is the fastest way to integrate the GoldRush APIs. Install with: + +```bash +npm install @covalenthq/client-sdk +``` +Learn more about GoldRush's integration with Celo [here](https://goldrush.dev/docs/chains/celo?utm_source=celo&utm_medium=partner-docs) . \ No newline at end of file diff --git a/tooling/indexers/overview.mdx b/tooling/indexers/overview.mdx index 65a3a0742..73ed31aa5 100644 --- a/tooling/indexers/overview.mdx +++ b/tooling/indexers/overview.mdx @@ -30,3 +30,5 @@ for querying real-time and historical data. - Chainbase's primary objective is to offer a unique and decentralized Layer 1 infrastructure that directly addresses the problem of interoperability across various blockchain networks. This architecture will facilitate the utilization of the full capabilities of blockchain data by eliminating any constraints. - [OnFinality](https://indexing.onfinality.io) - Industry leading SubQuery and Subgraph data indexer hosting, so you can sleep easy. +- [GoldRush(powered by Covalent)](https://goldrush.dev/docs/chains/celo) + - GoldRush offers the most comprehensive Blockchain Data API suite for developers, analysts, and enterprises. Whether you are building a DeFi dashboard, a wallet, a trading bot, an AI agent or a compliance platform, the Data APIs provide fast, accurate, and developer-friendly access to the essential on-chain data you need. diff --git a/tooling/wallets/staking.mdx b/tooling/wallets/staking.mdx deleted file mode 100644 index e1482746d..000000000 --- a/tooling/wallets/staking.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Staking -url: https://medium.com/stake-service/hey-guys-today-well-take-a-look-at-how-you-can-use-the-cello-wallet-to-stake-your-own-cello-92730ac24aa5 ---- \ No newline at end of file From c87d88f761f2239d1fc353794ab652197118009f Mon Sep 17 00:00:00 2001 From: GigaHierz Date: Thu, 22 Jan 2026 19:49:30 +0000 Subject: [PATCH 2/5] remove ai agent resources page --- build-on-celo/build-with-ai/resources.mdx | 101 ---------------------- docs.json | 5 +- 2 files changed, 4 insertions(+), 102 deletions(-) delete mode 100644 build-on-celo/build-with-ai/resources.mdx diff --git a/build-on-celo/build-with-ai/resources.mdx b/build-on-celo/build-with-ai/resources.mdx deleted file mode 100644 index 1f5f146cf..000000000 --- a/build-on-celo/build-with-ai/resources.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: Resources for Building AI Agents on Celo -og:description: Resources for learning how to craft intelligent, blockchain-powered agents on Celo. -sidebarTitle: "Resources" ---- - -Resources for learning how to craft intelligent, blockchain-powered agents on Celo. - ---- - -# Learning Resources - -### 📝 Tutorials - -- [Machine Learning](https://www.coursera.org/specializations/machine-learning-introduction) -- **Eliza Framework** - - [How to Build a Social AI Agent in 15 minutes with X, Telegram, Onchain Capabilities | Full Tutorial](https://www.youtube.com/watch?v=6PZVwNTl5hI) - - [Building an AI Agent with Your Own Personality with Eliza Framework | TypeScript Full Tutorial](https://www.youtube.com/watch?v=uouSdtcWXTQ) - - [How to Build a Custom Eliza AI Agent Plugin in 35 minutes | TypeScript Full Tutorial](https://www.youtube.com/watch?v=25FxjscBHuo) - - [Eliza - AI Agent Dev School](https://www.youtube.com/playlist?list=PLx5pnFXdPTRzWla0RaOxALTSTnVq53fKL) -- **GOAT SDK** - - [Build AI-Powered Token Swap Agent on Celo](/build-on-celo/build-with-ai/build-with-goat/token-swap-agent) - - [Build AI-Powered NFT Minting Agent on Celo](/build-on-celo/build-with-ai/build-with-goat/mint-nft-agent) - - [Build AI Agent to Send Tokens on Celo](/build-on-celo/build-with-ai/build-with-goat/send-token-agent) -- **Gaia Framework** - - [Launching Tokens on Celo using Gaia AI Agent Framework](https://www.youtube.com/watch?v=-7Bcgpj79LM) -- **thirdweb AI (formerly Nebula)** - - [Unlocking Web3 LLMs: Explore thirdweb AI on Celo](https://www.youtube.com/watch?v=FeubfHwfJcM) - -### 🎓 Courses - -- [Web3 AI Agents Guide](https://www.aiagenttoolkit.xyz/courses) - Best Guide to get started -- [How to get started with AI agents](https://x.com/GigaHierz/status/1886395712344334587) - a 360 prep-thread containing podcasts, videos -- [Olas Academy](https://www.youtube.com/playlist?list=PLXztsZv11CTfXiQK9OJhMwBkfgf4ETZkl) -- [CrewAI Documentation](https://docs.crewai.com/) - Comprehensive guide to building multi-agent systems -- [Vercel AI SDK Documentation](https://ai-sdk.dev/) - TypeScript-first toolkit for AI applications - -### 🤖 Famous Agents - -- Luna - Virtuals - - first agent to pay another agent for doing work -- [aixbt](https://x.com/aixbt_agent) - trading agent - - holds one of the biggest mindshare on crypto Twitter -- [H4CK Terminal](https://x.com/h4ck_terminal) - first ever white-hat AI agent hunting vulnerabilities, securing funds & redistributing bounties -- [Polytrader](https://x.com/polytraderAI) -- [artto](https://x.com/artto_ai): Agent that collects NFTs -- [Soleng](https://x.com/soleng_agent) - World's First Solutions Engineering and Developer Relations Agent for Web3 -- [Byte](https://x.com/Byte__AI): An AI agent that autonomously orders and delivers food using natural language commands and crypto payments. -- [opencordai](https://x.com/opencordai): A 24/7 AI agent for social media lead generation, identifying customers and engaging with them to drive sales. -- [Infinite Regen](https://x.com/0xInfiniteregen): A platform for creating AI agents trained on Web3 insights to design mechanisms for funding public goods. - -For a full comprehensive list, checkout the [AI Agent Demo Days](https://x.com/GigaHierz/status/1881401460082274395) hosted by Nader Dabit. - -### 💡 Project Ideas - -- [25+ AI Agent Product Ideas](https://x.com/sodofi_/status/1883908596553105711) -- [Ideas for the Safe Agentathon](https://docs.google.com/document/d/1HSBfxkb5AWPZo6YDefDVjBrHVl-Nh4DQVElyLhy4y7A/edit?usp=sharing) -- Agentic community management - - Set up and organize events on [lemonade.social](http://lemonade.social) as mentioned in this [podcast](https://open.spotify.com/episode/40XcJxe9RfwtPIOq3KHy7s?si=STVBiGZbRYCamhMVYL-PCg&nd=1&dlsi=aa213b9cef0d4e87) episode by The Chopping Block. -- Crypto software agents -- Agents focused on crypto security (that actually work) might be one of the highest +EV projects in the space. 24/7 security, patching ability, monitoring systems, etc. would totally change the narrative on how crypto is perceived. -- Agent verifiability - - identity - - data - - models - -### 🛠️ Technical Resources - -- Starter Kit (including Lit + Gaia): https://github.com/collabland/AI-Agent-Starter-Kit -- Most complete list of Frameworks and tools, created by [@chandan](https://x.com/chandan1_) - - [AIAgentToolkit.xyz](http://aiagenttoolkit.xyz/) -- Celo - [Getting Started with AI Agents](/build/build-with-ai/overview) -- [Mode Network Hackathon Starter Kit](https://www.notion.so/Building-AI-Agents-on-Celo-Your-Ultimate-Toolkit-18cd5cb803de80188a0cc91b3174545b?pvs=21) -- [The AI Model Layer of Crypto](https://cryptopond.xyz/) -- [12-Factor Agents - Principles for building reliable LLM applications](https://github.com/humanlayer/12-factor-agents) - -### 📖 Articles - -- [AI Real World Use Cases for ReFi](https://www.daviddao.org/posts/regenerative-intelligence/) -- [Building effective agents](https://www.anthropic.com/research/building-effective-agents) -- [Microsoft AutoGen: Multi-Agent AI Systems](https://www.microsoft.com/en-us/research/project/autogen/) - Enterprise-grade agent framework -- [OpenAgents: Decentralized AI Agent Networks](https://openagents.org) - Open-source framework for large-scale agent systems - -### 🎙️ Podcasts - -- Learn about the history of the first viral AI Agent with a token: The Truth Terminal - - [Bankless: How Crypto Al Agents Will Take Over the World | Ejaaz Ahamadeen](https://open.spotify.com/episode/5jVhVuzb5HNZdZz11b1cc1?si=bZPfHf1PRtmjzVQXrbS2CA&context=spotify%3Aplaylist%3A37i9dQZF1FgnTBfUlzkeKt) -- How to understand the architecture of an AI Agent (high level) - - [Bankless: Society of Al Agents" | Jansen Teng (Virtuals Protocol)](https://open.spotify.com/episode/4kMubklNG3xBMYR0mWijNy?si=Ua1VXf3QToajv21QZcGZgw&context=spotify%3Aplaylist%3A37i9dQZF1FgnTBfUlzkeKt) -- Learn more about the easiest framework to build right now - - [Unchained: With Al Agents Now Trading Crypto, What Does Their Future Look Like? - Ep. 758](https://open.spotify.com/episode/5UDhqnOziBkcfaQ55ZJ7Bg?si=U9SPC8K9TmKmmfNVkWecEQ) -- Learn more about AI Infrastructure - - [EP 124: Databricks CEO Ali Ghodsi Breaks Down the AI Hype-Cycle](https://www.notion.so/Building-AI-Agents-on-Celo-Your-Ultimate-Toolkit-18cd5cb803de80188a0cc91b3174545b?pvs=21) -- Predictions for the industry - - [AI + a16z](https://podcasts.apple.com/in/podcast/ai-a16z/id1740178076) - -### 🏆 Start Building Now - -- [Proof of Ship](https://celoplatform.notion.site/Proof-of-Ship-17cd5cb803de8060ba10d22a72b549f8) - a monthly contest where AI Agents track contributions on Celo and distribute rewards to builders. - -Have another resource you want to add? Submit a pull request to add it to this page. diff --git a/docs.json b/docs.json index d8c4b0f04..dee70aaa9 100644 --- a/docs.json +++ b/docs.json @@ -125,7 +125,6 @@ "pages": [ "build-on-celo/build-with-ai/overview", "build-on-celo/build-with-ai/vibe-coding", - "build-on-celo/build-with-ai/resources", "build-on-celo/build-with-ai/tools", "build-on-celo/build-with-ai/multi-agent-systems", "build-on-celo/build-with-ai/usecases", @@ -3038,6 +3037,10 @@ "source": "/build-on-celo/build-with-ai/examples/build-with-thirdweb-ai", "destination": "/build-on-celo/build-with-ai/overview" }, + { + "source": "/build-on-celo/build-with-ai/resources", + "destination": "/build-on-celo/build-with-ai/overview" + }, { "source": "/tooling/overview/network-overview", "destination": "/build-on-celo/overview/network-overview" From ed0cb5102c2c07b75f4bf41d20548f746e9a7543 Mon Sep 17 00:00:00 2001 From: GigaHierz Date: Fri, 23 Jan 2026 10:46:13 +0000 Subject: [PATCH 3/5] fix link to netowrk overview page --- tooling/testnets/celo-sepolia/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling/testnets/celo-sepolia/index.mdx b/tooling/testnets/celo-sepolia/index.mdx index 506cc5042..d974debad 100644 --- a/tooling/testnets/celo-sepolia/index.mdx +++ b/tooling/testnets/celo-sepolia/index.mdx @@ -19,7 +19,7 @@ The **Celo Sepolia Testnet** is Celo's new developer testnet built on Ethereum S - **Fresh State**: Starts with a clean slate, no state inheritance from Alfajores - **Functionality**: Provides the same developer experience as Alfajores -The full network information is available [in the network overview](/network#celo-sepolia-testnet). +The full network information is available [in the network overview](/build-on-celo/network-overview#celo-sepolia-testnet). **New Celo Sepolia Testnet Now Live!** From b2b9e18ad33b53b2f0bdb2b5fb96d4b3c0b50a77 Mon Sep 17 00:00:00 2001 From: GigaHierz Date: Fri, 23 Jan 2026 11:42:05 +0000 Subject: [PATCH 4/5] - remove plumo - fix broken links to network --- _deprecated/cel2/faq.mdx | 2 +- .../about-celo-l1/validator/voting.mdx | 2 +- .../what-is-celo/using-celo/manage/asset.mdx | 2 +- .../using-celo/manage/self-custody.mdx | 2 +- build-on-celo/network-overview.mdx | 5 +- .../registering-as-rpc-node.mdx | 2 +- docs.json | 124 ++++++----- home/celo.mdx | 2 +- home/manage/asset.mdx | 2 +- home/manage/self-custody.mdx | 2 +- legacy/validator/voting.mdx | 2 +- tooling/dev-environments/hardhat.mdx | 6 +- tooling/libraries-sdks/cli/index.mdx | 4 +- tooling/libraries-sdks/contractkit/setup.mdx | 4 +- tooling/nodes/forno.mdx | 4 +- tooling/nodes/overview.mdx | 2 +- tooling/overview/index.mdx | 2 +- tooling/overview/setup/wallet.mdx | 2 +- tooling/plumo/index.mdx | 43 ---- tooling/plumo/verification-phase-1.mdx | 193 ------------------ tooling/plumo/verification-phase-2.mdx | 82 -------- 21 files changed, 83 insertions(+), 406 deletions(-) delete mode 100644 tooling/plumo/index.mdx delete mode 100644 tooling/plumo/verification-phase-1.mdx delete mode 100644 tooling/plumo/verification-phase-2.mdx diff --git a/_deprecated/cel2/faq.mdx b/_deprecated/cel2/faq.mdx index b6670a74e..f0834e2a3 100644 --- a/_deprecated/cel2/faq.mdx +++ b/_deprecated/cel2/faq.mdx @@ -104,4 +104,4 @@ Dango was a short-lived testnet forked from Alfajores at block [24940100](https: Alfajores is a long running Celo network testnet that was [launched in July 2019](https://blog.celo.org/introducing-alfajores-1b162ebcb44d) and upgraded to L2 in September 2024. -See the [Alfajores network info here](/network#celo-alfajores-testnet). +See the [Alfajores network info here](/build-on-celo/network-overview). diff --git a/_deprecated/what-is-celo/about-celo-l1/validator/voting.mdx b/_deprecated/what-is-celo/about-celo-l1/validator/voting.mdx index 53766028e..06fe94d4a 100644 --- a/_deprecated/what-is-celo/about-celo-l1/validator/voting.mdx +++ b/_deprecated/what-is-celo/about-celo-l1/validator/voting.mdx @@ -53,7 +53,7 @@ As a CELO holder, you have the opportunity to impact the Celo network by voting - **Runs an Attestation Service**: The [Attestation Service](/legacy/protocol/identity/) is an important service that Validators can run that allows users to verify that they have access to a phone number and map it to an address. Supporting Validators that run this service makes it easier for new users to begin using Celo. -- **Runs a Validator on Baklava**: A group that runs a Validator on the [Baklava](/network/) helps maintain the testnet and verify that upgrades to the Celo Blockchain software can be deployed smoothly. +- **Runs a Validator on Baklava**: A group that runs a Validator on the [Baklava](/build-on-celo/network-overview) helps maintain the testnet and verify that upgrades to the Celo Blockchain software can be deployed smoothly. ### Community diff --git a/_deprecated/what-is-celo/using-celo/manage/asset.mdx b/_deprecated/what-is-celo/using-celo/manage/asset.mdx index b1d91f0d7..55969e831 100644 --- a/_deprecated/what-is-celo/using-celo/manage/asset.mdx +++ b/_deprecated/what-is-celo/using-celo/manage/asset.mdx @@ -24,7 +24,7 @@ This guide assumes: ## Choose a Node -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](/network/). +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](/build-on-celo/network-overview). ## Create an Account diff --git a/_deprecated/what-is-celo/using-celo/manage/self-custody.mdx b/_deprecated/what-is-celo/using-celo/manage/self-custody.mdx index d80dcfd94..892f95939 100644 --- a/_deprecated/what-is-celo/using-celo/manage/self-custody.mdx +++ b/_deprecated/what-is-celo/using-celo/manage/self-custody.mdx @@ -84,7 +84,7 @@ celocli --version And if not, upgrade by running the same command as above. -You will now need to point the Celo CLI to a node that is synchronized with the [Mainnet](/network) network. There are two options: +You will now need to point the Celo CLI to a node that is synchronized with the [Mainnet](/build-on-celo/network-overview) network. There are two options: - **Local Celo Blockchain node**: You can run a full node on your local machine which will communicate with other nodes and cryptographically verify all data it receives. Since this approach does not require you to trust the network, it is most secure. diff --git a/build-on-celo/network-overview.mdx b/build-on-celo/network-overview.mdx index ea5698930..cb0a1c779 100644 --- a/build-on-celo/network-overview.mdx +++ b/build-on-celo/network-overview.mdx @@ -16,7 +16,7 @@ Overview of Celo Mainnet and the Celo Sepolia Testnet. | Chain ID | 42220 | | Currency Symbol | CELO | | RPC Nodes |
  • [List of RPC providers](network/node/overview#as-a-service)
  • [Celo L2 Mainnet Day 1 Node and RPC providers](/developer#node-and-rpc-providers)
| -| RPC Endpoint (best effort) | https://forno.celo.org
Note: [Forno](/network/node/forno#celo-mainnet) is rate limited, as your usage increases consider options that can provide the desired level of support (SLA). | +| RPC Endpoint (best effort) | https://forno.celo.org
Note: [Forno](/tooling/nodes/forno#celo-mainnet) is rate limited, as your usage increases consider options that can provide the desired level of support (SLA). | | Block Explorers |
  • [https://explorer.celo.org](https://explorer.celo.org)
  • [https://celoscan.io](https://celoscan.io)
| | Bridge Link | [List of bridges](/developer/bridges/bridges) | @@ -55,6 +55,3 @@ Try Celo's new developer testnet on Ethereum Sepolia. The Celo Sepolia Testnet is designed for testing and experimentation by developers. Its tokens hold no real world economic value. The testnet software will be upgraded on a regular basis. This will erase your accounts, their balance and your transaction history. You may encounter bugs and limitations with the software and documentation. - -Your use of the Celo Sepolia Testnet is subject to the [Celo Sepolia Testnet Disclaimer](/network/celo-sepolia/disclaimer). - diff --git a/contribute-to-celo/community-rpc-nodes/registering-as-rpc-node.mdx b/contribute-to-celo/community-rpc-nodes/registering-as-rpc-node.mdx index feb853291..ba98aab67 100644 --- a/contribute-to-celo/community-rpc-nodes/registering-as-rpc-node.mdx +++ b/contribute-to-celo/community-rpc-nodes/registering-as-rpc-node.mdx @@ -24,7 +24,7 @@ To register as a community RPC provider, you need: - **10,000 CELO** to register an RPC node - **10,000 CELO per member RPC** to register an RPC Group -If you don't have enough CELO, you can practice the registration process on the [Celo Sepolia Testnet](/network/celo-sepolia). Use the [testnet faucet](https://faucet.celo.org/celo-sepolia) to get test CELO - select "Advanced Needs" when requesting funds for RPC provider testing. +If you don't have enough CELO, you can practice the registration process on the [Celo Sepolia Testnet](/build-on-celo/network-overview). Use the [testnet faucet](https://faucet.celo.org/celo-sepolia) to get test CELO - select "Advanced Needs" when requesting funds for RPC provider testing. ### Key Management diff --git a/docs.json b/docs.json index dee70aaa9..d7948d089 100644 --- a/docs.json +++ b/docs.json @@ -112,7 +112,7 @@ "pages": [ "build-on-celo/index", "build-on-celo/quickstart", - "build-on-celo/overview/network-overview", + "build-on-celo/network-overview", "build-on-celo/cel2-architecture", "build-on-celo/launch-checklist", "build-on-celo/scaling-your-app", @@ -171,15 +171,13 @@ "group": "Overview", "pages": [ "tooling/overview/index", - "tooling/bridges/bridges", + "tooling/overview/faucet", "tooling/overview/fee-abstraction", - "tooling/overview/faucet" + "tooling/bridges/bridges", + "tooling/bridges/cross-chain-messaging", + "tooling/testnets/celo-sepolia/index" ] }, - { - "group": "Testnets", - "pages": ["tooling/testnets/celo-sepolia/index"] - }, { "group": "Nodes", "pages": [ @@ -242,6 +240,18 @@ "tooling/indexers/goldrush" ] }, + { + "group": "Oracles", + "pages": [ + "tooling/oracles/run", + "tooling/oracles/index", + "tooling/oracles/band-protocol", + "tooling/oracles/chainlink-oracles", + "tooling/oracles/redstone", + "tooling/oracles/supra", + "tooling/oracles/quex-oracles" + ] + }, { "group": "Dev Environments", "pages": [ @@ -319,30 +329,6 @@ "tooling/contract-verification/remix", "tooling/contract-verification/hardhat" ] - }, - { - "group": "Oracles", - "pages": [ - "tooling/oracles/run", - "tooling/oracles/index", - "tooling/oracles/band-protocol", - "tooling/oracles/chainlink-oracles", - "tooling/oracles/redstone", - "tooling/oracles/supra", - "tooling/oracles/quex-oracles" - ] - }, - { - "group": "Plumo", - "pages": [ - "tooling/plumo/index", - "tooling/plumo/verification-phase-1", - "tooling/plumo/verification-phase-2" - ] - }, - { - "group": " ", - "pages": ["tooling/bridges/cross-chain-messaging"] } ] }, @@ -1459,7 +1445,7 @@ }, { "source": "/developer-guide/forno", - "destination": "/network/node/forno" + "destination": "/tooling/nodes/forno" }, { "source": "/developer-guide/integrations/checklist", @@ -1610,8 +1596,8 @@ "destination": "/developer" }, { - "source": "/developer-resources/forno/inde", - "destination": "/network/node/forno" + "source": "/developer-resources/forno/index", + "destination": "/tooling/nodes/forno" }, { "source": "/developer-resources/integrations/checklist", @@ -1643,15 +1629,15 @@ }, { "source": "/developer-resources/networks/alfajores-testnet", - "destination": "/network/celo-sepolia" + "destination": "/build-on-celo/network-overview" }, { "source": "/developer-resources/networks/baklava-testnet", - "destination": "/network/baklava" + "destination": "/build-on-celo/network-overview" }, { "source": "/developer-resources/networks/celo-mainnet", - "destination": "/network/mainnet" + "destination": "/build-on-celo/network-overview" }, { "source": "/developer-resources/overview", @@ -1807,15 +1793,15 @@ }, { "source": "/getting-started/alfajores-testnet", - "destination": "/network" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/alfajores-testnet/faucet", - "destination": "/network/celo-sepolia/faucet" + "destination": "https://faucet.celo.org/celo-sepolia" }, { "source": "/getting-started/alfajores-testnet/index", - "destination": "/network/celo-sepolia" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/alfajores-testnet/running-a-full-node-in-alfajores", @@ -1823,15 +1809,15 @@ }, { "source": "/getting-started/alfajores-testnet/using-the-mobile-wallet", - "destination": "/network/celo-sepolia" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/baklava-testnet", - "destination": "/network" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/baklava-testnet/index", - "destination": "/network/baklava" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/baklava-testnet/running-a-full-node", @@ -1847,7 +1833,7 @@ }, { "source": "/getting-started/choosing-a-network", - "destination": "/network" + "destination": "/build-with-celo/network-overview" }, { "source": "/getting-started/glossary", @@ -1855,15 +1841,15 @@ }, { "source": "/getting-started/hosted-nodes", - "destination": "/network/node/overview" + "destination": "/tooling/nodes/overview" }, { "source": "/getting-started/mainnet", - "destination": "/network" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/mainnet/index", - "destination": "/network/mainnet" + "destination": "/build-with-celo/network-overview" }, { "source": "/getting-started/mainnet/running-a-full-node-in-mainnet", @@ -1875,7 +1861,7 @@ }, { "source": "/getting-started/rc1", - "destination": "/network/mainnet" + "destination": "/build-with-celo/network-overview" }, { "source": "/getting-started/rc1/running-a-full-node-in-rc1", @@ -1991,27 +1977,27 @@ }, { "source": "/important-information/alfajores-testnet-disclaimer", - "destination": "/network/celo-sepolia" + "destination": "/build-on-celo/network-overview" }, { "source": "/important-information/baklava-testnet-disclaimer", - "destination": "/network/baklava/disclaimer" + "destination": "/build-with-celo/network-overview" }, { "source": "/important-information/mainnet-testnet-disclaimer", - "destination": "/network/mainnet" + "destination": "/build-with-celo/network-overview" }, { "source": "/important-information/rc-network-disclaimer", - "destination": "/network/mainnet" + "destination": "/build-with-celo/network-overview" }, { "source": "/network#celo-alfajores-l2-testnet", - "destination": "/network" + "destination": "/build-on-celo/network-overview" }, { "source": "/network#celo-baklava-l2-testnet", - "destination": "/network" + "destination": "/build-with-celo/network-overview" }, { "source": "/network/alfajores/run-full-node", @@ -2019,7 +2005,7 @@ }, { "source": "/network/alfajores/faucet", - "destination": "/network/celo-sepolia/faucet" + "destination": "https://faucet.celo.org/celo-sepolia" }, { "source": "/network/baklava/run-full-node", @@ -2047,7 +2033,7 @@ }, { "source": "/network/node/run-hosted", - "destination": "/network/node/overview" + "destination": "/tooling/nodes/overview" }, { "source": "/network/node/run-mainnet", @@ -2231,7 +2217,7 @@ }, { "source": "/v/master/developer-guide/overview/introduction/forno", - "destination": "/network/node/forno" + "destination": "/tooling/nodes/forno" }, { "source": "/v/master/developer-guide/start", @@ -2247,7 +2233,7 @@ }, { "source": "/v/master/getting-started/baklava-testnet", - "destination": "/network" + "destination": "/build-with-celo/network-overview" }, { "source": "/validator-guide/attestation-service", @@ -2683,7 +2669,7 @@ }, { "source": "/network", - "destination": "/tooling/overview/network-overview" + "destination": "/tooling/network-overview" }, { "source": "/network/alfajores", @@ -2719,11 +2705,11 @@ }, { "source": "/network/mainnet", - "destination": "/tooling/testnets/mainnet" + "destination": "/build-on-celo/network-overview" }, { "source": "/network/mainnet/:slug*", - "destination": "/tooling/testnets/mainnet/:slug*" + "destination": "/build-on-celo/network-overview" }, { "source": "/network/node/:slug*", @@ -2903,7 +2889,7 @@ }, { "source": "/learn/topology-of-a-celo-network", - "destination": "/tooling/overview/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/learn/why-celo", @@ -3043,11 +3029,23 @@ }, { "source": "/tooling/overview/network-overview", - "destination": "/build-on-celo/overview/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/tooling/wallets/staking", "destination": "/contribute-to-celo/community-rpc-nodes/how-it-works" + }, + { + "source": "/tooling/plumo/index", + "destination": "/home/index" + }, + { + "source": "/tooling/plumo/verification-phase-1", + "destination": "/home/index" + }, + { + "source": "/tooling/plumo/verification-phase-2", + "destination": "/home/index" } ], "footer": { diff --git a/home/celo.mdx b/home/celo.mdx index a3e2bdec1..f3dd33af3 100644 --- a/home/celo.mdx +++ b/home/celo.mdx @@ -85,7 +85,7 @@ description: "Celo is a leading Ethereum L2. As the frontier chain for global im Connect Celo to your application diff --git a/home/manage/asset.mdx b/home/manage/asset.mdx index eba0f38ae..db15178e1 100644 --- a/home/manage/asset.mdx +++ b/home/manage/asset.mdx @@ -24,7 +24,7 @@ This guide assumes: ## Choose a Node -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](/network/). +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](/build-on-celo/network-overview). ## Create an Account diff --git a/home/manage/self-custody.mdx b/home/manage/self-custody.mdx index cd4ecce8e..c7b8f2721 100644 --- a/home/manage/self-custody.mdx +++ b/home/manage/self-custody.mdx @@ -85,7 +85,7 @@ celocli --version And if not, upgrade by running the same command as above. -You will now need to point the Celo CLI to a node that is synchronized with the [Mainnet](/network) network. There are two options: +You will now need to point the Celo CLI to a node that is synchronized with the [Mainnet](/build-on-celo/network-overview) network. There are two options: - **Local Celo Blockchain node**: You can run a full node on your local machine which will communicate with other nodes and cryptographically verify all data it receives. Since this approach does not require you to trust the network, it is most secure. diff --git a/legacy/validator/voting.mdx b/legacy/validator/voting.mdx index b00df5e90..8b679f32d 100644 --- a/legacy/validator/voting.mdx +++ b/legacy/validator/voting.mdx @@ -53,7 +53,7 @@ As a CELO holder, you have the opportunity to impact the Celo network by voting - **Runs an Attestation Service**: The [Attestation Service](/legacy/protocol/identity/) is an important service that Validators can run that allows users to verify that they have access to a phone number and map it to an address. Supporting Validators that run this service makes it easier for new users to begin using Celo. -- **Runs a Validator on Baklava**: A group that runs a Validator on the [Baklava](/network/) helps maintain the testnet and verify that upgrades to the Celo Blockchain software can be deployed smoothly. +- **Runs a Validator on Baklava**: A group that runs a Validator on the [Baklava](/build-on-celo/network-overview) helps maintain the testnet and verify that upgrades to the Celo Blockchain software can be deployed smoothly. ### Community diff --git a/tooling/dev-environments/hardhat.mdx b/tooling/dev-environments/hardhat.mdx index 014702bb1..b22163339 100644 --- a/tooling/dev-environments/hardhat.mdx +++ b/tooling/dev-environments/hardhat.mdx @@ -46,7 +46,7 @@ If you choose to [Set up a Local Development Chain](/tooling/overview/setup/deve ### Connect to Testnet using Forno -Using [Forno](/network/node/forno) allows you to connect to the Celo test blockchain without running a local node. The testnet configuration uses Forno to connect you to the Celo Sepolia Testnet using HDWalletProvider and the mnemonic stored in your **.env** file. +Using [Forno](/tooling/nodes/forno) allows you to connect to the Celo test blockchain without running a local node. The testnet configuration uses Forno to connect you to the Celo Sepolia Testnet using HDWalletProvider and the mnemonic stored in your **.env** file. ```js celoSepolia: { @@ -65,7 +65,7 @@ Celo uses a different account derivation path than Ethereum, so you have to spec ### Connect to Mainnet using Forno -Using [Forno](/network/node/forno) also allows you to connect to the Celo main blockchain without running a local node. The Mainnet configuration uses Forno to connect you to the Celo Mainnet using HDWalletProvider and the mnemonic stored in your **.env** file. +Using [Forno](/tooling/nodes/forno) also allows you to connect to the Celo main blockchain without running a local node. The Mainnet configuration uses Forno to connect you to the Celo Mainnet using HDWalletProvider and the mnemonic stored in your **.env** file. ```js celo: { @@ -79,7 +79,7 @@ Using [Forno](/network/node/forno) also allows you to connect to the Celo main b ``` -[Forno](/network/node/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. +[Forno](/tooling/nodes/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. ## Deploy to Celo diff --git a/tooling/libraries-sdks/cli/index.mdx b/tooling/libraries-sdks/cli/index.mdx index 585ee317e..3a2358a1a 100644 --- a/tooling/libraries-sdks/cli/index.mdx +++ b/tooling/libraries-sdks/cli/index.mdx @@ -66,8 +66,8 @@ Commands need to connect to a Celo node to execute most functionality. You have several options for node connectivity: - [Running your own full node](/infra-partners/operators/run-node) -- [Third-party node providers](/network/node/overview) -- [Forno](/network/node/forno) (the easiest way) +- [Third-party node providers](/tooling/nodes/overview) +- [Forno](/tooling/nodes/forno) (the easiest way) To connect `celocli` to any node, use the following command: diff --git a/tooling/libraries-sdks/contractkit/setup.mdx b/tooling/libraries-sdks/contractkit/setup.mdx index 6b5b35f00..4a6da1410 100644 --- a/tooling/libraries-sdks/contractkit/setup.mdx +++ b/tooling/libraries-sdks/contractkit/setup.mdx @@ -50,7 +50,7 @@ You will need Node.js v18.x. ## Initializing the Kit -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](/network)) +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](/build-on-celo/network-overview)) ```ts import Web3 from "web3"; @@ -60,7 +60,7 @@ const web3 = new Web3("https://alfajores-forno.celo-testnet.org"); const kit = newKitFromWeb3(web3); ``` -Go to the [page about Forno](/network/node/forno) for details about different connection types and network endpoints. +Go to the [page about Forno](/tooling/nodes/forno) for details about different connection types and network endpoints. ## Initialize the Kit with your own node diff --git a/tooling/nodes/forno.mdx b/tooling/nodes/forno.mdx index 52fd242b8..92f82c270 100644 --- a/tooling/nodes/forno.mdx +++ b/tooling/nodes/forno.mdx @@ -15,7 +15,7 @@ Forno is a cLabs hosted node service for interacting with the Celo network. This **Best-Effort Service** -Forno is a free service with no terms of service or uptime guarantees, and is rate limited. For production applications or as your usage increases, consider [professional RPC and node providers](/network/node/overview#as-a-service) that can provide the desired level of support (SLA). +Forno is a free service with no terms of service or uptime guarantees, and is rate limited. For production applications or as your usage increases, consider [professional RPC and node providers](/tooling/nodes/overview#as-a-service) that can provide the desired level of support (SLA). 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. @@ -24,7 +24,7 @@ Forno is a public node, so to send transactions from a Forno connection you will ## Forno networks -Consult [this page](/network/) to determine which network is right for you. +Consult [this page](/build-on-celo/network-overview) to determine which network is right for you. ### Celo Mainnet diff --git a/tooling/nodes/overview.mdx b/tooling/nodes/overview.mdx index f55d3929c..a816bb40f 100644 --- a/tooling/nodes/overview.mdx +++ b/tooling/nodes/overview.mdx @@ -26,7 +26,7 @@ They are discoverable through the following: ## Forno -[Forno](/network/node/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. +[Forno](/tooling/nodes/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. 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 the historic state. diff --git a/tooling/overview/index.mdx b/tooling/overview/index.mdx index f41a484b3..0e5958d2c 100644 --- a/tooling/overview/index.mdx +++ b/tooling/overview/index.mdx @@ -16,7 +16,7 @@ Celo Composer allows you to quickly build, deploy, and iterate on decentralized ## Developer Tools -- [Nodes](/network/node/overview) +- [Nodes](/tooling/nodes/overview) - [Explorers](/developer/explorers/overview) - [Indexers](/developer/indexers/overview) - [Bridges](/developer/bridges) diff --git a/tooling/overview/setup/wallet.mdx b/tooling/overview/setup/wallet.mdx index f75f3b85f..1507a06a6 100644 --- a/tooling/overview/setup/wallet.mdx +++ b/tooling/overview/setup/wallet.mdx @@ -12,7 +12,7 @@ How to create and fund testnet wallets to use for developing Celo dApps. Make su While developing and deploying dApps on Celo, it’s helpful to have a wallet prepared with funds to pay for any transactions you make on the blockchain. These can be set up using either real or test funds, and this allows application developers and users to interact with Celo applications more easily. -This guide will focus on funding an account on MetaMask with Celo ([Celo Sepolia Testnet](/network) tokens). You can also use the [Celo Extension Wallet](/wallet/) if you prefer. Additionally, you can fund your wallet with real Celo if you would like to deploy to the Celo Mainnet. +This guide will focus on funding an account on MetaMask with Celo ([Celo Sepolia Testnet](/build-on-celo/network-overview) tokens). You can also use the [Celo Extension Wallet](/wallet/) if you prefer. Additionally, you can fund your wallet with real Celo if you would like to deploy to the Celo Mainnet. ## Download a Wallet diff --git a/tooling/plumo/index.mdx b/tooling/plumo/index.mdx deleted file mode 100644 index 67c6ddbd9..000000000 --- a/tooling/plumo/index.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Celo Plumo Ceremony -og:description: Overview of Plumo Ceremony. -sidebarTitle: "Overview" ---- - -Overview of Celo Plumo Ceremony, a ceremony that secured one of the most complex yet powerful SNARKs ever secured. - ---- - -## The Plumo Ceremony - -The Plumo Ceremony generated a trusted setup for KZG commitments over BW6-761 curve. The outcome can be used not only by cLabs, but also by any project that uses the BW6 curve with the Groth16 proving system or any other based on polynomial commitments. In fact, it was originally run for Celo Plumo and later reused for [Linea prover](https://l2beat.com/zk-catalog/lineaprover). The Ceremony had 55 participants and 8 rounds. - ---- - -## The Results - -The original Celo Plumo Ceremony had 2 phases. - -### Phase 1: The Powers of Tau - -This phase was circuit agnostic, meaning that anyone who wants to build a SNARK circuit can use the outputs from this phase to bootstrap their SNARK circuit. This means that the output is a wider public good, which can be highlighted as a contribution from the Celo community to the larger cryptography community. - -You can learn how to verify Phase 1 [here](./verification-phase-1). - -### Phase 2: The Plumo Snark - -The second part of the setup, Phase 2, is more specific to the Plumo SNARK circuit itself. This phase led to the outputs that enabled proving SNARKs and verifying them. This was not a public good, and was used specifically for Celo Plumo (now discontinued). - -You can learn how to verify Phase 2 [here](./verification-phase-2). - ---- - -## Assets - -- Repository with ceremony instructions: [celo-org/snark-setup](https://github.com/celo-org/snark-setup?tab=readme-ov-file). -- Archived link to the ceremony details: [Plumo Ceremony](https://web.archive.org/web/20221201203227/https://celo.org/plumo). -- Links to ceremony transcript: - - [Phase 1](https://console.cloud.google.com/storage/browser/plumoceremonyphase1). - - [Phase 2](https://console.cloud.google.com/storage/browser/plumoceremonyphase2). -- Link to ceremony verification code by Consensys: [Consensys/gnark-ignition-verifier](https://github.com/Consensys/gnark-ignition-verifier/blob/feat/celo_parser/celo/main.go). - - Backup at celo-org GitHub: [celo-org/plumo-ceremony-verifier](https://github.com/celo-org/plumo-ceremony-verifier) diff --git a/tooling/plumo/verification-phase-1.mdx b/tooling/plumo/verification-phase-1.mdx deleted file mode 100644 index 117eb5aeb..000000000 --- a/tooling/plumo/verification-phase-1.mdx +++ /dev/null @@ -1,193 +0,0 @@ ---- -title: Verifying Celo Plumo Phase 1 -og:description: Verifying Celo Plumo Phase 1. -sidebarTitle: "Verifying Phase 1" ---- - -How to verify the Celo Plumo Ceremony Phase 1. - ---- - -## Introduction - -Plumo Ceremony Phase 1 had 8 rounds in total. Stored files for the ceremony (available [here](https://console.cloud.google.com/storage/browser/plumoceremonyphase1)) follow the pattern `round.chunk_id.contribution_number.verifier_id`. For example file `1.0.14.0xe9053647d4bba6c53a88d1d012e0cf1af86c049f` refers to round 1, chunk ID 0, contribution number 14, verifier ID `0xe9053647d4bba6c53a88d1d012e0cf1af86c049f`. - -You can find references to round 9 in the stored chunks, but round 9 was never officially finalized. Please disregard files related to round 9. - -## Preparation - -What you will need: - - - Ceremony files, available [here](https://console.cloud.google.com/storage/browser/plumoceremonyphase1). - - Go verification script, by Consensys, available [here](https://github.com/Consensys/gnark-ignition-verifier/blob/feat/celo_parser/celo/main.go). - -### Ceremony Files - -All Ceremony files are available [here](https://console.cloud.google.com/storage/browser/plumoceremonyphase1). In order to verify a given round, you will need the following: - - - File related to the highest `contribution_number` for `chunk_id` `0` for the previous round. - - Files related to the highest `contribution_number` for each `chunk_id` from `0` to `127`, for the round you want to verify. - -For example, if you want to verify round 8 (previous round would be 7), you will need the following files: - - - 7.0.10.0x097a648556127e742f8c3bbab155ee368f00ca14 - - 8.0.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.1.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.2.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.3.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.4.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.5.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097 - - 8.6.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.7.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.8.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.9.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.10.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.11.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.12.18.0x097a648556127e742f8c3bbab155ee368f00ca14 - - 8.13.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.14.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.15.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.16.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.17.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a - - 8.18.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.19.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.20.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.21.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.22.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.23.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.24.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab - - 8.25.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.26.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.27.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a - - 8.28.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.29.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.30.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a - - 8.31.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.32.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.33.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.34.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.35.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097 - - 8.36.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.37.18.0x097a648556127e742f8c3bbab155ee368f00ca14 - - 8.38.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab - - 8.39.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.40.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.41.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.42.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a - - 8.43.18.0x2095c929ec2a37cf57c997331da6cd60b047258a - - 8.44.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.45.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.46.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.47.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.48.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.49.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.50.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.51.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.52.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a - - 8.53.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a - - 8.54.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.55.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.56.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab - - 8.57.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.58.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.59.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.60.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.61.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.62.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.63.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.64.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.65.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab - - 8.66.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.67.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.68.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a - - 8.69.18.0x2095c929ec2a37cf57c997331da6cd60b047258a - - 8.70.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.71.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097 - - 8.72.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.73.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.74.18.0x5f748472f15a02231c869c567d28e3130ed1b46c - - 8.75.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.76.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.77.18.0x2095c929ec2a37cf57c997331da6cd60b047258a - - 8.78.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097 - - 8.79.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.80.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.81.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.82.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.83.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 - - 8.84.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.85.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.86.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.87.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.88.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.89.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.90.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.91.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.92.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.93.18.0x2095c929ec2a37cf57c997331da6cd60b047258a - - 8.94.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097 - - 8.95.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.96.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097 - - 8.97.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.98.18.0x5f748472f15a02231c869c567d28e3130ed1b46c - - 8.99.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.100.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.101.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be - - 8.102.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.103.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097 - - 8.104.18.0x5f748472f15a02231c869c567d28e3130ed1b46c - - 8.105.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.106.18.0x5f748472f15a02231c869c567d28e3130ed1b46c - - 8.107.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.108.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a - - 8.109.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.110.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.111.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 - - 8.112.18.0x2095c929ec2a37cf57c997331da6cd60b047258a - - 8.113.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a - - 8.114.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed - - 8.115.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a - - 8.116.18.0x097a648556127e742f8c3bbab155ee368f00ca14 - - 8.117.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.118.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.119.18.0x2095c929ec2a37cf57c997331da6cd60b047258a - - 8.120.18.0xdcc3013396a6fc966b911cdcce4984728f71444e - - 8.121.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.122.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab - - 8.123.18.0x3721615b340294677d0dad4a5454c1785d78b14e - - 8.124.18.0x097a648556127e742f8c3bbab155ee368f00ca14 - - 8.125.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 - - 8.126.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc - - 8.127.18.0x5f748472f15a02231c869c567d28e3130ed1b46c - -### Go verification script - -The Go verification script has some hardcoded numbers and paths: - - - The script expects the files above to exist in a directory `./rounds/` where the `main.go` file exists. This is defined at line 285 as `const roundsRootDir = "./rounds/"`. - - The script defines the round number being verified at lines 142 and 196. For example for round 8: - - Line 142: `if err := currChunk.read(8, 0); err != nil {` (8 refers to round number 8). - - Line 196: `if err := nextChunk.read(8, i); err != nil {` (8 refers to round number 8). - - Finally, the script also defines the previous round number at line 146. For example, if you are verifying round 8, the previous round is 7 so: - - Line 146: `if err := prevChunkPrevRound.read(7, 0); err != nil {` (7 refers to the previous round). - -## Executing the Verification Script - -Once you have all the necessary files in the correct directory, and the script tailored to the round you want to verify, you can run the script as: - -```bash -$ go run . --srs ./.srs -2025/09/30 07:44:14 opening file 8.0.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296 -2025/09/30 07:44:15 opening file 7.0.10.0x097a648556127e742f8c3bbab155ee368f00ca14 -2025/09/30 07:46:23 opening file 8.1.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1 -2025/09/30 07:47:30 opening file 8.2.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed -2025/09/30 07:48:39 opening file 8.3.18.0x7f2137fcc9c08381eff306f6f8138139ad961334 -2025/09/30 07:49:48 opening file 8.4.18.0xdcc3013396a6fc966b911cdcce4984728f71444e -... -2025/09/30 10:10:38 opening file 8.127.18.0x5f748472f15a02231c869c567d28e3130ed1b46c -2025/09/30 10:11:45 built srs of len 134217728 -2025/09/30 10:26:26 done validiting, writing SRS to disk -2025/09/30 10:31:02 done writing SRS to disk -``` - -The output file (e.g. `./.srs`) will be a KZG (Kate–Zaverucha–Goldberg) SRS (Structured Reference String) file for the given round. This SRS is “universal”: you can use it in any proving system that requires a KZG commitment setup (Groth16, PLONK, Marlin, etc.), provided it uses the same curve (BW6-761). diff --git a/tooling/plumo/verification-phase-2.mdx b/tooling/plumo/verification-phase-2.mdx deleted file mode 100644 index ff29395b0..000000000 --- a/tooling/plumo/verification-phase-2.mdx +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Verifying Celo Plumo Phase 2 -og:description: Verifying Celo Plumo Phase 2. -sidebarTitle: "Verifying Phase 2" ---- - -How to verify the Celo Plumo Ceremony Phase 2. - - -This page describes how to verify the Plumo Ceremony Phase 2, related to the historical Celo Layer 1 blockchain. It is useful as a theoretical exercise, but Plumo is not in use anymore because as of block height 31,056,500 (March 26, 2025, 3:00 AM UTC), Celo has transitioned to an Ethereum Layer 2. - - ---- - -## Introduction - -Plumo Ceremony Phase 2 had 10 rounds in total. Stored files for the ceremony are available [here](https://console.cloud.google.com/storage/browser/plumoceremonyphase2). - -## Preparation - -What you will need: - - - A Virtual Machine with at least 128 vCPUs and 864 GB memory (we used a `n2-highmem-128` VM in GCP). - - Disk space of at least 10 TB. - - The Plumo circuit, available [here](https://storage.googleapis.com/plumoceremonyphase2/plumo_circuit_150v_143e) as `plumo_circuit_150v_143e`. - - The initial file for Phase 2, available [here](https://storage.googleapis.com/plumoceremonyphase2/phase2_init_27p) as `phase2_init_27p`. - - The initial query file, available [here](https://storage.googleapis.com/plumoceremonyphase2/new_challenge.query) as `new_challenge.query`. - - The initial full file, available [here](https://storage.googleapis.com/plumoceremonyphase2/new_challenge.full) as `new_challenge.full`. - - The full transcript for Phase 2, available [here](https://storage.googleapis.com/plumoceremonyphase2/transcript_backup_with_beacon/full_transcript.json) as `full_transcript.json`. - - The [beacon hash](https://github.com/celo-org/celo-bls-snark-rs/issues/227), which was `50e6fa2d3e8ed9613bda92005c72193ebd6d0443d3c1b092ad9f569e531cc176`. - - The snark-setup-operator [repository](https://github.com/celo-org/snark-setup-operator). - -### Building the snark-setup-operator repository - -In Ubuntu, you will need the `build-essential` package, as well as Rust version 1.63.0: - -```bash -sudo apt-get install build-essential - -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -source $HOME/.cargo/env -rustup toolchain install 1.63.0 -rustup default 1.63.0 -``` - -Now, assuming you are at the root of the `snark-setup-operator` repository, just run: - -```bash -cargo build --release -``` - -## Executing the Verification Crate - -Once you have all the necessary files, and the Rust repository built, you can run (from the root of the `snark-setup-operator` repository): - -```bash -$ sudo target/release/verify_transcript --phase phase2 --beacon-hash 50e6fa2d3e8ed9613bda92005c72193ebd6d0443d3c1b092ad9f569e531cc176 --transcript-path --phase1-powers 27 --phase1-filename --circuit-filename --initial-query-filename --initial-full-filename -{"timestamp":"Oct 21 07:45:29.797","level":"INFO","fields":{"message":"verifying round 0"},"target":"verify_transcript"} -{"timestamp":"Oct 21 07:45:29.798","level":"INFO","fields":{"message":"Generating phase 2"},"target":"phase2_cli::new_challenge"} -{"timestamp":"Oct 21 07:53:14.746","level":"INFO","fields":{"message":"Loaded circuit with 133758430 constraints"},"target":"phase2_cli::new_challenge"} -{"timestamp":"Oct 21 07:53:14.932","level":"INFO","fields":{"message":"reading groth16 parameters..."},"target":"setup_utils::groth16_utils","span":{"name":"Groth16Utils_read"},"spans":[{"name":"Groth16Utils_read"}]} -{"timestamp":"Oct 21 07:55:30.961","level":"INFO","fields":{"message":"successfully read groth16 parameters"},"target":"setup_utils::groth16_utils","span":{"name":"Groth16Utils_read"},"spans":[{"name":"Groth16Utils_read"}]} -... -``` - -As the verification progresses, you will start seeing these lines: - -``` -... -{"timestamp":"Oct 21 09:57:21.795","level":"INFO","fields":{"message":"chunk 0 verified"},"target":"verify_transcript"} -... -{"timestamp":"Oct 21 10:01:02.423","level":"INFO","fields":{"message":"chunk 1 verified"},"target":"verify_transcript"} -... -{"timestamp":"Oct 22 00:08:54.549","level":"INFO","fields":{"message":"chunk 255 verified"},"target":"verify_transcript"} -{"timestamp":"Oct 22 00:08:54.549","level":"INFO","fields":{"message":"participants found in the transcript of round 0:\n0x9eec1def5ad49b8b239015fc40444b42c282ecf3\n0xca97ae6d16fc1476f00856c60bb0bc4e33722f2b\n0xf3c12b9df3e58ae5683639ae0badfb537720deb6\n0x5d32478f3c55c0865239d4e55134e4338cafb4e3\n0x7252af82efe17fb17f9d22f8f8fce11228212556\n0x0853e301c0e4669670d6a1bb16e134a7f2178ab8"},"target":"verify_transcript"} -{"timestamp":"Oct 22 00:08:54.580","level":"INFO","fields":{"message":"Verified round 0"},"target":"verify_transcript"} -{"timestamp":"Oct 22 00:08:54.580","level":"INFO","fields":{"message":"all rounds and chunks verified, aggregating"},"target":"verify_transcript"} -... -{"timestamp":"Oct 22 03:54:24.767","level":"INFO","fields":{"message":"Finished verification successfully!"},"target":"verify_transcript"} -``` - -Once you see a line with the content `Finished verification successfully!`, the verification has finished. From 863cebd89e85cf1e8f3764b7ac8a6ca8835bb7c3 Mon Sep 17 00:00:00 2001 From: GigaHierz Date: Tue, 27 Jan 2026 08:50:31 +0000 Subject: [PATCH 5/5] replace broken links --- docs.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs.json b/docs.json index d7948d089..6974c563c 100644 --- a/docs.json +++ b/docs.json @@ -1833,7 +1833,7 @@ }, { "source": "/getting-started/choosing-a-network", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/glossary", @@ -1849,7 +1849,7 @@ }, { "source": "/getting-started/mainnet/index", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/mainnet/running-a-full-node-in-mainnet", @@ -1861,7 +1861,7 @@ }, { "source": "/getting-started/rc1", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/getting-started/rc1/running-a-full-node-in-rc1", @@ -1981,15 +1981,15 @@ }, { "source": "/important-information/baklava-testnet-disclaimer", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/important-information/mainnet-testnet-disclaimer", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/important-information/rc-network-disclaimer", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/network#celo-alfajores-l2-testnet", @@ -1997,7 +1997,7 @@ }, { "source": "/network#celo-baklava-l2-testnet", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/network/alfajores/run-full-node", @@ -2233,7 +2233,7 @@ }, { "source": "/v/master/getting-started/baklava-testnet", - "destination": "/build-with-celo/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/validator-guide/attestation-service", @@ -2669,23 +2669,23 @@ }, { "source": "/network", - "destination": "/tooling/network-overview" + "destination": "/build-on-celo/network-overview" }, { "source": "/network/alfajores", - "destination": "/tooling/testnets/alfajores" + "destination": "/tooling/testnets/celo-sepolia" }, { "source": "/network/alfajores/:slug*", - "destination": "/tooling/testnets/alfajores/:slug*" + "destination": "/tooling/testnets/celo-sepolia/:slug*" }, { "source": "/network/baklava", - "destination": "/tooling/testnets/baklava" + "destination": "/tooling/testnets/celo-sepolia" }, { "source": "/network/baklava/:slug*", - "destination": "/tooling/testnets/baklava/:slug*" + "destination": "/tooling/testnets/celo-sepolia/:slug*" }, { "source": "/network/celo-sepolia",