# KyberNetwork

{% hint style="warning" %}
You are referring to the **`Legacy`** version of KyberSwap docs.

For the most updated information, please refer to:

* [**`Classic`**](https://github.com/KyberNetwork/kyberswap-documentation/blob/main/reference/legacy/api-abi/misc-contracts/broken-reference/README.md)
* [**`Elastic`**](/reference/legacy/kyberswap-elastic.md)
* [**`Limit Order`**](/kyberswap-solutions/limit-order.md)
* [**`Aggregator`**](/kyberswap-solutions/kyberswap-aggregator.md)
  {% endhint %}

## KyberNetwork

is WithdrawableNoModifiers, Utils5, [IKyberNetwork](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikybernetwork.md), ReentrancyGuard\ imports WithdrawableNoModifiers, Utils5, ReentrancyGuard, SafeERC20, [IKyberNetwork](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikybernetwork.md), [IKyberReserve](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberreserve.md), [IKyberFeeHandler](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberfeehandler.md), [IKyberDao](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberdao.md), [IKyberMatchingEngine](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikybermatchingengine.md), [IKyberStorage](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberstorage.md), IGasHelper

*Source*: [KyberNetwork.sol](https://github.com/KyberNetwork/smart-contracts/blob/master/contracts/sol6/KyberNetwork.sol)

***

### INDEX[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#index) <a href="#index" id="index"></a>

\<AUTOGENERATED\_TABLE\_OF\_CONTENTS>

### REFERENCE[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#reference) <a href="#reference" id="reference"></a>

#### Events[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#events) <a href="#events" id="events"></a>

#### `EtherReceival`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#etherreceival) <a href="#etherreceival" id="etherreceival"></a>

Event logging the receival of ETH in the network contract.

***

event **EtherReceival**(address sender, uint256 amount) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `sender` | address | sender's address | | `amount` | uint256 | amount of ETH received in wei | Signature: 0x75f33ed68675112c77094e7c5b073890598be1d23e27cd7f6907b4a7d98ac619

\\

#### `KyberFeeHandlerUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberfeehandlerupdated) <a href="#kyberfeehandlerupdated" id="kyberfeehandlerupdated"></a>

Event logging the setting of the new KyberFeeHandler contract.

***

event **KyberFeeHandlerUpdated**(IKyberFeeHandler newKyberFeeHandler) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newKyberFeeHandler` | IKyberFeeHandler | new KyberFeeHandler contract | Signature: 0x5128fc9be01065f3cabe4c8b72796eb6b8a00284f39a2390cd71e91b509f90b6

\\

#### `KyberMatchingEngineUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kybermatchingengineupdated) <a href="#kybermatchingengineupdated" id="kybermatchingengineupdated"></a>

Event logging the setting of the new KyberMatchingEngine contract.

***

event **KyberMatchingEngineUpdated**(IKyberMatchingEngine newKyberMatchingEngine) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newKyberMatchingEngine` | IKyberMatchingEngine | //TODO: description |

Signature: KyberMatchingEngineUpdated(IKyberMatchingEngine)

\\

#### `GasHelperUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#gashelperupdated) <a href="#gashelperupdated" id="gashelperupdated"></a>

Event logging the setting of the new GasHelper contract.

***

event **GasHelperUpdated**(IGasHelper newGasHelper) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newGasHelper` | IGasHelper | new GasHelper contract | Signature: 0x95ba6becebde78de944071b522d81414292f67e3d95db7d9df46bb8e8b3da8b8

\\

#### `KyberDaoUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberdaoupdated) <a href="#kyberdaoupdated" id="kyberdaoupdated"></a>

Event logging the setting of the new KyberDao contract.

***

