### Install and Initialize Squid Widget Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/advanced-guides/cross-chain-transactions/swap-with-squid-widget.md This snippet demonstrates the complete setup process for the Squid Widget, including loading the script, defining the DOM container, and initializing the widget with specific chain and token configurations. ```html ``` ```html
``` ```javascript SquidWidget.init({ target: '#squid-widget', config: { integratorId: 'your-app-id', toChainId: 'XRPL_EVM_CHAIN_ID', toToken: 'XRP_CONTRACT_ADDRESS_ON_EVM', fromTokenList: ['ETH', 'USDC', 'MATIC'], enableRouterPriority: true, appearance: 'auto' } }); ``` -------------------------------- ### Cosmovisor: Install Go and Cosmovisor Source: https://docs.xrplevm.org/pages/operators/guides/upgrading-your-node.md Installs Go and then uses `go install` to install the latest version of Cosmovisor. It also verifies the installation by checking the help output. ```bash sudo apt-get update sudo apt-get install -y golang-go sudo env GOBIN=/usr/local/bin go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest /usr/local/bin/cosmovisor --help >/dev/null ``` -------------------------------- ### Install Genesis Binary Source: https://docs.xrplevm.org/pages/operators/getting-started/sync-from-genesis.md Downloads and installs the initial binary version required to begin syncing from genesis. ```bash cd /tmp wget https://github.com/xrplevm/node/releases/download/v7.0.0/node_7.0.0_Linux_amd64.tar.gz tar -xzf node_7.0.0_Linux_amd64.tar.gz sudo mv bin/exrpd /usr/local/bin/exrpd sudo chmod +x /usr/local/bin/exrpd exrpd version ``` -------------------------------- ### Install and Initialize Foundry Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/deploy-the-smart-contract.md Commands to install the Foundry toolchain and initialize a new project structure. ```bash curl -L https://foundry.paradigm.xyz | bash foundryup forge init my-foundry-project cd my-foundry-project ``` -------------------------------- ### Install Prerequisites for exrpd Node Source: https://docs.xrplevm.org/pages/operators/getting-started/installing-the-node.md Installs essential tools required for building and running the exrpd node, including curl, wget, jq, lz4, build-essential, git, and rsync. This step is crucial before proceeding with node installation. ```bash sudo apt-get update sudo apt-get install -y curl wget jq lz4 build-essential git rsync ``` -------------------------------- ### Install Viem for XRPL EVM Development Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/advanced-guides/resolve-xrpl-domains.md This command installs the Viem library, a lightweight, modular, and type-safe web3 client for Ethereum, which is essential for interacting with the XRPL EVM. ```bash npm install viem ``` -------------------------------- ### Install Dependencies Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/advanced-guides/reown-dapp-example.md Installs the specific versions of Reown AppKit, Wagmi, and TanStack Query required for stable integration with XRPL EVM networks. ```bash npm install @reown/appkit@1.7.6 @reown/appkit-adapter-wagmi@1.7.6 @tanstack/react-query@5.81.5 wagmi@2.15.4 viem@2.30.0 ``` -------------------------------- ### Run Development Server Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/advanced-guides/reown-dapp-example.md Command to start the local development environment for the dApp. ```bash npm run dev ``` -------------------------------- ### Install web3.js Dependency Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/interact-with-the-smart-contract.md Installs the web3.js library via npm to enable programmatic interaction with EVM-compatible smart contracts. ```bash npm install web3 ``` -------------------------------- ### Solidity Smart Contract Example (Remix IDE) Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/deploy-the-smart-contract.md An example of a simple Solidity smart contract for a 'HelloWorld' application. This contract includes a constructor to set an initial message and a function to update the message. It is designed to be compiled and deployed using Remix IDE. ```solidity // SPDX-License-Identifier: MIT pragma solidity 0.8.24; contract HelloWorld { string public message; constructor(string memory _message) { message = _message; } function setMessage(string memory _message) public { message = _message; } } ``` -------------------------------- ### Start and Monitor XRPL EVM Node Source: https://docs.xrplevm.org/pages/operators/guides/upgrading-your-node.md Commands to start the exrpd service and monitor its logs using journalctl. This is a fundamental step for operating the node. ```bash sudo systemctl start exrpd sudo journalctl -u exrpd -f ``` -------------------------------- ### Initialize Hardhat Project (Bash) Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/deploy-the-smart-contract.md Commands to set up a new Hardhat project for smart contract development. This includes creating a project directory, initializing npm, installing Hardhat as a development dependency, and creating a basic Hardhat project structure. ```bash mkdir my-hardhat-project cd my-hardhat-project npm init -y npm install --save-dev hardhat npx hardhat ``` -------------------------------- ### Query Governance Proposals (Testnet) Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/using-the-api.md This example demonstrates how to query governance proposals on the XRPL EVM testnet using the CometBFT RPC interface. ```APIDOC ## GET /abci_query ### Description Queries the ABCI application for a specific path. ### Method GET ### Endpoint `/abci_query` ### Query Parameters - **path** (string) - Required - The query path, e.g., \"/cosmos.gov.v1.Query/Proposals\" ### Request Example ```bash curl -X GET 'http://cosmos.testnet.xrplevm.org:26657/abci_query?path="/cosmos.gov.v1.Query/Proposals"' -H "accept: application/json" ``` ### Response #### Success Response (200) - **jsonrpc** (string) - The JSON-RPC version. - **id** (integer) - The ID of the request. - **result** (object) - The result of the query. - **response** (object) - The ABCI query response. - **code** (integer) - The response code. - **log** (string) - The log message. - **info** (string) - Additional information. - **index** (string) - The index of the result. - **key** (string) - The key of the result. - **value** (string) - The value of the result. - **proofOps** (object) - Proof operations for verification. - **height** (string) - The block height at which the query was made. - **codespace** (string) - The codespace for the response. #### Response Example ```json { "jsonrpc": "2.0", "id": -1, "result": { "response": { "code": 0, "log": "", "info": "", "index": "0", "key": null, "value": "CqwCCAEShgEKKC9...dsZXR5am12cAESAhAx", "proofOps": null, "height": "13713161", "codespace": "" } } } ``` ``` -------------------------------- ### Install Reown AppKit Dependencies Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/next-steps.md Installs the necessary packages for Reown AppKit, Wagmi, and TanStack Query to enable wallet connectivity and blockchain interactions in a React/Next.js project. ```bash npm install @reown/appkit @reown/appkit-adapter-wagmi wagmi viem @tanstack/react-query yarn add @reown/appkit @reown/appkit-adapter-wagmi wagmi viem @tanstack/react-query ``` -------------------------------- ### Basic XRPL EVM Client Setup with Viem (TypeScript) Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/advanced-guides/resolve-xrpl-domains.md Sets up a basic Viem client to interact with the XRPL EVM. It defines the chain configuration for XRPL EVM and the ZNS Registry address, preparing for smart contract interactions. ```typescript import { createPublicClient, http, getAddress } from 'viem'; // Define XRPL EVM chain config const XRPL_EVM = { id: 1440000, name: 'XRPL EVM Sidechain', nativeCurrency: { name: 'XRP', symbol: 'XRP', decimals: 18 }, rpcUrls: { default: { http: ['https://rpc.xrplevm.org'] }, }, }; // ZNS Registry address (verified on mainnet) export const ZNS_REGISTRY = '0xf180136DdC9e4F8c9b5A9FE59e2b1f07265C5D4D'; // Create a public client for read operations export const publicClient = createPublicClient({ chain: XRPL_EVM, transport: http(XRPL_EVM.rpcUrls.default.http[0]), }); ``` -------------------------------- ### Upgrade exrpd from Source Source: https://docs.xrplevm.org/pages/operators/guides/upgrading-your-node.md Clones the XRPL EVM node repository, checks out a specific tag, builds the exrpd binary from source, and installs it. This is for users who build their own binaries. ```bash cd /tmp rm -rf node git clone https://github.com/xrplevm/node.git cd node git checkout make build sudo mv build/exrpd /usr/local/bin/exrpd sudo chmod +x /usr/local/bin/exrpd exrpd version ``` -------------------------------- ### Check exrpd Version Source: https://docs.xrplevm.org/pages/operators/guides/interacting-with-the-node-cli.md Displays the installed version of the exrpd binary to ensure compatibility. ```bash exrpd version ``` -------------------------------- ### Build exrpd from Source Source: https://docs.xrplevm.org/pages/operators/getting-started/installing-the-node.md Compiles the exrpd node from its source code. This process involves cloning the repository, ensuring the correct Go version is installed, and then running the make build command. ```bash sudo apt-get update sudo apt-get install -y golang-go git clone https://github.com/xrplevm/node.git cd node make build sudo mv build/exrpd /usr/local/bin/exrpd sudo chmod +x /usr/local/bin/exrpd exrpd version ``` -------------------------------- ### Initialize a New Subgraph with Goldsky CLI Wizard Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/use-goldsky-indexer/setup-indexer.md Launches the interactive CLI wizard to guide the user through the process of initializing a new subgraph. This includes setting names, versions, contract details, and other configurations. ```bash goldsky subgraph init ``` -------------------------------- ### Deploy XRPL EVM Node with Docker Source: https://docs.xrplevm.org/pages/operators/getting-started/installing-the-node.md Starts an XRPL EVM node container with persistent volume mapping and port forwarding. Requires the TARGET_TAG environment variable to be set. ```bash docker run -d \ --name xrplevm-node \ --restart unless-stopped \ -p 26657:26657 \ -v /root/.exrpd:/root/.exrpd \ --entrypoint exrpd \ peersyst/exrp:${TARGET_TAG} \ start ``` -------------------------------- ### Install ethers.js Dependency Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/interact-with-the-smart-contract.md Install the ethers.js library via npm to enable interaction with EVM-compatible blockchains. ```bash npm install ethers ``` -------------------------------- ### Install Skip Widget Dependency Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/advanced-guides/cross-chain-transactions/swap-with-skip-widget.md Installs the required npm package for the Skip Router widget into your React project. ```bash npm install @skip-router/widget-react ``` -------------------------------- ### Upgrade via Cosmovisor Source: https://docs.xrplevm.org/pages/operators/getting-started/sync-from-genesis.md Instructions for placing the new binary in the correct directory structure for Cosmovisor to handle the upgrade. ```bash chmod +x ~/.exrpd/cosmovisor/upgrades//bin/exrpd sudo systemctl restart cosmovisor-exrpd ``` -------------------------------- ### Load and Interact with Smart Contract using web3.js Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/interact-with-the-smart-contract.md Demonstrates how to instantiate a contract object using an ABI and address, then perform read and write operations. ```javascript const contractABI = [/* Your Contract ABI */]; const contractAddress = "0xYourContractAddress"; const contract = new web3.eth.Contract(contractABI, contractAddress); // Reading a public variable const result = await contract.methods.publicVariable().call(); console.log("Result:", result); // Sending a transaction const receipt = await contract.methods.setVariable("New Value").send({ from: "0xYourWalletAddress" }); console.log("Transaction Receipt:", receipt); ``` -------------------------------- ### Sample Workflow for Contract Interaction with Cast Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/interact-with-the-smart-contract.md Illustrates a complete workflow for interacting with a smart contract on the XRPL EVM using the 'cast' CLI. This includes reading initial data, updating a message, waiting for transaction confirmation, and decoding logs. ```bash source .env # 1) Read initial message on Mainnet cast call --rpc-url $RPC_URL_MAINNET \ --to $CONTRACT_ADDRESS "message()(string)" # 2) Update message on Mainnet cast send --rpc-url $RPC_URL_MAINNET \ --private-key $PRIVATE_KEY \ --chain-id $CHAIN_ID_MAINNET \ --to $CONTRACT_ADDRESS \ "setMessage(string)" "Deployed via Foundry" # 3) Wait & fetch receipt TX=$(cast send --rpc-url $RPC_URL_MAINNET \ --private-key $PRIVATE_KEY \ --chain-id $CHAIN_ID_MAINNET \ --to $CONTRACT_ADDRESS \ --wait \ "setMessage(string)" "Confirmed!") cast receipt --rpc-url $RPC_URL_MAINNET $TX # 4) Decode any logs (if emitted) cast parse-logs --abi $ABI_PATH receipts.json ``` -------------------------------- ### Install Dotenv for Hardhat (Bash) Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/deploy-the-smart-contract.md Installs the 'dotenv' npm package, which is commonly used in Hardhat projects to manage environment variables such as RPC URLs and private keys for network configurations. ```bash npm install dotenv ``` -------------------------------- ### Manage Wallets via CLI Source: https://docs.xrplevm.org/pages/operators/guides/interacting-with-the-node-cli.md Commands for creating, restoring, listing, and deleting wallets within the exrpd keyring. ```bash exrpd keys add $WALLET exrpd keys add $WALLET --recover exrpd keys list exrpd keys delete $WALLET exrpd query bank balances $WALLET_ADDRESS exrpd keys export $WALLET > wallet.backup exrpd keys unsafe-export-eth-key $WALLET exrpd keys import $WALLET wallet.backup ``` -------------------------------- ### Cosmovisor: Place and Copy Upgrade Binary Source: https://docs.xrplevm.org/pages/operators/guides/upgrading-your-node.md This snippet shows how to place a new binary for an on-chain upgrade into the correct Cosmovisor upgrade folder and set execute permissions. It assumes the upgrade name is known or derived from upgrade-info.json. ```bash DAEMON_HOME=${DAEMON_HOME:-~/.exrpd} mkdir -p "$DAEMON_HOME"/cosmovisor/upgrades//bin cp /usr/local/bin/exrpd "$DAEMON_HOME"/cosmovisor/upgrades//bin/exrpd chmod +x "$DAEMON_HOME"/cosmovisor/upgrades//bin/exrpd ``` -------------------------------- ### Initialize Mainnet Node Configuration Source: https://docs.xrplevm.org/pages/operators/getting-started/installing-the-node.md Configures and initializes a Mainnet node for exrpd. This includes setting the client chain ID, initializing the node with a moniker, downloading the Mainnet genesis file, and configuring peer connections. ```bash exrpd config set client chain-id xrplevm_1440000-1 exrpd init --chain-id xrplevm_1440000-1 wget -O ~/.exrpd/config/genesis.json https://raw.githubusercontent.com/xrplevm/networks/refs/heads/main/mainnet/genesis.json PEERS=$(curl -sL https://raw.githubusercontent.com/xrplevm/networks/main/mainnet/peers.txt | sort -R | head -n 10 | paste -sd, -) sed -i.bak -e "s/^seeds *=.*/seeds = \"${PEERS}\"" ~/.exrpd/config/config.toml ``` -------------------------------- ### CometBFT RPC Response Structure Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/using-the-api.md An example of the JSON response returned by the CometBFT RPC interface, containing the query result and metadata. ```json { "jsonrpc": "2.0", "id": -1, "result": { "response": { "code": 0, "log": "", "info": "", "index": "0", "key": null, "value": "CqwCCAEShgEKKC9...dsZXR5am12cAESAhAx", "proofOps": null, "height": "13713161", "codespace": "" } } } ``` -------------------------------- ### Upgrade via Docker Source: https://docs.xrplevm.org/pages/operators/getting-started/sync-from-genesis.md Commands to pull a new Docker image, remove the existing container, and start a new one with the updated version. ```bash docker pull peersyst/exrp: docker stop xrplevm-node && docker rm xrplevm-node sed -i.bak -E 's#^laddr = "tcp://127.0.0.1:26657"#laddr = "tcp://0.0.0.0:26657"#' ~/.exrpd/config/config.toml docker run -d --name xrplevm-node --restart unless-stopped \ -p 26657:26657 \ -v /root/.exrpd:/root/.exrpd --entrypoint exrpd peersyst/exrp: start ``` -------------------------------- ### Connect to XRPL EVM using web3.js Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/interact-with-the-smart-contract.md Initializes a web3 instance connected to either the XRPL EVM Mainnet or Testnet RPC endpoints. ```javascript const Web3 = require("web3"); // XRPL EVM RPC const web3 = new Web3("https://rpc.xrplevm.org"); ``` ```javascript const Web3 = require("web3"); // XRPL EVM Testnet RPC const web3 = new Web3("https://rpc.testnet.xrplevm.org"); ``` -------------------------------- ### Initialize Next.js Project Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/advanced-guides/reown-dapp-example.md Commands to scaffold a new Next.js project with TypeScript and Tailwind CSS support. This sets the foundation for the dApp development environment. ```bash npx create-next-app@latest my-xrpl-dapp --typescript --tailwind --app cd my-xrpl-dapp ``` -------------------------------- ### REST API (Testnet) Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/using-the-api.md Interact with the Cosmos SDK node using the REST API on Testnet. This example shows how to query for governance proposals. ```APIDOC ## GET /cosmos/gov/v1/proposals (REST Testnet) ### Description Queries the REST API for governance proposals on Testnet. ### Method GET ### Endpoint http://cosmos.testnet.xrplevm.org:1317/cosmos/gov/v1/proposals ### Parameters None ### Request Example ```bash curl -X GET "http://cosmos.testnet.xrplevm.org:1317/cosmos/gov/v1/proposals" -H "accept: application/json" ``` ### Response #### Success Response (200) - **proposals** (array) - List of governance proposals. - **pagination** (object) - Pagination details. #### Response Example ```json { "proposals": [ { "id": "49", "messages": [ { "@type": "/ethermint.evm.v1.MsgUpdateParams", "...": "..." } ], "status": "PROPOSAL_STATUS_PASSED", "...": "..." } ], "pagination": { "next_key": null, "total": "49" } } ``` ``` -------------------------------- ### Initialize Testnet Node Configuration Source: https://docs.xrplevm.org/pages/operators/getting-started/installing-the-node.md Configures and initializes a Testnet node for exrpd. This involves setting the client chain ID, initializing the node with a moniker, downloading the Testnet genesis file, and configuring peer connections. ```bash exrpd config set client chain-id xrplevm_1449000-1 exrpd init --chain-id xrplevm_1449000-1 wget -O ~/.exrpd/config/genesis.json https://raw.githubusercontent.com/xrplevm/networks/refs/heads/main/testnet/genesis.json PEERS=$(curl -sL https://raw.githubusercontent.com/xrplevm/networks/main/testnet/peers.txt | sort -R | head -n 10 | paste -sd, -) sed -i.bak -e "s/^seeds *=.*/seeds = \"${PEERS}\"" ~/.exrpd/config/config.toml ``` -------------------------------- ### Build and Test Commands Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/deploy-the-smart-contract.md Standard CLI commands to compile the project and execute unit tests. ```bash forge build forge test ``` -------------------------------- ### gRPC API (Testnet) Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/using-the-api.md Interact with the Cosmos SDK node using the gRPC interface on Testnet. This example shows how to query for governance proposals. ```APIDOC ## GET /cosmos/gov/v1/Query/Proposals (gRPC Testnet) ### Description Queries the gRPC server for governance proposals on Testnet. ### Method GRPC ### Endpoint cosmos.testnet.xrplevm.org:9090 ### Parameters None ### Request Example ```bash grpcurl -plaintext cosmos.testnet.xrplevm.org:9090 cosmos.gov.v1.Query/Proposals ``` ### Response #### Success Response (200) - **proposals** (array) - List of governance proposals. - **pagination** (object) - Pagination details. #### Response Example ```json { "proposals": [ { "id": "49", "messages": [ { "@type": "/ethermint.evm.v1.MsgUpdateParams", "...": "..." } ], "status": "PROPOSAL_STATUS_PASSED", "...": "..." } ], "pagination": { "total": "49" } } ``` ``` -------------------------------- ### REST API (Mainnet) Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/using-the-api.md Interact with the Cosmos SDK node using the REST API on Mainnet. This example shows how to query for governance proposals. ```APIDOC ## GET /cosmos/gov/v1/proposals (REST Mainnet) ### Description Queries the REST API for governance proposals on Mainnet. ### Method GET ### Endpoint http://cosmos.xrplevm.org:1317/cosmos/gov/v1/proposals ### Parameters None ### Request Example ```bash curl -X GET "http://cosmos.xrplevm.org:1317/cosmos/gov/v1/proposals" -H "accept: application/json" ``` ### Response #### Success Response (200) - **proposals** (array) - List of governance proposals. - **pagination** (object) - Pagination details. #### Response Example ```json { "proposals": [ { "id": "49", "messages": [ { "@type": "/ethermint.evm.v1.MsgUpdateParams", "...": "..." } ], "status": "PROPOSAL_STATUS_PASSED", "...": "..." } ], "pagination": { "next_key": null, "total": "49" } } ``` ``` -------------------------------- ### Development and Deployment Commands Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/next-steps.md Provides essential npm commands for running the development server locally (`npm run dev`) and building the application for production (`npm run build`). It also mentions deployment options on platforms like Vercel and Netlify. ```bash npm run dev # for localhost; browse http://localhost:3000 npm run build # production build ``` -------------------------------- ### gRPC API (Mainnet) Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/using-the-api.md Interact with the Cosmos SDK node using the gRPC interface on Mainnet. This example shows how to query for governance proposals. ```APIDOC ## GET /cosmos/gov/v1/Query/Proposals (gRPC Mainnet) ### Description Queries the gRPC server for governance proposals on Mainnet. ### Method GRPC ### Endpoint cosmos.xrplevm.org:9090 ### Parameters None ### Request Example ```bash grpcurl -plaintext cosmos.xrplevm.org:9090 cosmos.gov.v1.Query/Proposals ``` ### Response #### Success Response (200) - **proposals** (array) - List of governance proposals. - **pagination** (object) - Pagination details. #### Response Example ```json { "proposals": [ { "id": "49", "messages": [ { "@type": "/ethermint.evm.v1.MsgUpdateParams", "...": "..." } ], "status": "PROPOSAL_STATUS_PASSED", "...": "..." } ], "pagination": { "total": "49" } } ``` ``` -------------------------------- ### Verify Smart Contract using Forge Source: https://docs.xrplevm.org/pages/developers/interacting-with-evm/verify-the-smart-contract.md Installs the required etherscan support and executes the verification command for a deployed contract on the XRPL EVM network. ```bash forge install foundry-rs/forge-etherscan forge verify-contract \ --chain-id $CHAIN_ID \ --constructor-args "Hello, XRPL EVM!" \ --etherscan-api-key any-string \ \ HelloWorld \ $RPC_URL ``` -------------------------------- ### CometBFT RPC (Mainnet) Source: https://docs.xrplevm.org/pages/developers/interacting-with-cosmos/using-the-api.md Interact with the Cosmos SDK node using the CometBFT RPC interface on Mainnet. This example shows how to query for governance proposals. ```APIDOC ## GET /abci_query?path="/cosmos.gov.v1.Query/Proposals" (CometBFT RPC Mainnet) ### Description Queries the CometBFT RPC interface for governance proposals on Mainnet. ### Method GET ### Endpoint http://cosmos.xrplevm.org:26657/abci_query ### Parameters #### Query Parameters - **path** (string) - Required - The RPC method to call, e.g., "/cosmos.gov.v1.Query/Proposals". ### Request Example ```bash curl -X GET 'http://cosmos.xrplevm.org:26657/abci_query?path="/cosmos.gov.v1.Query/Proposals"' -H "accept: application/json" ``` ### Response #### Success Response (200) - **jsonrpc** (string) - JSON-RPC version. - **id** (integer) - Request ID. - **result** (object) - The result of the query. - **response** (object) - The ABCI query response. - **code** (integer) - Response code. - **log** (string) - Log message. - **info** (string) - Additional info. - **index** (string) - Index of the result. - **key** (string) - Key of the result. - **value** (string) - Value of the result. - **proofOps** (string) - Proof operations. - **height** (string) - Block height. - **codespace** (string) - Codespace. #### Response Example ```json { "jsonrpc": "2.0", "id": -1, "result": { "response": { "code": 0, "log": "", "info": "", "index": "0", "key": null, "value": "CqwCCAEShgEKKC9...dsZXR5am12cAESAhAx", "proofOps": null, "height": "13713161", "codespace": "" } } } ``` ``` -------------------------------- ### Upgrade exrpd Binary (Raw) Source: https://docs.xrplevm.org/pages/operators/guides/upgrading-your-node.md Downloads, extracts, and installs a new exrpd binary from a release tarball. This method is for users who prefer direct binary management. ```bash cd /tmp TARGET_TAG= wget "https://github.com/xrplevm/node/releases/download/${TARGET_TAG}/node_${TARGET_TAG#v}_Linux_amd64.tar.gz" tar -xzf "node_${TARGET_TAG#v}_Linux_amd64.tar.gz" sudo mv bin/exrpd /usr/local/bin/exrpd sudo chmod +x /usr/local/bin/exrpd exrpd version ``` -------------------------------- ### Manage Node Service Source: https://docs.xrplevm.org/pages/operators/getting-started/join-the-xrplevm.md Provides commands to start and monitor the node process using systemd or Docker. These commands ensure the node runs as a background service. ```bash sudo systemctl enable exrpd sudo systemctl start exrpd docker start xrplevm-node journalctl -u exrpd -f ``` -------------------------------- ### Initialize Devnet Node Configuration Source: https://docs.xrplevm.org/pages/operators/getting-started/installing-the-node.md Configures and initializes a Devnet node for exrpd. This includes setting the client chain ID, initializing the node with a moniker, downloading the Devnet genesis file, and configuring peer connections. ```bash exrpd config set client chain-id xrplevm_1449900-1 exrpd init --chain-id xrplevm_1449900-1 wget -O ~/.exrpd/config/genesis.json https://raw.githubusercontent.com/xrplevm/networks/refs/heads/main/devnet/genesis.json PEERS=$(curl -sL https://raw.githubusercontent.com/xrplevm/networks/main/devnet/peers.txt | sort -R | head -n 10 | paste -sd, -) sed -i.bak -e "s/^seeds *=.*/seeds = \"${PEERS}\"" ~/.exrpd/config/config.toml ```