Skip to content

Join Quote

POST /join-quote

Calculates LP shares received when adding liquidity to a pool, with fee breakdown and pool impact.

Request

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

Parameters

FieldTypeRequiredDescription
poolAddressstringYesPool contract address
tokensInarrayYesTokens and amounts to deposit
tokensIn[].tokenstringYesToken address
tokensIn[].amountstringYesAmount in raw units

Join Type Detection

The join type is determined automatically:

Tokens in RequestJoin TypeFees
1 tokenSingle JoinSwap/taker/slippage/WBF fees apply
All pool tokensProportional JoinNo fees

Response (Single Join)

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 (Proportional Join)

json
{
  "routeId": "i9j0k1l2",
  "joinType": "proportional",
  "poolAddress": "0x7B41aA91947398CD9244AD4e314C253D9B1B5206",
  "tokensIn": [
    {
      "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "100000000",
      "decimals": 6
    },
    {
      "token": "0x4200000000000000000000000000000000000006",
      "amount": "62500000000000000",
      "decimals": 18
    }
  ],
  "sharesOut": "199000000000000000000",
  "tvl": "2500000000000000000000000",
  "shareOfPool": "7.96",
  "fees": {
    "swapFee": "0",
    "takerFee": "0",
    "slippageFee": "0",
    "slippagePct": "0",
    "wbfFee": "0",
    "wbrReward": "0",
    "wbrRewardToken": "0x0000000000000000000000000000000000000000",
    "slippageToken": "0x0000000000000000000000000000000000000000"
  },
  "timestamp": "2026-04-15T12:00:00Z",
  "prices": [...]
}

Response Fields

FieldTypeDescription
joinTypestring"single" or "proportional"
tokenInobjectSingle join: the input token details
tokensInarrayProportional join: all input token details
sharesOutstringLP tokens received (18 decimals)
tvlstringPool TVL in USD (WAD)
shareOfPoolstringPool ownership % after join
feesobjectFee breakdown
pricesarrayOracle price data

Fee Fields

FieldTypeDescription
swapFeestringBase swap fee (raw amount)
takerFeestringTaker fee (raw amount)
slippageFeestringDynamic slippage fee (raw amount)
slippagePctstringSlippage as WAD percentage
wbfFeestringWeight Breaking Fee
wbrRewardstringWeight Breaking Reward
wbrRewardTokenstringToken for WBR payout
slippageTokenstringToken for slippage fee

Errors

CodeReason
400Invalid request body or token addresses
404Pool not found