With the advent of blockchain technologies, the idea of decentralized applications has gained traction. Smart contracts permit the implementation of application logic to foster distributed systems that are capable of removing intermediaries. Hereby, lock in effects originating from isolated data storage and central authorities are mitigated. Yet, smart contracts deployed to a ledger generate dependencies on the underlying blockchain. Over time, requirements regarding contract execution may detach from the utilized chain due to contradicting incentives and security or performance issues. To avoid a novel form of lock in effect towards a host blockchain, we introduce a concept for smart contract portability that permits any user to migrate contract logic and state between blockchains in a flexible and verifiable manner. As the Ethereum Virtual Machine (EVM) is supported by a multitude of blockchain implementations, it poses a common execution environment for smart contracts. We provide a toolbox that facilitates smart contract portability between EVM-compatible blockchains without trust requirements in the entity executing the migration process. To prove the concept's soundness, we transfer token contracts based on the ERC20 standard as well as applications containing dependencies to other smart contracts. Our evaluation shows the validity of ported applications including their current states.