Skip to main content

Add Liquidity

Follow these five steps to begin earning as a Liquidity Provider.

Step 1: Navigate to the Pool

Find your desired token pair (e.g., WETH/USDC) within the SKNK Hub Dashboard and click the "Add Liquidity" button.

Add Liquidity UI

Step 2: Enter Amounts

Input the amount for one token. The Hub uses a smart balancing algorithm to automatically calculate the required amount of the paired token.

Token Input UI

Step 3: Approve & Confirm

If this is your first time interacting with these tokens, you'll perform a one-time approval.

  1. Approve Tokens: Click "Approve" for each token. This grants the smart contract permission to interact with your wallet.
  2. Confirm Supply: Review your rates and click "Add liquidity".
Wallet Interaction

If you use your own wallet, keep an eye on your wallet (MetaMask, Rabby, etc.) to sign the transaction. Ensure you have a small amount of native gas tokens to cover the network fee.


Your LP Tokens (Receipts)

Once the transaction is confirmed, the Hub instantly mints LP Tokens to your wallet.

Important: Do Not Sell or Transfer LP Tokens

These tokens represent your ownership share of the pool.

Summary Table

ActionOutcome
DepositTokens enter the Liquidity Pool
ReceiveLP Tokens (Your "Receipt")
EarnProportionate share of 0.3% trading fees and house proceeds

Smart Contracts

info

Ensure spending allowances are set on selected tokens prior to calling router functions.

The SLPRouter contract streamlines the process of adding liquidity into an existing pair. Unlike pool creation, the price is already set and tokens must be added based on this existing ratio. The quote() helper can be used to query for a correct ratio based on a given token input.

SLPRouter.sol
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);

function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (uint256 amountA, uint256 amountB, uint256 liquidity);


function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);