ERCs icon indicating copy to clipboard operation
ERCs copied to clipboard

Add ERC: Ethereum Network Configuration for DApps

Open bogdan opened this issue 8 months ago • 2 comments

This standard defines a universal format for specifying network configurations in decentralized applications (dApps). The configuration includes essential information about Ethereum networks, such as:

  • available RPC URLs
  • native currencies
  • contract addresses
  • block explorers.

The goal of this standard is to simplify network configuration for dApp developers and enhance interoperability across Ethereum-compatible networks.

{
  "version": "0.0.1",
  "timestamp": "2025-01-01T12:22:46.471Z",
  "summary": "NFT Artwork",
  "description": "Artwork published by independent artist. Carefully crafted with style in one of the creative studios of the world."
  "abiRoot": "https://nft-artwork.example.com/developer/abi"
  "networks": {
    "1": {
      "name": "Ethereum Mainnet",
      "testnet": false,
      "nativeCurrency": {
        "name": "Ether",
        "symbol": "ETH",
        "decimals": 18
      },
      "rpcs": {
        "main": {
          "url": "https://eth-rpc.example.com"
        },
        "backup": {
          "url": "https://eth-rpc.backup.example.com"
        }
      },
      "relations": {
        "mainnetChainId": null,
        "parentChainId": null
      },
      "explorers": {
        "megascan": {
          "root": "https://example.org",
          "block": "/block/:number",
          "address": "/address/:address",
          "tx": "/tx/:tx",
          "nft": "/nft/:address/:token"
        },
        "marketplace": {
          "root": "https://nft.marketplace/networks/eth",
          "block": null,
          "address": "/:address",
          "tx": null,
          "nft": "/:address/:token"
        }
      },
      "contracts": {
        "Registry": {
          "address": "0x57928ff7b0BBc3Ee4D84481e320DdB8B941f986A",
          "blockCreated": 1234567,
          "abiUrl": "./Registry.sol/Registry.json"
        },
        "OwnerWallet": {
          "address": "0xC12237E57B088e9191BD8054Df4f5B772646a4B6",
          "blockCreated": 1
        }
      }
    },
    "11155111": {
      "name": "Sepolia",
      "testnet": true,
      "nativeCurrency": {
        "name": "Sepolia Ether",
        "symbol": "ETH",
        "decimals": 18
      },
      "rpcs": {
        "main": {
          "url": "https://sepolia-rpc.example.com"
        },
        "backup": {
          "url": "https://sepolia-rpc.backup.example.com"
        }
      },
      "relations": {
        "mainnetChainId": 1,
        "parentChainId": null
      },
      "explorers": {
        "megascan": {
          "root": "https://sepolia.example.org",
          "block": "/block/:number",
          "address": "/address/:address",
          "tx": "/tx/:tx",
          "nft": "/nft/:address/:token"
        },
        "marketplace": {
          "root": "https://testnets.nft.marketplace/networks/sepolia",
          "block": null,
          "address": "/:address",
          "tx": null,
          "nft": "/:address/:token"
        }
      },
      "contracts": {
        "Registry": {
          "address": "0xE13471e6E5d11205AF290261f42108f89dCae72E",
          "blockCreated": 183882,
          "abiUrl": "./Registry.sol/Registry.json" 
        },
        "OwnerWallet": {
          "address": "0xC12237E57B088e9191BD8054Df4f5B772646a4B6",
          "blockCreated": 1
        }
      }
    }
  }
}

Originally opened as EIP-7876, but converted to ERC as per discussion: https://github.com/ethereum/EIPs/pull/9312#issuecomment-2751375302

cc @SamWilsn @g11tech @bomanaps

bogdan avatar Apr 03 '25 08:04 bogdan

File ERCS/erc-7876.md

Requires 1 more reviewers from @g11tech, @samwilsn, @xinbenlv

eip-review-bot avatar Apr 03 '25 08:04 eip-review-bot

This standard defines a universal format for specifying network configurations in decentralized applications (dApps). The configuration includes essential information about Ethereum networks, such as:

  • available RPC URLs
  • native currencies
  • contract addresses
  • block explorers.

The goal of this standard is to simplify network configuration for dApp developers and enhance interoperability across Ethereum-compatible networks.

{
  "version": "0.0.1",
  "timestamp": "2025-01-01T12:22:46.471Z",
  "summary": "NFT Artwork",
  "description": "Artwork published by independent artist. Carefully crafted with style in one of the creative studios of the world."
  "abiRoot": "https://nft-artwork.example.com/developer/abi"
  "networks": {
    "1": {
      "name": "Ethereum Mainnet",
      "testnet": false,
      "nativeCurrency": {
        "name": "Ether",
        "symbol": "ETH",
        "decimals": 18
      },
      "rpcs": {
        "main": {
          "url": "https://eth-rpc.example.com"
        },
        "backup": {
          "url": "https://eth-rpc.backup.example.com"
        }
      },
      "relations": {
        "mainnetChainId": null,
        "parentChainId": null
      },
      "explorers": {
        "megascan": {
          "root": "https://example.org",
          "block": "/block/:number",
          "address": "/address/:address",
          "tx": "/tx/:tx",
          "nft": "/nft/:address/:token"
        },
        "marketplace": {
          "root": "https://nft.marketplace/networks/eth",
          "block": null,
          "address": "/:address",
          "tx": null,
          "nft": "/:address/:token"
        }
      },
      "contracts": {
        "Registry": {
          "address": "0x57928ff7b0BBc3Ee4D84481e320DdB8B941f986A",
          "blockCreated": 1234567,
          "abiUrl": "./Registry.sol/Registry.json"
        },
        "OwnerWallet": {
          "address": "0xC12237E57B088e9191BD8054Df4f5B772646a4B6",
          "blockCreated": 1
        }
      }
    },
    "11155111": {
      "name": "Sepolia",
      "testnet": true,
      "nativeCurrency": {
        "name": "Sepolia Ether",
        "symbol": "ETH",
        "decimals": 18
      },
      "rpcs": {
        "main": {
          "url": "https://sepolia-rpc.example.com"
        },
        "backup": {
          "url": "https://sepolia-rpc.backup.example.com"
        }
      },
      "relations": {
        "mainnetChainId": 1,
        "parentChainId": null
      },
      "explorers": {
        "megascan": {
          "root": "https://sepolia.example.org",
          "block": "/block/:number",
          "address": "/address/:address",
          "tx": "/tx/:tx",
          "nft": "/nft/:address/:token"
        },
        "marketplace": {
          "root": "https://testnets.nft.marketplace/networks/sepolia",
          "block": null,
          "address": "/:address",
          "tx": null,
          "nft": "/:address/:token"
        }
      },
      "contracts": {
        "Registry": {
          "address": "0xE13471e6E5d11205AF290261f42108f89dCae72E",
          "blockCreated": 183882,
          "abiUrl": "./Registry.sol/Registry.json" 
        },
        "OwnerWallet": {
          "address": "0xC12237E57B088e9191BD8054Df4f5B772646a4B6",
          "blockCreated": 1
        }
      }
    }
  }
}

Originally opened as EIP-7876, but converted to ERC as per discussion: ethereum/EIPs#9312 (comment)

cc @SamWilsn @g11tech @bomanaps

ASISBusiness avatar Apr 06 '25 00:04 ASISBusiness