# Migrate existing dApps

Developing a new dApp on Botanix is going to feel very familiar for those who are used to developing dApps but migrating requires some more work than a simple copy-paste job!&#x20;

In general, migrating the existing smart contracts is rather easy. One might face more issues when migrating the front end, back end or database. Some things to take into account are:&#x20;

* Developers may encounter issues with other infrastructure requirements see [here](https://docs.botanixlabs.xyz/botanix-labs/build-dapps/migrate-existing-dapps#differences-in-block-and-network-properties)
* Look for open source projects with low dependencies
* Chain independent
  * \= not depending on any specific property of a chain
  * For example: project doesn't depend on PoS on ETH
* Do not require cloud provisioned nodes
  * Many ETH projects use Infura but that doesn't really exist outside of ETH.&#x20;
  * This can make it tough to port backends and dApps over.
* Has a active contributors / issues

## Differences in block and network properties

Developers might encounter logic errors stemming from variations in block and network properties.&#x20;

**Differences in block properties**

* Botanix does not use `total_difficulty`, `nonce`, `withdrawals`, `omners`, `mix_hash` or `parent_beacon_block_root` (EIP-4788)
* Botanix stores consensus specific material in the extra data portion
  * Extra data larger than what Ethereum consensus allows

**Differences in Network properties**

* Botanix has 1 block finality
* Botanix has \~ 6 second block times


---

# 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://docs.botanixlabs.com/botanix/build-applications/build-on-the-botanix-evm/migrate-existing-dapps.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.
