GOAT Network

Networks and RPC

This page is the source of truth for public network parameters, explorer URLs, bridge URLs, and wallet or tooling configuration.

Network Parameters

Alpha Mainnet

ParameterValue
Network NameGOAT Network
Chain ID2345
Currency SymbolBTC
RPC URLhttps://rpc.goat.network
RPC Backuphttps://rpc.ankr.com/goat_mainnet
Archive Nodehttps://archive.goat.network
Explorerhttps://explorer.goat.network
Bridgehttps://bridge.goat.network

Testnet3

ParameterValue
Network NameGOAT Testnet3
Chain ID48816
Currency SymbolBTC
RPC URLhttps://rpc.testnet3.goat.network
RPC Backuphttps://rpc.ankr.com/goat_testnet
Explorerhttps://explorer.testnet3.goat.network
Bridgehttps://bridge.testnet3.goat.network
Faucethttps://bridge.testnet3.goat.network/faucet

Public RPC endpoints are rate-limited. Production systems should use dedicated infrastructure or a managed provider.

Wallet Setup

One-click add the network to your wallet:

Use wallet_addEthereumChain when you want to add GOAT Network from an app. Always surface the caught error to the user or your telemetry, because wallets may reject the request, already have the chain configured, or block the call when no wallet is installed.

Add GOAT Network mainnet to MetaMask
async function addGoatMainnet() {
  try {
    await window.ethereum.request({
      method: 'wallet_addEthereumChain',
      params: [{
        chainId: '0x929',
        chainName: 'GOAT Network',
        nativeCurrency: { name: 'Bitcoin', symbol: 'BTC', decimals: 18 },
        rpcUrls: ['https://rpc.goat.network'],
        blockExplorerUrls: ['https://explorer.goat.network'],
      }],
    });
    console.log('GOAT Network successfully added to MetaMask');
  } catch (error) {
    console.error('Failed to add GOAT Network:', error);
  }
}
Add GOAT Testnet3 to MetaMask
async function addGoatTestnet3() {
  try {
    await window.ethereum.request({
      method: 'wallet_addEthereumChain',
      params: [{
        chainId: '0xBEB0',
        chainName: 'GOAT Testnet3',
        nativeCurrency: { name: 'Bitcoin', symbol: 'BTC', decimals: 18 },
        rpcUrls: ['https://rpc.testnet3.goat.network'],
        blockExplorerUrls: ['https://explorer.testnet3.goat.network'],
      }],
    });
    console.log('GOAT Testnet3 successfully added to MetaMask');
  } catch (error) {
    console.error('Failed to add GOAT Testnet3:', error);
  }
}

Application Configuration

ethers.js providers
import { JsonRpcProvider } from 'ethers';

export const goatMainnet = new JsonRpcProvider('https://rpc.goat.network');
export const goatTestnet3 = new JsonRpcProvider('https://rpc.testnet3.goat.network');
web3.py provider
from web3 import Web3

goat = Web3(Web3.HTTPProvider("https://rpc.goat.network"))
goat_testnet3 = Web3(Web3.HTTPProvider("https://rpc.testnet3.goat.network"))
hardhat.config.ts
import '@nomicfoundation/hardhat-toolbox';
import { config as loadEnv } from 'dotenv';

loadEnv();

export default {
  solidity: '0.8.24',
  networks: {
    goatMainnet: {
      url: 'https://rpc.goat.network',
      chainId: 2345,
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
    },
    goatTestnet3: {
      url: 'https://rpc.testnet3.goat.network',
      chainId: 48816,
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
    },
  },
};

Do not hard-code a real private key in source control. Load it from environment variables or a secrets manager.

Usage Examples

Once your provider is configured, you can make read-only RPC calls against either network.

Read the current block on mainnet
import { JsonRpcProvider } from 'ethers';

const provider = new JsonRpcProvider('https://rpc.goat.network');

async function getBlockNumber() {
  const blockNumber = await provider.getBlockNumber();
  console.log('Current block number on GOAT mainnet:', blockNumber);
}

getBlockNumber();
Read the current block on testnet3
import { JsonRpcProvider } from 'ethers';

const provider = new JsonRpcProvider('https://rpc.testnet3.goat.network');

async function getBlockNumber() {
  const blockNumber = await provider.getBlockNumber();
  console.log('Current block number on GOAT Testnet3:', blockNumber);
}

getBlockNumber();

Manual MetaMask Configuration

If you prefer to add the network manually in MetaMask, use these JSON payloads as a reference for the required fields.

GOAT Network mainnet
{
  "chainId": "0x929",
  "chainName": "GOAT Network",
  "nativeCurrency": { "name": "Bitcoin", "symbol": "BTC", "decimals": 18 },
  "rpcUrls": ["https://rpc.goat.network"],
  "blockExplorerUrls": ["https://explorer.goat.network"]
}
GOAT Testnet3
{
  "chainId": "0xBEB0",
  "chainName": "GOAT Testnet3",
  "nativeCurrency": { "name": "Bitcoin", "symbol": "BTC", "decimals": 18 },
  "rpcUrls": ["https://rpc.testnet3.goat.network"],
  "blockExplorerUrls": ["https://explorer.testnet3.goat.network"]
}

On this page