provides metadata for chains
Go to file
Ashutosh Kumar bf8ce68096
Check and validate JSON schema (#1509)
* Validate json

* wip: gh workflow test

* wip: added workflow for JSON validation

* Schema Improved.

* Improved Workflow and Schema check for JSON files

* Fixed JSON Schema

* Fixed typo

* Removed auto generated file

* updated required fields in chainSchema

* updated chain schema

* removed `network` from README.md example

* improved schemaCheck script

* Matching ChainID with file name schema.
2022-08-28 12:25:46 +02:00
_data Removed network and added the script from which this was done (#1508) 2022-08-28 10:19:33 +02:00
.ci Add test stage 2020-11-13 04:19:30 +01:00
.github Check and validate JSON schema (#1509) 2022-08-28 12:25:46 +02:00
gradle/wrapper Use gradle 7.5.1 2022-08-20 15:23:24 +02:00
model Remove network completely (#1506) 2022-08-28 12:25:12 +02:00
processor Remove network completely (#1506) 2022-08-28 12:25:12 +02:00
tools Check and validate JSON schema (#1509) 2022-08-28 12:25:46 +02:00
.gitignore add Gather chains (#598) 2021-11-29 10:43:31 +01:00
.prettierignore Added Prettier and formatted existing JSON files (#1501) 2022-08-27 19:20:08 +02:00
.prettierrc.json Added Prettier and formatted existing JSON files (#1501) 2022-08-27 19:20:08 +02:00
build.gradle Bump KOTLIN_VERSION from 1.7.0 to 1.7.10 (#1335) 2022-07-08 11:12:32 +02:00
gradlew Use gradle 7.5.1 2022-08-20 15:23:24 +02:00
gradlew.bat Use gradle 7.5.1 2022-08-20 15:23:24 +02:00
LICENSE Initial commit 2018-12-20 18:53:11 +01:00
README.md Remove network completely (#1506) 2022-08-28 12:25:12 +02:00
settings.gradle.kts Split out the model to extra module 2021-12-30 07:38:32 +01:00

EVM-based Chains

The source data is in _data/chains. Each chain has its own file with the filename being the CAIP-2 representation as name and .json ans extension.

Example

{
  "name": "Ethereum Mainnet",
  "chain": "ETH",
  "rpc": [
    "https://mainnet.infura.io/v3/${INFURA_API_KEY}",
    "https://api.mycryptoapi.com/eth"
  ],
  "faucets": [],
  "nativeCurrency": {
    "name": "Ether",
    "symbol": "ETH",
    "decimals": 18
  },
  "infoURL": "https://ethereum.org",
  "shortName": "eth",
  "chainId": 1,
  "networkId": 1,
  "icon": "ethereum",
  "explorers": [{
    "name": "etherscan",
    "url": "https://etherscan.io",
    "icon": "etherscan",
    "standard": "EIP3091"
  }]
}

when an icon is used in either the network or a explorer there must be a json in _data/icons with the name used (e.g. in the above example there must be a ethereum.json and a etherscan.json in there) - the icon jsons look like this:


[
    {
      "url": "ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt",
      "width": 1000,
      "height": 1628,
      "format": "png"
    }
]

where:

  • the URL must be a IPFS url that is publicly resolveable
  • width and height are optional - but when one is there then the other must be there also
  • format is either "png", "jpg" or "svg"

If the chain is an L2 or a shard of another chain you can link it to the parent chain like this:

{
  ...
  "parent": {
   "type" : "L2",
   "chain": "eip155-1",
   "bridges": [ {"url":"https://bridge.arbitrum.io"} ]
  }
}

where you need to specify type 2 and the reference to an existing parent. The field about bridges is optional.

You can add a status field e.g. to deprecate a chain (a chain should never be deleted as this would open the door to replay attacks) Other options for status are active (default) or incubating

Aggregation

There are also aggregated json files with all chains automatically assembled:

Collision management

If different chains have the same chainID we list the one with the oldest genesis.

Usages

Wallets

Explorers

EIPs

  • EIP-155
  • EIP-3014
  • EIP-3770
  • EIP-4527

Listing sites

Other