Skip to main content
Reads the minimum withdrawal order size from the on-chain WithdrawQueue contract. Use this to validate user input before submitting a withdrawal order.

Import

import { getMinimumWithdrawalOrderSize } from "@paxoslabs/amplify-sdk";

Usage

import { getMinimumWithdrawalOrderSize, YieldType } from "@paxoslabs/amplify-sdk";

const result = await getMinimumWithdrawalOrderSize({
  yieldType: YieldType.CORE,
  chainId: 1,
  assetAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
});

console.log(result.minimumOrderSize); // bigint
console.log(result.shareDecimals);    // number

Parameters

ParameterTypeRequiredDescription
yieldTypeYieldTypeYesYield strategy type
chainIdChainIdYesBlockchain network ID
assetAddressAddressYesAsset address for vault lookup
interface GetMinimumWithdrawalOrderSizeParams {
  yieldType: YieldType;
  chainId: ChainId;
  assetAddress: Address;
}

Return Type

interface MinimumWithdrawalOrderSizeResult {
  /** Minimum order size in vault share units */
  minimumOrderSize: bigint;
  /** Vault share token decimals */
  shareDecimals: number;
}

Example: Input Validation

import { getMinimumWithdrawalOrderSize, YieldType } from "@paxoslabs/amplify-sdk";
import { parseUnits, formatUnits } from "viem";

const result = await getMinimumWithdrawalOrderSize({
  yieldType: YieldType.CORE,
  chainId: 1,
  assetAddress: usdcAddress,
});

const userAmount = parseUnits(userInput, result.shareDecimals);

if (userAmount < result.minimumOrderSize) {
  const min = formatUnits(result.minimumOrderSize, result.shareDecimals);
  console.error(`Minimum withdrawal is ${min} shares`);
}

Error Handling

Error Message PatternDescriptionResolution
"No vault found"No vault matches parametersVerify yieldType, asset, chainId
"SDK not initialized"SDK not initializedCall initAmplifySDK() first