event **KyberDaoUpdated**(IKyberDao newKyberDao) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newKyberDao` | IKyberDao | new KyberDao contract | Signature: 0x16a2e1af8449067f38aa765b54d479785c94d8ebdfbba7b410e3488b0877c1e4

\\

#### `KyberNetworkParamsSet`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kybernetworkparamsset) <a href="#kybernetworkparamsset" id="kybernetworkparamsset"></a>

Event logging the setting of the maxGasPrice and negligibleRateDiffBps params in the network.

***

event **KyberNetworkParamsSet**(uint256 maxGasPrice, uint256 negligibleRateDiffBps) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `maxGasPrice` | uint256 | maximum gas price limit to prevent front running | | `negligibleRateDiffBps` | uint256 | negligible rate difference in BPS | Signature: 0xc1e6729d7fd9a615adc03ebe7d8ff15649d8eed7516bf6c30538a1e722bb1975

\\

#### `KyberNetworkSetEnable`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kybernetworksetenable) <a href="#kybernetworksetenable" id="kybernetworksetenable"></a>

Event logging the enabling or disabling of trading in the network

***

event **KyberNetworkSetEnable**(bool isEnabled) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `isEnabled` | bool | `true` if network is enabled, otherwise `false` | Signature: 0x8a846a525e22497042ee2f99423a8ff8bbb831d3ae5384692bf6040f591c1eba

\\

#### `KyberProxyAdded`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberproxyadded) <a href="#kyberproxyadded" id="kyberproxyadded"></a>

Event logging the adding of a new proxy contract.

***

event **KyberProxyAdded**(address kyberProxy) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `kyberProxy` | address | added KyberNetworkProxy contract | Signature: 0x0b008ff10c7e378a96d6566635e1aa748886d16fb87659faee2aa20608fec815

\\

#### `KyberProxyRemoved`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberproxyremoved) <a href="#kyberproxyremoved" id="kyberproxyremoved"></a>

Event logging the removal of a proxy contract.

***

event **KyberProxyRemoved**(address kyberProxy) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `kyberProxy` | address | removed KyberNetworkProxy contract | Signature: 0xbb9ee888852ae070b75270fa50ea2845ba32102d3a96842c7c416d12aad2f487

\\

#### `ListedReservesForToken`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#listedreservesfortoken) <a href="#listedreservesfortoken" id="listedreservesfortoken"></a>

Event logging the listing of a list of reserves for a token.

***

event **ListedReservesForToken**(IERC20 token, address\[] reserves, bool add) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `token` | IERC20 | ERC20 token address | | `reserves` | address\[] | list of reserve addresses | | `add` | bool | `true` if to list, `false` otherwise | Signature: 0xd4b0877e3beef91cd767680ac04114217ec7c9cb3a4705c03fc8061de81168fc

\\

#### Functions[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#functions) <a href="#functions" id="functions"></a>

\
\### \`tradeWithHint\` Makes a trade between src and dest token and send dest tokens to destAddress, with an additional \`hint\` parameter for reserve routing. Function is backwards compatible to pre-Katalyst.

***

function **tradeWithHint**(address payable trader, ERC20 src, uint256 srcAmount, ERC20 dest, address payable destAddress, uint256 maxDestAmount, uint256 minConversionRate, address payable walletId, bytes hint) external payable returns (uint256 destAmount) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `trader` | address | trader's address | | `src` | ERC20 | source ERC20 token contract address | | `srcAmount` | uint256 | source ERC20 token amount in its token decimals | | `dest` | ERC20 | destination ERC20 token contract address | | `destAddress` | address | recipient address for destination ERC20 token | | `maxDestAmount` | uint256 | limit on the amount of destination tokens | | `minConversionRate` | uint | minimum conversion rate; trade is canceled if actual rate is lower | | `walletId` | address | wallet address to send part of the fees to | | `hint` | bytes | for filtering permissionless reserves | **Returns:**\ destAmount - Amount of actual destination tokens

\
\### \`tradeWithHintAndFee\` Executes a trade between src and dest token and send dest tokens to destAddress; includes the platform fee. \_\_\_ function \_\_tradeWithHintAndFee\_\_(address payable trader, IERC20 src, uint256 srcAmount, IERC20 dest, address payable destAddress, uint256 maxDestAmount, uint256 minConversionRate, address payable platformWallet, uint256 platformFeeBps, bytes hint) external payable override returns (uint256 destAmount) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`trader\` | address | trader's address | | \`src\` | IERC20 | source ERC20 token contract address | | \`srcAmount\` | uint256 | source ERC20 token amount in its token decimals | | \`dest\` | IERC20 | destination ERC20 token contract address | | \`destAddress\` | address | recipient address for destination ERC20 token | | \`maxDestAmount\` | uint256 | limit on the amount of destination tokens | | \`minConversionRate\` | uint256 | minimum conversion rate; trade is canceled if actual rate is lower | | \`platformWallet\` | address | address receiving the platform fee | | \`platformFeeBps\` | uint256 | platform fee in BPS to be used in this trade | | \`hint\` | bytes | hint in bytes for reserve routing | \*\*Returns:\*\*\ destAmount - Amount of actual destination tokens in twei\
\### \`getExpectedRateWithHintAndFee\` Get the token conversion rate after processing the hint and includes the platform fee. \_\_\_ function \_\_getExpectedRateWithHintAndFee\_\_(IERC20 src, IERC20 dest, uint256 srcQty, uint256 platformFeeBps, bytes hint) external view override returns (uint256 rateWithNetworkFee, uint256 rateWithAllFees) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`src\` | IERC20 | source ERC20 token contract address | | \`dest\` | IERC20 | destination ERC20 token contract address | | \`srcQty\` | uint256 | source ERC20 token amount in its token decimals | | \`platformFeeBps\` | uint256 | platform fee in BPS | | \`hint\` | bytes | hint in bytes for reserve routing | \*\*Returns:\*\*\ rateWithNetworkFee - conversion rate of the src and dest tokens after deducting the network fee. rateWithAllFees - conversion rate of the src and dest tokens after deducting the network and platform fee.\
\### \`getExpectedRate\` Get the token expected and worst rates. worstRate is hardcoded as 3% lower of expectedRate. Function is backwards compatible to pre-Katalyst. \_\_\_ function \_\_getExpectedRate\_\_(ERC20 src, ERC20 dest, uint256 srcQty) external view returns (uint256 expectedRate, uint256 worstRate) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`src\` | ERC20 | source ERC20 token contract address | | \`dest\` | ERC20 | destination ERC20 token contract address | | \`srcQty\` | uint256 | source ERC20 token amount in its token decimals | \*\*Returns:\*\*\ expectedRate - rate for a trade after deducting network fee worstRate - rate for a trade, calculated to be expectedRate \* 97 / 100\
\### \`getNetworkData\` Returns basic network data. \_\_\_ function \_\_getNetworkData\_\_() external view override returns (uint256 negligibleDiffBps, uint256 networkFeeBps, uint256 expiryTimestamp)\ \*\*Returns:\*\*\ negligibleDiffBps - neglibigle difference in BPS networkFeeBps - network fees in BPS expiryTimestamp - expiry timestamp in epoch time when the network fees will expire and need to be updated\
\### \`getContracts\` Returns the Kyber contracts used by the network. \_\_\_ function \_\_getContracts\_\_() external returns (IKyberFeeHandler kyberFeeHandlerAddress, IKyberDao kyberDaoAddress, IKyberMatchingEngine kyberMatchingEngineAddress, IKyberStorage kyberStorageAddress, IGasHelper gasHelperAddress, IKyberNetworkProxy\[] kyberProxyAddresses)\ \*\*Returns:\*\*\ kyberFeeHandlerAddress - KyberFeeHandler contract address kyberDaoAddress - KyberDao contract address kyberMatchingEngineAddress - KyberMatchingEngine contract address kyberStorageAddress - KyberStorage contract address gasHelperAddress - GasHelper contract address kyberProxyAddresses - array of KyberNetworkProxy contract addresses\
\### \`maxGasPrice\` Returns the maximum gas price limit to prevent front running. \_\_\_ function \_\_maxGasPrice\_\_() external view override returns (uint256)\ \*\*Returns:\*\*\ The maximum gas price limit\
\### \`enabled\` Returns a boolean determining if trading is enabled on the network. \_\_\_ function \_\_enabled\_\_() external view override returns (bool)\ \*\*Returns:\*\*\ Returns \`true\` if the network is enabled for trading, otherwise \`false\`.


---

# 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.kyberswap.com/reference/legacy/api-abi/misc-contracts/kybernetwork.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.
