# New EVM-compatible chain

> **Important:** At this time, new blockchains are not merged into Wallet Core without a positive decision from our Business Development team. Before investing time in an implementation, please reach out to <partnerships@trustwallet.com> to start that conversation.

Adding support for a new fully EVM-compatible chain to Wallet Core requires only a few changes, follow the steps here. For more complex chain integrations, see [general new blockchain docs](/developer/wallet-core/newblockchain.md).

## Prerequisites / Needed information

* `ChainID`. EVM chains have a unique ChainID, such as `8217`.
* `Derivation path` used. Most EVM chains use Ethereum derivation path, `"m/44'/60'/0'/0/0"` (but not all).
* `CoinID`. Most EVM chains do not have a SLIP 44 CoinID, but some do. We'll see below what to use if one is not available.

## Steps

* Start with an up-to-date workspace ([more info](/developer/wallet-core/developing-the-library/contributing.md)).
* Add chain information to `registry.json`. Some notable fields:
  * blockchain: "Ethereum",
  * coinId: If own coinID is available, use that. Otherwise, use: `10000000 + chainID`, such as `10008217`.
* Run `tools/new-evmchain <chain>` to generate template source files, where `<chain>` is the chain `id` from registry.
* The result will be a new line in `TWCoinType.h` and a new test file `tests/<Chain>/TWCoinTypeTests.cpp`.
* There are some test cases that test derivation for all coins. Extend these with the new chain. If the new chain reuses Ethereum address, it can reuse the Ethereum case in the switch statements.

```
rust/tw_tests/tests/coin_address_derivation_test.rs
tests/common/CoinAddressDerivationTests.cpp
android/app/src/androidTest/java/com/trustwallet/core/app/blockchains/CoinAddressDerivationTests.kt
kotlin/wallet-core-kotlin/src/commonTest/kotlin/com/trustwallet/core/test/CoinAddressDerivationTests.kt
swift/Tests/CoinAddressDerivationTests.swift
```

* Update generated sources, build the project, execute unit tests (see [building](/developer/wallet-core/developing-the-library/building.md)):

```
./tools/build-and-test
```

* If all is fine, create a PR with the changes.

## Some Sample PRs:

* [github.com/trustwallet/wallet-core/pull/2307](https://github.com/trustwallet/wallet-core/pull/2307)
* [github.com/trustwallet/wallet-core/pull/2157](https://github.com/trustwallet/wallet-core/pull/2157)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.trustwallet.com/developer/wallet-core/newblockchain/newevmchain.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
