⚙️ Integrate with MonoX
The MonoX smart contracts will exist on the Ethereum blockchain. Until that time, there are a bunch of test networks are available for you to integrate and complete your tests. These networks are:
  • Ethereum Mainnet,
  • Polygon Mainnet,
  • Kovan Testnet,
  • Mumbai Test (Polygon)

Contracts

In order to complete an integration with the below contracts, you will need to have ABI (Application Binary Interface).

How to get ABI of a contract?

Visit a link below, navigate into the Contract tab, then scroll until you see Contract ABI.

Contracts on Ethereum Mainnet

Contracts on Polygon Mainnet

Contract on Kovan Test Network

MonoswapStaking address: 0x6549f8aE5dfee52B5da9127B8Dda7504798ec347

Contract on Mumbai Test Network

MonoswapStaking address: 0xF269e315f8c72B8a1Beb2223632bbC046c6635D4

Integration

Our Monoswap contract (kovan or mumbai) has some core features available for the developers who are interested in using them externally.

What type of functions is available for a contract?

Visit a contract link above, click into the Contract tab, then select Write as Proxy to see all functions.

MonoX Core Functionalities

Some of the key functionalities we offer are:
  • listNewToken,
  • addLiquidity,
  • addLiquidityETH,
  • removeLiquidity,
  • swapExactTokenForToken and swapTokenForExactToken,
  • swapExactETHForToken, swapExactTokenForETH, swapETHForExactToken and swapTokenForExactETH
listNewToken, addLiquidity, swapExactTokenForToken and swapTokenForExactToken requires that the token has been approved in advance.

listNewToken

This function list tokens and adds liquidity with vcashAmount and tokenAmount then sends LP tokens to to address. So, the user can list a new token.
function listNewToken (
address _token, // Token address to list
uint _price, // Token price
uint256 vcashAmount, // VCASH amount to add initially
uint256 tokenAmount, // Token amount to add initially
address to // Address that gets liquidity
)

addLiquidity

This function adds liquidity to an ERC-20⇄ERC-20 pool. So, users can contribute into the pool.
function addLiquidity (
address _token, // Token address
uint256 _amount, // Token amount to add
address to // Address to send LP token
)

addLiquidityETH

This function adds liquidity to an ERC-20⇄WETH pool with ETH. So, users can add liquidity to the ETH pool.
function addLiquidityETH (
address to // Address to send LP token
)

removeLiquidity

This function removes liquidity to an ERC-20⇄ERC-20 pool.
function removeLiquidity (
address _token, // Token address
uint256 liquidity, // Liquidity
address to, // Token amount to add
uint256 minVcashOut, // The minimum amount of VCash that must be received
uint256 minTokenOut // The minimum amount of Token that must be received
)
For removing ETH liquidity, use removeLiquidityETH function. It removes liquidity to an ERC-20⇄WETH pool with ETH.

swapExactTokenForToken

Users can swap tokens using swapExactTokenForToken. So, user's input token is known and the output token is calculated swapTokenForExactToken.
function swapExactTokenForToken(
address tokenIn, // Input token address
address tokenOut, // Output token address
uint amountIn, // The amount of input tokens to send
uint amountOutMin, // The minimum amount of output tokens that must be received for the transaction not to revert
address to, // Recipient of the output tokens
uint deadline // Unix timestamp after which the transaction will revert
)

swapTokenForExactToken

Users can swap tokens using swapTokenForExactToken. So, user's output token is known and the input token is calculated.
function swapTokenForExactToken(
address tokenIn, // Input token address
address tokenOut, // Output token address
uint amountInMax, // The maximum amount of input tokens that can be required before the transaction reverts
uint amountOut, // The amount of output tokens to receive
address to, // Recipient of the output tokens
uint deadline // Unix timestamp after which the transaction will revert
)
For swapping ETH, please use one of below functions:
swapExactETHForToken
swapExactTokenForETH
swapETHForExactToken
swapTokenForExactETH
function swapExactETHForToken(
address tokenOut, // Output token address
uint amountOutMin, // The minimum amount of output tokens that must be received for the transaction not to revert
address to, // Recipient of the output tokens
uint deadline // Unix timestamp after which the transaction will revert
)
function swapExactTokenForETH(
address tokenIn, // Input token address
uint amountIn, // The amount of input tokens to send
uint amountOutMin, // The minimum amount of output tokens that must be received for the transaction not to revert
address to, // Recipient of the output tokens
uint deadline // Unix timestamp after which the transaction will revert
)
function swapETHForExactToken(
address tokenOut, // Output token address
uint amountInMax, // The maximum amount of input tokens that can be required before the transaction reverts
uint amountOut, // The amount of output tokens to receive
address to, // Recipient of the output tokens
uint deadline // Unix timestamp after which the transaction will revert
)
function swapTokenForExactETH(
address tokenIn, // Input token address
uint amountInMax, // The maximum amount of input tokens that can be required before the transaction reverts
uint amountOut, // The amount of output tokens to receive
address to, // Recipient of the output tokens
uint deadline // Unix timestamp after which the transaction will revert
)