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
Deploy your reserve on Ropsten using the following guides depending no your reserve type choice: Fed Price Reserve or Automated Price Reserve
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()
andwithdrawToken()
to test withdrawals. Once withdrawals are successful, you can deposit the full inventory amount.Configure the token conversion rates of your reserve by either calling
setBaseRate()
,setQtyStepFunction()
, andsetImbalanceStepFunction()
if using the FPR or callingsetLiquidityParams()
if using the APR.Check that the rates conform to settings by calling
getConversionRate()
in the KyberReserve contract.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.
Ask the Kyber team to list your reserve in Kyber Network in Ropsten.
Perform test trades.
STAGING: Deployment on Kyber's staging network in Mainnet
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.
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()
andwithdrawToken()
to test withdrawals. Once withdrawals are successful, you can deposit the full inventory amount.Configure the token conversion rates of your reserve by either calling
setBaseRate()
,setQtyStepFunction()
, andsetImbalanceStepFunction()
if using the FPR or callingsetLiquidityParams()
if using the APR.Check that the rates conform to settings by calling
getConversionRate()
in the KyberReserve contract.Ask the Kyber team to list your reserve in the Mainnet staging network.
Kyber's QA team will run several tests and trades to make sure everything is in working order.
PRODUCTION: Deployment on Mainnet
Once QA clears, align with the Kyber team the date and time when listing will be publicly live.
A few hours before listing, configure the token conversion rates of your reserve again, inputting the latest market price of your token(s).
The Kyber admins will list the reserve on Mainnet production. At this point, the reserve is live on the network.
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.