### Ethers.js Quick Start Guide Source: https://docs.gnosischain.com/updates/archive/2021/xdai-weekly-recap-11-06-2021 A guide to getting started with Ethers.js, a popular JavaScript library for interacting with the Ethereum blockchain. It covers basic setup and usage for developers. ```javascript const { ethers } = require("ethers"); // Connect to an Ethereum provider (e.g., MetaMask, Infura) const provider = new ethers.providers.Web3Provider(window.ethereum); // Get the signer (the account that will send transactions) const signer = provider.getSigner(); // Example: Get the balance of an account async function getBalance(address) { const balance = await provider.getBalance(address); console.log(`Balance: ${ethers.utils.formatEther(balance)} ETH`); } // Example: Send a transaction (replace with actual contract interaction) async function sendTransaction(to, value) { const tx = await signer.sendTransaction({ to: to, value: ethers.utils.parseEther(value) }); await tx.wait(); console.log(`Transaction sent: ${tx.hash}`); } ``` -------------------------------- ### Install Geth Client Source: https://docs.gnosischain.com/node/manual/execution/geth Clones the go-ethereum repository and installs the Geth executable. This is the initial step to get the Geth client on your system. ```Shell > git clone https://github.com/gnosischain/go-ethereum > go install ./cmd/geth ``` -------------------------------- ### Install Eth-docker Prerequisites Source: https://docs.gnosischain.com/node/Node%20Tools/eth-docker This command installs the necessary prerequisites for eth-docker, including Docker, which is essential for running the Ethereum clients in containers. ```bash ./ethd install ``` -------------------------------- ### Environment Setup with Hardhat (Shell) Source: https://docs.gnosischain.com/developers/Build%20contracts%20on%20gnosis/nft Commands to set up a new project directory, initialize npm, install Hardhat, and configure it for use. This includes creating an empty Hardhat configuration file and installing the hardhat-toolbox plugin. ```Shell mkdir gnosis-nft cd gnosis-nft && npm init && npm install --save-dev hardhat && npx hardhat ``` ```Shell npm install --save-dev @nomicfoundation/hardhat-toolbox ``` -------------------------------- ### Install Bee Node using Wget Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm This command downloads and executes the official Swarm Bee installation script using wget. It allows specifying a version tag for the Bee release. ```Shell wget -q -O - https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.2.0 bash ``` -------------------------------- ### Start Eth-docker Node Source: https://docs.gnosischain.com/node/Node%20Tools/eth-docker After configuration, this command starts the Ethereum node services managed by eth-docker. It brings up the execution, consensus, and validator clients. ```bash ./ethd up ``` -------------------------------- ### Download Teku Binary Source: https://docs.gnosischain.com/node/manual Downloads the Teku source code tarball from a specified URL. This is a prerequisite for installation. ```Bash wget [URL_FROM_PREVIOUS_STEP] ``` -------------------------------- ### Install and Build Lodestar Packages Source: https://docs.gnosischain.com/node/manual Installs project dependencies and builds all packages within the cloned Lodestar repository using Yarn. This prepares the Lodestar client for execution. ```Shell cd lodestar yarn install yarn build ``` -------------------------------- ### Install Dependencies for Erigon (Linux/MacOS/Arm64) Source: https://docs.gnosischain.com/node/manual Installs necessary dependencies for building and running Erigon on Linux, MacOS, or Arm64 systems. Includes development tools and libraries. ```bash sudo apt-get update && sudo apt-get install libsnappy-dev libc6-dev libc6 libicu-dev unzip wget openssl git -y ``` -------------------------------- ### Install Bee Node using Curl Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm This command downloads and executes the official Swarm Bee installation script using curl. It allows specifying a version tag for the Bee release. ```Shell curl -s https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.2.0 bash ``` -------------------------------- ### Install Dependencies for Nethermind (Linux/MacOS/Arm64) Source: https://docs.gnosischain.com/node/manual Installs necessary dependencies for running Nethermind on Linux, MacOS, or Arm64 systems. This includes snappy, libc6, and unzip. ```bash sudo apt-get update && sudo apt-get install libsnappy-dev libc6-dev libc6 unzip -y ``` -------------------------------- ### Install Privy React SDK Source: https://docs.gnosischain.com/technicalguides/custom-signers/privy This command installs the latest version of the Privy React SDK, which is required for integrating Privy authentication into your React-based Web3 application. ```bash npm install @privy-io/react-auth@latest ``` -------------------------------- ### Ethers.js Quick Start Guide for xDai Source: https://docs.gnosischain.com/updates/archive/2021/xdai-weekly-recap-11-06-2021 A guide for developers on using the Ethers.js library, a lightweight and user-friendly JavaScript library for interacting with the Ethereum blockchain, suitable for new developers on the xDai chain. ```javascript https://twitter.com/xdaichain/status/1402709981074538497 ``` -------------------------------- ### Start Bee Node with Configuration Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm This command starts a Bee node with specified configurations for password, node mode, SWAP enablement, API address, and blockchain RPC endpoint. It's essential for setting up a node on the Gnosis Chain. ```bash bee start \ --password flummoxedgranitecarrot \ --full-node \ --swap-enable \ --api-addr 127.0.0.1:1633 \ --blockchain-rpc-endpoint https://xdai.fairdatasociety.org ``` -------------------------------- ### Verify Bee Installation Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm This command checks if the Bee node installation was successful by displaying the Bee version and usage information. ```Shell bee ``` -------------------------------- ### Initialize Envio Indexer Project Source: https://docs.gnosischain.com/tools/Data%20Indexing/envio This snippet demonstrates the interactive command-line interface for initializing a new Envio indexer project. It guides the user through selecting a starting template (e.g., Blank, Greeter, ERC-20) and choosing a programming language (JavaScript, TypeScript, ReScript) for event handlers. ```bash envio init ``` -------------------------------- ### Configure Eth-docker Clients Source: https://docs.gnosischain.com/node/Node%20Tools/eth-docker This command initiates the configuration process for eth-docker. It guides the user through selecting network, client types (consensus, execution), checkpoint sync options, MEV Boost, and Grafana dashboard. ```bash ./ethd config ``` -------------------------------- ### Install ZeroDev Packages Source: https://docs.gnosischain.com/technicalguides/account-abstraction/zerodev-guide Installs the necessary ZeroDev packages for React implementation, along with viem and react-query. ```bash npm install @zerodev/waas viem@2.x @tanstack/react-query ``` -------------------------------- ### Start Lighthouse Validator Client Source: https://docs.gnosischain.com/node/manual Starts the Lighthouse validator client for the Gnosis network. It includes options for enabling doppelganger protection, setting a suggested fee recipient, enabling metrics, and configuring graffiti. ```Bash ./lighthouse validator_client \ --network gnosis \ --datadir validators \ --enable-doppelganger-protection \ --suggested-fee-recipient="0x0" \ --metrics \ --metrics-address=0.0.0.0 \ --metrics-port=5064 \ --graffiti "gnosis-docs-graffiti" ``` -------------------------------- ### Local Dev Setup with Hardhat and Viem Source: https://docs.gnosischain.com/technicalguides/Pectra/eip-7702 Provides commands to set up a local development environment for EIP-7702. It includes installing Hardhat, initializing a new project with ESM and Viem support, and installing necessary dependencies like dotenv and OpenZeppelin contracts. ```shell # Node.js ≥ 22 npm i -g hardhat@next # Hardhat 3 Alpha mkdir eip7702-demo && cd $_ npm init -y npx hardhat@next --init # enable ESM, Node test runner, Viem npm i viem dotenv @openzeppelin/contracts ``` -------------------------------- ### Install The Graph CLI Source: https://docs.gnosischain.com/tools/Data%20Indexing/the-graph Installs the Graph CLI globally on your local machine, which is necessary for initializing and managing subgraphs. ```bash npm install -g @graphprotocol/graph-cli ``` -------------------------------- ### Start Bee Full Node on Gnosis Chain Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm This command starts the Bee process as a full node on the Gnosis Chain. It requires specific parameters such as password, enabling full node and swap functionalities, API address, and the blockchain RPC endpoint. Ensure you have the required tokens (~0.1 xDAI and 10 xBZZ) before running this command. ```bash bee start \ --password flummoxedgranitecarrot \ --full-node \ --swap-enable \ --api-addr 127.0.0.1:1633 \ --blockchain-rpc-endpoint https://xdai.fairdatasociety.org ``` -------------------------------- ### Deploy Contracts with Cookbook on Gnosis Chain Source: https://docs.gnosischain.com/category/deploy-contracts-on-gnosis This section guides developers on using Cookbook, a resource for smart contract development, to deploy contracts on the Gnosis Chain. It provides instructions and examples for using Cookbook. ```bash Using Cookbook with Gnosis ``` -------------------------------- ### Install Gnosis Dapp Boilerplate Source: https://docs.gnosischain.com/technicalguides/Pectra/eip-5792 Instructions to clone the Gnosis Dapp Boilerplate repository and install its dependencies using npm. ```bash git clone https://github.com/gnosischain/gnosis-dapp-boilerplate cd gnosis-dapp-boilerplate npm install ``` -------------------------------- ### Initialize and Install Hardhat Dependencies Source: https://docs.gnosischain.com/developers/Build%20contracts%20on%20gnosis/full-stack-dapp This snippet demonstrates the initial steps to set up a new project directory, initialize it with npm, and install Hardhat as a development dependency. It also includes installing necessary plugins for Hardhat, such as Waffle and Ethers.js, which are crucial for smart contract development and interaction. ```bash mkdir gnosis-full-stack-dapp cd gnosis-full-stack-dapp npm init -y npm install --save-dev hardhat@2.9.9 npx hardhat npm install --save-dev @nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers ethers ``` -------------------------------- ### Interact with EasyStaking on Gnosis Chain Source: https://docs.gnosischain.com/updates/archive/2020/xdai-weekly-recap-07-08-2020 This snippet provides the URL to the EasyStaking application on the Gnosis Chain, allowing users to stake value. It also mentions a guide for getting started and participation through Uniswap liquidity pools. ```URL https://easy-staking.xdaichain.com/ ``` ```URL https://uniswap.info/pair/0x3B3d4EeFDc603b232907a7f3d0Ed1Eea5C62b5f7 ``` -------------------------------- ### Run Reth Node with Docker (Gnosis Mainnet) Source: https://docs.gnosischain.com/node/manual/execution/reth Starts the Reth node using Docker for the Gnosis mainnet. This command configures network settings, HTTP API, and authentication for a full node setup. ```Shell docker run --network host -v $PWD/reth_data:/data ghcr.io/gnosischain/reth_gnosis:v0.1.0 node -vvvv --chain gnosis --datadir /data --http --http.port=8545 --http.addr=0.0.0.0 --http.corsdomain='*' --http.api=admin,net,eth,web3,debug,trace --authrpc.port=8546 --authrpc.addr=0.0.0.0 --authrpc.jwtsecret=/data/jwtsecret --discovery.port=30303 --discovery.addr=0.0.0.0 ``` -------------------------------- ### Clone @widget-examples Repository Source: https://docs.gnosischain.com/technicalguides/DeFi/Deploy%20A%20Cow%20Swap%20Widget Clones the widget-examples repository from GitHub, which contains code examples for deploying Cow Swap swap frontends. This is the first step in setting up your own swap interface. ```bash git clone https://github.com/cowprotocol/widget-examples.git cd widget-examples ``` -------------------------------- ### Download Lighthouse Binary Source: https://docs.gnosischain.com/node/manual Downloads the Lighthouse beacon node binary for your operating system using wget. Replace '[URL_FROM_PREVIOUS_STEP]' with the actual download URL. ```Bash wget [URL_FROM_PREVIOUS_STEP] ``` -------------------------------- ### Install Dependencies with npm Source: https://docs.gnosischain.com/technicalguides/DeFi/Deploy%20A%20Cow%20Swap%20Widget Installs the necessary project dependencies using npm. This command should be run after navigating into the cloned widget-examples directory. ```bash npm install ``` -------------------------------- ### Reth Binary State Download and Import Source: https://docs.gnosischain.com/updates/2025/05/07/core-devs-call Details the removal of the setup script in Reth, with state download and import now handled directly from within the binary. This change aims to streamline the client's setup process. ```Rust fn main() { // Simulate the process of downloading and importing state from within the binary println!("Reth: State download and import now handled from within the binary."); // In a real scenario, this would involve calling internal functions or modules // that manage state synchronization and processing. } ``` -------------------------------- ### Deploy Smart Contract using Cookbook Source: https://docs.gnosischain.com/developers/dev-environment/cookbook This guide demonstrates how to deploy a smart contract using the 'Simply Deploy' option in the Cookbook marketplace. It covers selecting a contract, configuring it, choosing the Gnosis Chain network, and signing the transaction. ```text 1. Navigate to Cookbook and search for the desired smart contract. 2. Select the 'Simply Deploy' option. 3. Configure the smart contract parameters. 4. Pick the Gnosis Chain network. 5. Click 'Deploy' and sign the transaction, ensuring sufficient xDAI balance. ``` -------------------------------- ### Deploy Hello World Contract on Gnosis Chain Source: https://docs.gnosischain.com/developers/quickstart A simple 'Hello World' smart contract written in Solidity that can store and update a string value. This contract is intended for deployment on the Gnosis Chain, specifically the Chiado testnet. ```Solidity // SPDX-License-Identifier: MIT pragma solidity 0.8.22; contract HelloWorld { string public value; constructor(string memory initialValue) { value = initialValue; } function updateName(string memory newValue) public { value = newValue; } } ``` -------------------------------- ### Burner Wallet Tutorials Source: https://docs.gnosischain.com/updates/archive/2020/xdai-weekly-recap-05-08-2020 Instructions and tutorials for using basic features of the Burner Wallet, a simplified wallet solution. This is in preparation for upcoming burner-based giveaways. ```text xdai.org ``` -------------------------------- ### Clone Eth-docker Repository Source: https://docs.gnosischain.com/node/Node%20Tools/eth-docker This command clones the eth-docker repository from GitHub and navigates into the newly created directory. It is the first step in setting up the Ethereum node. ```bash cd ~ && git clone https://github.com/ethstaker/eth-docker.git && cd eth-docker ``` -------------------------------- ### Install OpenZeppelin Contracts Source: https://docs.gnosischain.com/developers/Build%20contracts%20on%20gnosis/nft This command installs the OpenZeppelin Contracts library, which provides secure and standard implementations of smart contracts like ERC721, using npm. ```bash npm install @openzeppelin/contracts ``` -------------------------------- ### Install and Configure UFW Firewall Source: https://docs.gnosischain.com/node/manual/configure-server Installs the Uncomplicated Firewall (UFW) and sets default rules to deny incoming traffic while allowing outgoing traffic. This is a crucial security step for servers exposed to the internet. ```bash $ sudo apt install ufw $ sudo ufw default deny incoming $ sudo ufw default allow outgoing ``` -------------------------------- ### Install Gnosis Chain Validator Clients with DAppNode Source: https://docs.gnosischain.com/node/Node%20Tools/dappnode This section outlines the steps to install the necessary execution and consensus clients for Gnosis Chain validation using the DAppNode UI. It includes selecting Nethermind for execution and options like Teku, Lighthouse, or Prysm for consensus, along with web3signer for keystore management. ```bash 1. Select the execution client: Nethermind-xdai. 2. Select the consensus client: Teku-gnosis, Lighthouse-gnosis, or Prysm-gnosis. 3. Install the web3signer. ``` -------------------------------- ### Set up Hardhat Environment for Gnosis Token Source: https://docs.gnosischain.com/developers/Build%20contracts%20on%20gnosis/token Initializes a new project directory, sets up npm, installs Hardhat and Hardhat Toolbox, and configures Hardhat for deployment on the Gnosis Chain. ```bash mkdir gnosis-token-example cd gnosis-token-example && npm init && npm install --save-dev hardhat && npx hardhat # Select 'Create an empty hardhat.config.js' and hit enter. npm install --save-dev @nomicfoundation/hardhat-toolbox ``` -------------------------------- ### Start Gnosis Chain Full Node Source: https://docs.gnosischain.com/node/participate-validator/swarm/b-docker-swarm This command starts the Docker container for the Gnosis Chain full node. Ensure the container name 'bee-1' is correct for your setup. This action initiates the node's synchronization process and smart contract interactions. ```bash docker start bee-1 ``` -------------------------------- ### Bee Node Started in Full Mode Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm This log message confirms that the Bee node has successfully started in full node mode and is beginning to sync all necessary data chunks. It also indicates that no name resolution service was provided. ```json "time"="2024-09-24 22:30:19.154067" "level"="info" "logger"="node" "msg"="starting in full mode" "time"="2024-09-24 22:30:19.155320" "level"="info" "logger"="node/multiresolver" "msg"="name resolver: no name resolution service provided" ``` -------------------------------- ### Chainlink Tutorial for xDai Support Source: https://docs.gnosischain.com/updates/archive/2021/xdai-weekly-recap-09-04-2021 Chainlink continues to support xDai by providing a new tutorial on their blog. This resource likely guides users on integrating or utilizing Chainlink services with xDai. ```text Chainlink continues their support for xDai with a new tutorial on their blog. https://twitter.com/chainlink/status/1379498202555121664 ``` -------------------------------- ### Start Teku Validator Client Source: https://docs.gnosischain.com/node/manual Starts the Teku validator client for the Gnosis network. This command includes configurations for the execution engine endpoint, JWT secret file, metrics, REST API, initial state, proposer fee recipient, validator keys, and graffiti. ```Bash ./bin/teku \ --network=gnosis \ --ee-endpoint=http://localhost:8551 \ --ee-jwt-secret-file=${PATH_TO_JWT_SECRET} \ --metrics-enabled=true \ --rest-api-enabled=true \ --initial-state=https://checkpoint.gnosis.gateway.fm//eth/v2/debug/beacon/states/finalized \ --validators-proposer-default-fee-recipient=${Fee Recipient Address} \ --validator-keys=${path to key file}:${path to password file} --validators-graffiti=${GRAFFITI} ``` -------------------------------- ### Download Nethermind Client (Linux/MacOS/Arm64) Source: https://docs.gnosischain.com/node/manual Downloads the Nethermind execution client package for Linux, MacOS, or Arm64. Replace '[URL_FROM_PREVIOUS_STEP]' with the actual download link. ```bash wget [URL_FROM_PREVIOUS_STEP] ``` -------------------------------- ### Start Bee Node in Background Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm This command starts the Bee node with specified configurations, including password, full node mode, swap enablement, API address, and blockchain RPC endpoint. It runs the process in the background using `nohup` and redirects output to `bee.log`. ```bash nohup bee start \ --password flummoxedgranitecarrot \ --full-node \ --swap-enable \ --api-addr 127.0.0.1:1633 \ --blockchain-rpc-endpoint https://xdai.fairdatasociety.org > bee.log 2>&1 & ``` -------------------------------- ### Fund Validators on Gnosis Chain Source: https://docs.gnosischain.com/node/Node%20Tools/dappnode This guide explains how to fund your validators on the Gnosis Chain. It involves visiting the Gnosis Chain deposit website, connecting a wallet, uploading a `deposit_data*.json` file, confirming the deposit amount and risks, and finally authorizing the transaction. ```Web3 Transaction Navigate to: https://deposit.gnosischain.com/ Connect your wallet. Upload the `deposit_data*.json` file. Click `Deposit`. Confirm understanding of risks. Click `Ok` and confirm the transaction in your wallet. ``` -------------------------------- ### Get Node Address from Logs Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm Extracts the Gnosis Chain node address from the log output. This address is crucial for receiving funds. ```Log "time"="2024-09-24 18:15:34.520716" "level"="info" "logger"="node" "msg"="using ethereum address" "address"="0x1A801dd3ec955E905ca424a85C3423599bfb0E66" ``` -------------------------------- ### Create and Navigate to Contracts Directory Source: https://docs.gnosischain.com/developers/Build%20contracts%20on%20gnosis/nft This snippet demonstrates how to create a new directory named 'contracts' and then create a new file named 'GnosisNft.sol' within that directory using bash commands. ```bash mkdir contracts cd contracts && touch GnosisNft.sol ``` -------------------------------- ### Start and Manage Nethermind Docker Container Source: https://docs.gnosischain.com/node/manual/execution/nethermind Commands to navigate to the Gnosis directory, pull the latest Nethermind image, stop the existing container, and restart it with updated configurations. ```bash cd /home/$USER/gnosis docker-compose pull docker-compose stop docker-compose up -d ``` -------------------------------- ### Clone Gnosis Chain Configuration Repository Source: https://docs.gnosischain.com/node/manual Clones the Gnosis Chain configuration repository from GitHub. This repository likely contains necessary configuration files or scripts for running nodes. ```Bash git clone https://github.com/gnosischain/configs.git ``` -------------------------------- ### Run Reth Node with Docker (Chiado) Source: https://docs.gnosischain.com/node/manual/execution/reth Starts the Reth node using Docker for the Chiado testnet. It mounts the local data directory and specifies the JWT secret for authentication. ```Shell docker run -v ./reth_data:/data ghcr.io/gnosischain/reth_gnosis:v0.1.0 node --chain chiado --datadir /data --authrpc.jwtsecret=/data/jwtsecret ``` -------------------------------- ### SubQuery Docker Compose Commands Source: https://docs.gnosischain.com/tools/Data%20Indexing/subquery Pulls the necessary Docker images and starts the SubQuery project's indexer, PostgreSQL database, and query service. Requires Docker to be installed and running. ```bash docker-compose pull && docker-compose up ``` -------------------------------- ### Launch Bashtop for Process Monitoring Source: https://docs.gnosischain.com/node/participate-validator/swarm/a-quickstart-swarm Launches the 'bashtop' command-line tool, which allows users to monitor system processes, including the Bee node. Users can filter by 'bee' to find the specific process. ```bash bashtop ``` -------------------------------- ### Deploy Contracts using Foundry Source: https://docs.gnosischain.com/developers/Overview This section outlines the process of deploying smart contracts on Gnosis Chain using the Foundry framework. It includes setup and deployment commands. ```Shell # Ensure you have Foundry installed and your project set up. # Compile your contracts forge build # Deploy your contract to Gnosis Chain forge create --rpc-url https://rpc.gnosischain.com/ --private-key YOUR_PRIVATE_KEY src/MyContract.sol:MyContract ``` -------------------------------- ### Deploy Contracts with Foundry on Gnosis Chain Source: https://docs.gnosischain.com/category/deploy-contracts-on-gnosis This section guides developers on using Foundry, a fast and flexible Ethereum development toolkit, to deploy smart contracts on the Gnosis Chain. It covers the setup and deployment process. ```bash Using Foundry with Gnosis ``` -------------------------------- ### Deploy Contracts using Foundry Source: https://docs.gnosischain.com/developers/overview This section outlines the process of deploying smart contracts on Gnosis Chain using the Foundry framework. It includes setup and deployment commands. ```Shell # Ensure you have Foundry installed and your project set up. # Compile your contracts forge build # Deploy your contract to Gnosis Chain forge create --rpc-url https://rpc.gnosischain.com/ --private-key YOUR_PRIVATE_KEY src/MyContract.sol:MyContract ``` -------------------------------- ### Install Gelato Relay Kit Source: https://docs.gnosischain.com/technicalguides/account-abstraction/Safe%20and%20supported%20AA%20infra%20providers/gelato Installs the necessary Gelato Relay Kit package using npm for integration with Safe. ```bash npm install @safe-global/relay-kit ``` -------------------------------- ### Download ETHstaker Deposit CLI (Linux/MacOS/Arm64) Source: https://docs.gnosischain.com/node/manual Downloads the ETHstaker Deposit CLI tool for Linux, MacOS, or Arm64 systems using wget. This is the first step in generating validator keys. ```bash wget [URL_FROM_PREVIOUS_STEP] ``` -------------------------------- ### Integrate PrivyProvider in Next.js Layout Source: https://docs.gnosischain.com/technicalguides/custom-signers/privy This example shows how to wrap your Next.js application with the PrivyProvider in the root layout file (layout.tsx). This ensures that Privy's authentication context is available throughout the application. It also includes basic metadata for the application. ```javascript import type { Metadata } from "next"; import PrivyProvider from "./components/privy"; export const metadata: Metadata = {{ title: "Gnosis App Demo", description: "Gnosis App Demo", }}; export default function RootLayout({ children, }: Readonly<{{ children: React.ReactNode }}>) {{ return (