Skip to content

Get Join Quotes

The Router's /join-quote endpoint calculates how many LP shares a user receives when adding liquidity, along with fees and pool impact.

Endpoint

POST https://mainnet.router.ryze.pro/join-quote

Join Types

Ryze supports two join types, determined automatically by the number of tokens you provide:

Tokens ProvidedJoin TypeFees
1 tokenSingle JoinSwap fees apply (asset rebalancing)
All pool tokensProportional JoinNo fees

Request

json
{
  "poolAddress": "0x7B41aA91947398CD9244AD4e314C253D9B1B5206",
  "tokensIn": [
    {
      "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "100000000"
    }
  ]
}
FieldTypeRequiredDescription
poolAddressstringYesPool contract address
tokensInarrayYesTokens and amounts to deposit
tokensIn[].tokenstringYesToken address
tokensIn[].amountstringYesAmount in raw units

Single Join Example

Deposit 100 USDC into the WETH-USDC pool:

bash
curl -X POST https://mainnet.router.ryze.pro/join-quote \
  -H "Content-Type: application/json" \
  -d '{
    "poolAddress": "0x7B41aA91947398CD9244AD4e314C253D9B1B5206",
    "tokensIn": [
      {
        "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "amount": "100000000"
      }
    ]
  }'

Proportional Join Example

Deposit both USDC and WETH proportionally:

bash
curl -X POST https://mainnet.router.ryze.pro/join-quote \
  -H "Content-Type: application/json" \
  -d '{
    "poolAddress": "0x7B41aA91947398CD9244AD4e314C253D9B1B5206",
    "tokensIn": [
      {
        "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "amount": "100000000"
      },
      {
        "token": "0x4200000000000000000000000000000000000006",
        "amount": "62500000000000000"
      }
    ]
  }'

TIP

For proportional joins, amounts should match the pool's current token ratios. The router will use the maximum proportional amounts possible and return any excess.

Response

json
{
  "routeId": "e5f6g7h8",
  "joinType": "single",
  "poolAddress": "0x7B41aA91947398CD9244AD4e314C253D9B1B5206",
  "tokenIn": {
    "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "100000000",
    "decimals": 6
  },
  "sharesOut": "99500000000000000000",
  "tvl": "2500000000000000000000000",
  "shareOfPool": "3.98",
  "fees": {
    "swapFee": "30000",
    "takerFee": "10000",
    "slippageFee": "5000",
    "slippagePct": "50000000000000",
    "wbfFee": "0",
    "wbrReward": "0",
    "wbrRewardToken": "0x0000000000000000000000000000000000000000",
    "slippageToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
  },
  "timestamp": "2026-04-15T12:00:00Z",
  "prices": [
    {
      "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "pythPrice": "1000000000000000000",
      "cexPrice": "1000000000000000000",
      "blendFactor": "500000000000000000",
      "blendedPrice": "1000000000000000000"
    }
  ]
}

Response Fields

FieldDescription
joinType"single" or "proportional"
sharesOutLP tokens received (18 decimals)
tvlPool total value locked in USD (WAD)
shareOfPoolPercentage of pool ownership after join
feesFee breakdown (zero for proportional joins)
pricesOracle price data for tokens involved

Fee Fields

FieldDescription
swapFeeBase swap fee amount
takerFeeTaker fee amount
slippageFeeDynamic slippage fee
slippagePctSlippage fee as WAD percentage
wbfFeeWeight Breaking Fee
wbrRewardWeight Breaking Reward (can offset fees)
wbrRewardTokenToken for WBR payout
slippageTokenToken the slippage fee is denominated in

Proportional Join Response

For proportional joins, the response includes tokensIn showing actual amounts used:

json
{
  "joinType": "proportional",
  "tokensIn": [
    { "token": "0x8335...2913", "amount": "100000000", "decimals": 6 },
    { "token": "0x4200...0006", "amount": "62500000000000000", "decimals": 18 }
  ],
  "sharesOut": "199000000000000000000",
  "fees": {
    "swapFee": "0",
    "takerFee": "0",
    "slippageFee": "0",
    "wbfFee": "0",
    "wbrReward": "0"
  }
}

INFO

Proportional joins have zero fees because they don't change the pool's token weight ratios.