Ethereum’s Istanbul upgrade will start around the 9,069,000th block and is estimated to be launched on Saturday, December 7th. The Istanbul Hard Fork is the last step for Ethereum 1.0, paving the way for the Serenity phase of Ethereum 2.0. Etherscan has kindly provided a countdown timer to block 9,069,000.

One of the major changes happening in Istanbul is Ethereum Improvement Proposal (EIP) 1884, which implements changes to the cost of some EVM opcodes to prevent spamming attacks. Particularly, the change of the SLOAD (0x54) operation from 200 to 800 gas will break the existing deployed KyberNetwork contract, and as such, a migration to a new contract with the fix is necessary.

To prepare the Kyber ecosystem for this important update, at 7:00 PM SGT, Dec. 2nd, 2019, we are migrating several smart contracts and updating several components in the network. No trading will occur during this time. Operations will resume by 7:30 PM SGT, Dec. 2nd, 2019.

We plan to make this upgrade as smooth and seamless as possible for everyone involved.

Important points to note during this migration:

At 7:00 PM SGT, 2nd December 2019 , trading will stop for approximately 30 minutes and the network contracts will be migrated.

, trading will stop for approximately 30 minutes and the network contracts will be migrated. Trading and operations will resume by 7:30 PM SGT, 2nd December 2019 .

. The network will switch from the current KyberNetwork contract (0x9ae49c0d7f8f9ef4b864e004fe86ac8294e20950) to (0x65bF64Ff5f51272f729BDcD7AcFB00677ced86Cd).

The KyberNetworyProxy (0x818E6FECD516Ecc3849DAf6845e3EC868087B755, ENS: kybernetwork.eth) or simply the proxy contract, will point to the new KyberNetwork contract on the time and date of the migration.

No major changes are done to the contract functions.

Token liquidity is NOT affected.

Tracking websites and apps will need to check https://developer.kyber.network/docs/Integrations-ContractEvents/ for the new/past contracts and relevant events.

This update does not affect the KNC token contract. KNC holder’s tokens are NOT affected.

For users of KyberSwap or any Kyber-integrated DApp user

If you are a user of KyberSwap (website/Android/iOS), then no action is necessary for you.

If you use services or DApps that have integrated the Kyber protocol such as MEW, Enjin, Trust, Nuo, InstaDapp, Fulcrum, etc., you do not need to do anything unless you are informed to take additional steps by that DApp or service.

For developers and DApps using the Kyber RESTful API and KyberWidget

The API and widgets will automatically support this change. However, if you are using the /gas_limit API endpoint, please note the new gas limit changes, as the Istanbul hardfork will significantly change the gas costs of trades, so kindly take note of the new gas limits after the hard fork.

For developers and DApps directly interacting with the Kyber smart contracts

If you are interacting with the proxy contract, then no action is required during the migration as the proxy contract’s address will not change. However, after the Istanbul hard fork, please note the changes in gas costs due to the Istanbul EIPs. We recommend looking at Kyber’s /gas_limit API endpoint for gas limit changes after the hard fork.

If you are not interacting with the proxy contract, but directly with the KyberNetwork contract, then you will need to update the address to the newly migrated contract (0x65bF64Ff5f51272f729BDcD7AcFB00677ced86Cd) on the date and time of the migration.

For reserve managers running a reserve on Kyber

You should have been notified by our team on this important change. Kindly check your Telegram.

In summary, you will need to point your reserve to the new KyberNetwork contract (0x65bF64Ff5f51272f729BDcD7AcFB00677ced86Cd). Please only do this from 7:00 PM — 7:30 PM SGT, 2nd December 2019! We would strongly recommend to change it during the migration period before we enable trading to minimize the gas loss for takers.

Below is a simple guide for the migration of your reserve:

Using your admin account, visit your reserve contract and call setContracts() with the following parameters:

_kyberNetwork: 0x65bF64Ff5f51272f729BDcD7AcFB00677ced86Cd _conversionRates: <your conversionRatesContract address of your reserve> _sanityRates: <your sanityRatesContract address of your reserve or : 0x0000000000000000000000000000000000000000 if your reserve is an APR>

Please align with our team should you need further guidance or help.

For tracking websites and applications

Websites and apps tracking information from Kyber will need to take some action as well. You may want to track the event logs emitted from the newly migrated contracts as well as the past contracts. Please check our documentation below on the relevant events. It contains all of the events and present/past contract addresses. Also note that you don’t have to wait for the contract migration on Dec. 2nd, 2019 to adapt as you can do it at this very moment.

Documentation: https://developer.kyber.network/docs/Integrations-ContractEvents/

If your tracking mechanism doesn’t rely on the event logs the newly migrated contracts, then no action is required. If your tracking mechanism solely uses the Kyber API for information, then no further action is required as well.

Next Steps

On Dec. 2nd, 2019, on the day of the migration, we will announce on Telegram, Twitter, and other Kyber Network and KyberSwap social media about the initiation of the migration. We will work closely with DApps and Reserves during this migration. Please reach out to our team on our Kyber Network Official Discord server should you have any questions. We hope to make this migration as seamless and smooth as possible for all our users, reserves and integrated DApps.