KyberDeveloper · Powering Liquidity for the Ecosystem

KyberDeveloper · Powering Liquidity for the Ecosystem

  • Home
  • Integrations
  • Reserves
  • KyberPRO
  • Addresses
  • API/ABI
  • Trade Debugger
  • Tracker
  • GitHub

›Operations

Getting Started

  • Overview
  • Why Develop on Kyber?
  • Create New Reserve Model
  • Existing Reserve Types
  • Customize Existing Reserve Models

Deployment Gudies

  • Fed Price Reserve
  • Automated Price Reserve
  • Orderbook Reserve
  • Testing Using Ganache

Operations

  • Reserve Listing Process
  • Token Listing Policies
  • Reserve IDs
  • Reserve Rebates
  • Sanity Rates

Reserve Listing Process

New reserve Model Listing Process

1: Write Unit Tests Smart contract security is of upmost importance. As such, we require tests to be written for the smart contract functions to ensure that they only do what is expected. You may take a look at our test repository for test script examples.

2: Extensive testing on Testnet

Before proceeding on to mainnet, please perform tests either on Ganache or testnet to ensure trade flow is working as intended. Testnet address details here.

3: Setup Rebate Wallet and Reserve ID In addition to the reserve contract address, kindly setup a reserve ID (optional) and rebate wallet (mandatory) for adding a reserve to the network.

  • Read more about reserve IDs here. It will be automatically generated by the Kyber team if there is no preference.
  • Read more about reserve rebates here.

4: Contact Us Once the previous steps are completed, contact us to list and test your reserve! You may do so via email at [email protected], or our Telegram group and Discord Channel

Steps to follow while getting a Reserve listed on Kyber.

Below is a complete sequence when listing a new reserve in Kyber.

TESTING: Deployment on Ropsten testnet

  1. Deploy your reserve on Ropsten using the following guides depending no your reserve type choice: Fed Price Reserve or Automated Price Reserve

  2. Test ETH and token withdrawals on your reserve. Deposit a small amount of ETH (e.g. 0.001 ETH) and tokens (e.g. 1 token) to the KyberReserve contract, and call withdrawEther() and withdrawToken() to test withdrawals. Once withdrawals are successful, you can deposit the full inventory amount.

  3. Configure the token conversion rates of your reserve by either calling setBaseRate(), setQtyStepFunction(), and setImbalanceStepFunction() if using the FPR or calling setLiquidityParams() if using the APR.

  4. Check that the rates conform to settings by calling getConversionRate() in the KyberReserve contract.

  5. Setup a rebate wallet address that should be able to receive ETH and ERC20 tokens. You may also optionally create a reserve ID that helps to identify your reserve to takers. One will be automatically generated by the Kyber team should no reserve ID be supplied.

  • Read more about reserve rebates here.
  • Read more about reserve IDs here.
  1. Ask the Kyber team to list your reserve in Kyber Network in Ropsten.

  2. Perform test trades.

STAGING: Deployment on Kyber's staging network in Mainnet

  1. Deploy your reserve on Mainnet using the following guides depending no your reserve type choice: Fed Price Reserve or Automated Price Reserve. However, you will need to use the Staging KyberNetwork contract address. Kindly reach out to the Kyber developer team for the contract address for the staging network. This is a controlled private network in the Mainnet meant to do testing with real funds before going live on the production network. Only whitelisted addresses, mainly from the Kyber team, are allowed to trade on this network.

  2. Test ETH and token withdrawals on your reserve. Deposit a small amount of ETH (e.g. 0.001 ETH) and tokens (e.g. 1 token) to the KyberReserve contract, and call withdrawEther() and withdrawToken() to test withdrawals. Once withdrawals are successful, you can deposit the full inventory amount.

  3. Configure the token conversion rates of your reserve by either calling setBaseRate(), setQtyStepFunction(), and setImbalanceStepFunction() if using the FPR or calling setLiquidityParams() if using the APR.

  4. Check that the rates conform to settings by calling getConversionRate() in the KyberReserve contract.

  5. Ask the Kyber team to list your reserve in the Mainnet staging network.

  6. Kyber's QA team will run several tests and trades to make sure everything is in working order.

PRODUCTION: Deployment on Mainnet

  1. Once QA clears, align with the Kyber team the date and time when listing will be publicly live.

  2. A few hours before listing, configure the token conversion rates of your reserve again, inputting the latest market price of your token(s).

  3. The Kyber admins will list the reserve on Mainnet production. At this point, the reserve is live on the network.

  4. Verify the rates show in KyberSwap or on any application that has integrated the Kyber protocol and is supporting the tokens your reserve is serving liquidity form.

← Testing Using GanacheToken Listing Policies →
  • New reserve Model Listing Process
  • Steps to follow while getting a Reserve listed on Kyber.
    • TESTING: Deployment on Ropsten testnet
    • STAGING: Deployment on Kyber's staging network in Mainnet
    • PRODUCTION: Deployment on Mainnet
KyberDeveloper · Powering Liquidity for the Ecosystem
EssentialsGetting StartedDesign PrinciplesProtocol OverviewSmart Contract Architecture
IntegrationsDAppsVendorsWalletsPlatform Fees
ReservesFed PriceAutomated Price
© 2019 Kyber Network. All rights reserved.
Follow us on Facebook
Follow us on Twitter
Follow us on Github
Follow us on Reddit
Join our Telegram group
Subscribe to our Youtube channel
Read our blog on Medium