Skip to main content
Calculates the expected vault shares a user will receive for a deposit. Uses the on-chain exchange rate from the Accountant contract.

Import

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

Usage

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

const result = await getMinimumMint({
  yieldType: YieldType.CORE,
  chainId: 1,
  depositAssetAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
  depositAmount: "1000.0",
});

console.log(result.expectedShares); // bigint
console.log(result.exchangeRate);   // bigint

Parameters

ParameterTypeRequiredDescription
yieldTypeYieldTypeYesYield strategy (CORE, TREASURY, or FRONTIER)
chainIdChainIdYesBlockchain network ID
depositAssetAddressAddressYesToken contract address being deposited
depositAmountstringYesAmount as decimal string (e.g., "1000.0")
interface GetMinimumMintParams {
  yieldType: YieldType;
  chainId: ChainId;
  depositAssetAddress: Address;
  depositAmount: string;
}

Return Type

interface MinimumMintResult {
  /** Expected vault shares to be minted */
  expectedShares: bigint;
  /** On-chain exchange rate from Accountant */
  exchangeRate: bigint;
  /** Vault share token decimals */
  shareDecimals: number;
  /** Deposit asset decimals */
  assetDecimals: number;
}

Example: Display Expected Shares

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

const result = await getMinimumMint({
  yieldType: YieldType.CORE,
  chainId: 1,
  depositAssetAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  depositAmount: "1000.0",
});

const sharesFormatted = formatUnits(result.expectedShares, result.shareDecimals);
console.log(`You will receive ~${sharesFormatted} vault shares`);

Error Handling

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