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-quoteJoin Types
Ryze supports two join types, determined automatically by the number of tokens you provide:
| Tokens Provided | Join Type | Fees |
|---|---|---|
| 1 token | Single Join | Swap fees apply (asset rebalancing) |
| All pool tokens | Proportional Join | No fees |
Request
json
{
"poolAddress": "0x7B41aA91947398CD9244AD4e314C253D9B1B5206",
"tokensIn": [
{
"token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "100000000"
}
]
}| Field | Type | Required | Description |
|---|---|---|---|
poolAddress | string | Yes | Pool contract address |
tokensIn | array | Yes | Tokens and amounts to deposit |
tokensIn[].token | string | Yes | Token address |
tokensIn[].amount | string | Yes | Amount 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
| Field | Description |
|---|---|
joinType | "single" or "proportional" |
sharesOut | LP tokens received (18 decimals) |
tvl | Pool total value locked in USD (WAD) |
shareOfPool | Percentage of pool ownership after join |
fees | Fee breakdown (zero for proportional joins) |
prices | Oracle price data for tokens involved |
Fee Fields
| Field | Description |
|---|---|
swapFee | Base swap fee amount |
takerFee | Taker fee amount |
slippageFee | Dynamic slippage fee |
slippagePct | Slippage fee as WAD percentage |
wbfFee | Weight Breaking Fee |
wbrReward | Weight Breaking Reward (can offset fees) |
wbrRewardToken | Token for WBR payout |
slippageToken | Token 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.