- Use the Kuru Deployer to deploy a new token alongwith a market for it in one transaction.
- Use the Kuru Router directly to deploy a market with your chosen parameters for an existing token.
Deploy a market with the Kuru Deployer
We have deployed a deployer contract which launches a token for you, creates a market for it and bootstraps the market with liquidity. All markets made through the deployer are paired with MON. You can use theKuruSDK.MonadDeployer class to deploy a market with the Kuru Deployer.
You can find the Kuru Deployer address here
Here’s how you can do it:
deployMarket.ts
calculatePrecisions function to get the suggested parameters for the market.
Using inappropriate parameters for the market can lead to users not being able to place limit orders.
Deploy a market with the Kuru Router
You can use theKuruSDK.ParamCreator class to calculate suggested parameters for a market and for deploying a market with the Kuru Router.
Use the calculatePrecisions function to get suggested parameters for a market.
Double-check the output from Calculate Precision before you deploy
calculatePrecisions.ts
TICK_IN_BPS is the tick size in basis points. We recommend a bigger tick for memecoins and a smaller tick for tokens which are more likely to move in a short range.
Use the deployMarket function to deploy a market with the Kuru Router.
deployMarket.ts
TYPE is an integer from 0-2 according to the type of market you want to deploy:
| Type | Description |
|---|---|
| 0 | Market with two ERC20 tokens |
| 1 | Market with the base token as MON (ex. MON-USDC) |
| 2 | Market with the quote token as MON (ex. USDC-MON) |
KURU_AMM_SPREAD is the spread for the Kuru AMM. We recommend a large spread of 100 for volatile markets and 30 for more stable markets. The minimum spread is 10 BPS and the max is 500 BPS. The spread must be a multiple of 10.
Bootstrapping with liquidity after deploying using Kuru-Router
After the router deploys your market, seed its vault with the initial base/quote inventory so liquidity is available from block one. The script below walks through a first-time deposit that respects a target price, checks allowances, and shows how to broadcast the transaction.FirstVaultDeposit.ts
Adding Liquidity to Existing Vaults
Whenever you need to deepen an established pool, add base/quote liquidity in the same proportion the vault already holds. This helper script pulls the live vault balances, computes the matching base amount from your quote input, takes care of ERC-20 approvals, and submits the proportional top-up.VaultDeposit.ts