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, getVaultsByConfig, YieldType } from '@paxoslabs/amplify-sdk'

const [vault] = await getVaultsByConfig({ yieldType: YieldType.CORE, chainId: 1 })

const result = await getMinimumMint({
  vaultName: vault.name,
  chainId: 1,
  depositAssetAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
  depositAmount: '1000.0',
})

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

Parameters

ParameterTypeRequiredDescription
vaultNamestringYesVault name from getVaultsByConfig()
chainIdChainIdYesBlockchain network ID
depositAssetAddressAddressYesToken contract address being deposited
depositAmountstringYesAmount as decimal string (e.g., "1000.0")
interface GetMinimumMintParams {
  vaultName: string
  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, getVaultsByConfig, YieldType } from '@paxoslabs/amplify-sdk'
import { formatUnits } from 'viem'

const [vault] = await getVaultsByConfig({ yieldType: YieldType.CORE, chainId: 1 })

const result = await getMinimumMint({
  vaultName: vault.name,
  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