Retour au classement

ethereum-lists/chains

Kotlinchainid.network

provides metadata for chains

ethereumevmchainideip155chainshacktoberfest
Croissance des étoiles
Étoiles
9.8k
Forks
8.1k
Croissance hebdomadaire
Issues
30
5k
déc. 2018juin 2021janv. 2024juil. 2026
README

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 as 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
  },
  "features": [{ "name": "EIP155" }, { "name": "EIP1559" }],
  "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 an 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 JSON files look like this:


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

where:

  • The URL MUST be publicly resolvable through IPFS
  • width and height MUST be positive integers
  • format is either "png", "jpg" or "svg"
  • size MUST be less than 250kb

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 the type and the reference to an existing parent. The field about bridges is optional.

You can add a status field e.g. to deprecate (via status deprecated) 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:

Constraints

  • the shortName and name MUST be unique - see e.g. EIP-3770 on why
  • if referencing a parent chain - the chain MUST exist in the repo
  • if using an IPFS CID for the icon - the CID MUST be retrievable via ipfs get - not only through some gateway (means please do not use pinata for now)
  • for more constraints you can look into the CI

Collision management

We cannot allow more than one chain with the same chainID - this would open the door to replay attacks. The first pull request gets the chainID assigned. When creating a chain we can expect that you read EIP155 which states this repo. All pull requests trying to replace a chainID because they think their chain is better than the other will be closed. The only way to get a chain reassigned is when the old chain gets deprecated. This can e.g. be used for testnets that are short-lived. But then you will get the redFlag "reusedChainID" that should be displayed in clients to warn them about the dangers here.

Getting your PR merged

before PR is submitted

Before submitting a PR, please ensure all checks pass by running:

$ ./gradlew run

BUILD SUCCESSFUL in 7s
9 actionable tasks: 9 executed

Additionally, run Prettier to format your JSON according to the style defined here e.g. run

npx prettier --write _data/*/*.json

Once PR is submitted

  • Make sure CI is green. There will likely be no review when the CI is red.
  • When making changes that fix the CI problems - please re-request a review - otherwise it is too much work to track such changes with so many PRs daily

Usages

Tools

Explorers

Wallets

EIPs

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

Listing sites

Other

Dépôts similaires
unionlabs/union

The trust-minimized, zero-knowledge bridging protocol, designed for censorship resistance, extremely high security, and usage in decentralized finance.

Rustcrates.ioApache License 2.0blockchaincosmos
union.build
73.9k3.9k
ethereum/go-ethereum

Go implementation of the Ethereum protocol

GoGo ModulesGNU Lesser General Public License v3.0goblockchain
geth.ethereum.org
51.2k22k
ccxt/ccxt

A unified trading API with more than 100 crypto exchanges and prediction markets in JavaScript / TypeScript / Python / C# / PHP / Go / Java

PythonPyPIMIT Licensealtcoinapi
docs.ccxt.com
43.4k8.8k
shardeum/shardeum

Shardeum is an EVM based autoscaling blockchain

TypeScriptnpmMIT Licenseblockchaindapp
shardeum.org
31.3k703
OpenZeppelin/openzeppelin-contracts

OpenZeppelin Contracts is a library for secure smart contract development.

SolidityMIT Licenseethereumsolidity
openzeppelin.com/contracts
27.2k12.4k
argotorg/solidity

Solidity, the Smart Contract Programming Language

C++GNU General Public License v3.0cppethereum
soliditylang.org
25.7k6.1k
ethereum/solidity

Solidity, the Smart Contract Programming Language

C++GNU General Public License v3.0cppethereum
soliditylang.org
24k6k
ethereumbook/ethereumbook

Mastering Ethereum: 2nd Edition, by Andreas M. Antonopoulos, Gavin Wood, Carlo Parisi, Alessandro Mazza, Niccolò Pozzolini

ethereumblockchain
masteringethereum.xyz
21.5k5.2k
web3/web3.js

Collection of comprehensive TypeScript libraries for Interaction with the Ethereum JSON RPC API and utility functions.

TypeScriptnpmOtherethereumjavascript
web3js.org
19.9k5.1k
hummingbot/hummingbot

Open source software that helps you create and deploy high-frequency crypto trading bots

PythonPyPIApache License 2.0cryptocurrencyarbitrage
hummingbot.org
19.2k4.8k
sismo-core/sismo-badges

Contracts of the Sismo Badge Minting Protocol

TypeScriptnpmMIT Licensedidethereum
docs.sismo.io
15.9k527
smartcontractkit/full-blockchain-solidity-course-js

Learn Blockchain, Solidity, and Full Stack Web3 Development with Javascript

blockchainchainlink
14k3.3k