Skip to content

transfer ​

Standard ERC-20 transfer of vault shares from the caller to to.

Signature ​

solidity
function transfer(address to, uint256 value) external returns (bool);

Parameters ​

NameTypeDescription
toaddressRecipient of the shares.
valueuint256Amount of shares to transfer (18 decimals).

Returns ​

true on success. Reverts on failure.

Preconditions ​

  • to must be a non-zero address.
  • The caller's share balance must be >= value.

Events emitted ​

solidity
event Transfer(address indexed from, address indexed to, uint256 value);

Example — transfer 10 shares ​

ts
import { parseUnits } from 'viem'
import { publicClient, walletClient } from './client'
import { liteUsdVaultAbi } from './abi'
import { VAULT, SHARE_DECIMALS } from './constants'

const RECIPIENT = '0x...' as const
const value = parseUnits('10', SHARE_DECIMALS)

const { request } = await publicClient.simulateContract({
  account: walletClient.account!,
  address: VAULT,
  abi: liteUsdVaultAbi,
  functionName: 'transfer',
  args: [RECIPIENT, value],
})

const hash = await walletClient.writeContract(request)
await publicClient.waitForTransactionReceipt({ hash })

Notes ​

  • Transferring shares does not move the underlying USDC. The recipient now owns a claim on the same pool.
  • Share transfers are unaffected by withdrawalsPaused — only withdraw and redeem are gated.