Home

Awesome

Warning

PLEASE RUN THE COMMANDS BELOW TO VERIFY CONFIGURATION IN YOUR LOCAL ENVIRONMENT BEFORE SUBMITTING PULL REQUESTS.

# install node modules
yarn install

# validate your json file (for Cosmos-SDK-based chains or EVM chains)
yarn validate cosmos/{your file.json}
yarn validate evm/{your file.json}

READ THE GUIDELINES BELLOW CAREFULLY, PAYING PARTICULAR ATTENTION TO THE "features" IN THE [REQUIREMENT DETAILS].

Guidelines for Community-Driven Non-Native Chain Integration

Keplr team has always been at the leading edge of building secure and interoperable wallet infrastructure for the blooming cross-chain networks, placing its core mainly at the Cosmos ecosystem.

To help the builders easily plug into Keplr’s wide userbase and the ever-growing Cosmos ecosystem, Keplr has been offering an option of permissionless integration, the so-called “Suggest Chain (Non-Native Chain) Integration”. The feature has enabled front-ends to request adding new Cosmos-SDK-based blockchains that aren’t natively integrated into the Keplr extension.

Keplr team is now introducing a Community-Driven Integration, which enables our users to easily make a request for adding new chains and updating their information. It's an expanded version of the previous suggest chain integration, providing a public API to our users for creating and updating a set integration standard for each chain.

To make a pull request, please carefully read and follow the guidelines below. Any contribution is more than welcome!

Requirements and Preparation

This section outlines the basic information that is required for registering a chain to Keplr wallet. Please note that your request does not always guarantee integrations and updates; upon your submission, Keplr team will go through a minimal verification process to see if there is any security issue or any missing information.

Once approved, the Keplr browser extension will show the tag “Community-Driven” on the chain connection page, to let the users be aware that the integration was requested and implemented by the community and the Keplr team has gone through the verification process.

<p align="center"> <img src="https://i.imgur.com/f9UEOIR.png" alt="Sample Image"/> </p>

Cosmos-SDK-based Chain Registration Directory Structure

chainID is consisted of ({identifier}-{version}). chain-identifier therefore refers to a text identifier of a chain that comes before its version number. For example:

  The chain-identifier of `cosmoshub-4` is `cosmoshub`.
  The chain-identifier of `crypto-org-chain-mainnet-1` is `crypto-org-chain-mainnet`.
  The chain-identifier of `evmos_9001-2` is `evmos_9001`.
  The chain-identifier of 'shentu-2.2' is 'shentu-2.2'.

Here’s an overview of the structure of the directory. Please provide the information and files complying with the requirements.

.
├── cosmos                       # Mainnet
│     ├── cosmoshub.json         # Chains (Each file should be named `{chain-identifier}.json')
│     ├── osmosis.json
│     └── ...
└── images                       # Collection of image assets
      ├── cosmoshub              # Image assets of Comos Hub (Each directory should be named `{chain-identifier}`.)
      │     └── chain.png        # Cosmos Hub Logo(png, 256x256px)
      ├── osmosis                # Image assets of Osmosis
      └── ...

Cosmos-SDK-based Chain Registration Form

{
  "chainId": "osmosis-1",
  "chainName": "Osmosis",
  "chainSymbolImageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/osmosis/chain.png",
  "rpc": "https://rpc-osmosis.blockapsis.com",
  "rest": "https://lcd-osmosis.blockapsis.com",
  "nodeProvider": {
    "name": "Blockapsis",
    "email": "infra@blockapsis.com",
    "website": "https://blockapsis.com/"
  },
  "bip44": {
    "coinType": 118
  },
  "bech32Config": {
    "bech32PrefixAccAddr": "osmosis",
    "bech32PrefixAccPub": "osmosispub",
    "bech32PrefixValAddr": "osmosisvaloper",
    "bech32PrefixValPub": "osmosisvaloperpub",
    "bech32PrefixConsAddr": "osmosisvalcons",
    "bech32PrefixConsPub": "osmosisvalconspub"
  },
  "currencies": [
    {
      "coinDenom": "OSMO",
      "coinMinimalDenom": "uosmo",
      "coinDecimals": 6,
      "coinGeckoId": "osmosis"
    }
  ],
  "feeCurrencies": [
    {
      "coinDenom": "OSMO",
      "coinMinimalDenom": "uosmo",
      "coinDecimals": 6,
      "coinGeckoId": "osmosis",
      "gasPriceStep": {
        "low": 0.01,
        "average": 0.025,
        "high": 0.03
      }
    }
  ],
  "stakeCurrency": {
    "coinDenom": "OSMO",
    "coinMinimalDenom": "uosmo",
    "coinDecimals": 6,
    "coinGeckoId": "osmosis"
  },
  "features": ["cosmwasm", "osmosis-txfees"]
}

Cosmos-SDK-based Chain Registration Form Requirement Details

EVM-based Chain Registration Directory Structure

EVM-based chain identifier is consisted of eip155:{eip155-chain-id} which follows CAIP-2

  The chain identifier of `Ethereum` is `eip155:1`.
  The chain identifier of `Optimism` is `eip155:10`.
  The chain identifier of `Polygon` is `eip155:137`.

Here’s an overview of the structure of the directory. Please provide the information and files complying with the requirements.

.
├── evm
│     ├── eip155:1.json                       # Chains (Each file should be named `{chain-identifier}.json')
│     ├── eip155:10.json
│     └── ...
└── images                                    # Collection of image assets
      ├── eip155:1                            # Image assets of Ethereum (Each directory should be named `{chain-identifier}`.)
      │     ├── erc20
      │     │     └── {contract address}.png  # Ethereum ERC20 token logo(png, 256x256px)
      │     ├── chain.png                     # Ethereum logo(png, 256x256px)
      │     └── ethereum-native.png           # Etherem native token logo(png, 256x256px)
      ├── eip155.10
      └── ...

EVM-based Chain Registration Form

{
  "rpc": "https://evm-1.keplr.app",
  "websocket": "wss://evm-1.keplr.app/websocket",
  "nodeProvider": {
    "name": "Keplr",
    "email": "contact@keplr.app",
    "website": "https://keplr.app"
  },
  "chainId": "eip155:1",
  "chainName": "Ethereum",
  "chainSymbolImageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/chain.png",
  "bip44": {
    "coinType": 60
  },
  "currencies": [
    {
      "coinDenom": "ETH",
      "coinMinimalDenom": "ethereum-native",
      "coinDecimals": 18,
      "coinGeckoId": "ethereum",
      "coinImageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/ethereum-native.png"
    },
    {
      "coinDenom": "USDC",
      "coinMinimalDenom": "erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
      "coinDecimals": 6,
      "coinGeckoId": "usd-coin",
      "coinImageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/erc20/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.png"
    }
  ],
  "feeCurrencies": [
    {
      "coinDenom": "ETH",
      "coinMinimalDenom": "ethereum-native",
      "coinDecimals": 18,
      "coinGeckoId": "ethereum",
      "coinImageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/ethereum-native.png"
    }
  ],
  "features": []
}

EVM-based Chain Registration Form Requirement Details

NOTE: