Deposits
Deposits into a Dew Vault are always initiated via ft_transfer_call on a supported NEP-141 token.
The vault then decides whether to:
- Process immediately (sync deposit), or
- Queue the deposit in the Teller (async deposit).
Both paths use the same JSON msg payload: DepositMessage.
TL;DR
- You always send tokens via
ft_transfer_call.is_request = false→ sync deposit (instant).is_request = true→ async deposit (queued, processed later).
Sync Deposit
Use sync deposit (is_request = false) when deposit size is within max_sync_deposit. Basically for instant share minting and no queue.
- User calls
ft_transfer_callon supported NEP-141 token withDepositMessage(is_request = false). - Vault validates deposit, calculates shares to mint based on current share price.
- Vault mints shares to user immediately.
Async Deposit
Use async deposit (is_request = true) when deposit size exceeds max_sync_deposit.
- User calls ft_transfer_call with is_request = true
- Vault validates deposit, checks TVL cap & deposit flow cap for queueing, then create a pending deposits.
- Operators (or Dew Kernel / agents) process async deposits through
dew_vault_process_pending_deposits - Shares minted to the user.
NOTE: Users can cancel their own queued deposits before they are processed via
cancel_request_deposit.
