Skip to content

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.

  1. User calls ft_transfer_call on supported NEP-141 token with DepositMessage (is_request = false).
  2. Vault validates deposit, calculates shares to mint based on current share price.
  3. Vault mints shares to user immediately.

Async Deposit

Use async deposit (is_request = true) when deposit size exceeds max_sync_deposit.

  1. User calls ft_transfer_call with is_request = true
  2. Vault validates deposit, checks TVL cap & deposit flow cap for queueing, then create a pending deposits.
  3. Operators (or Dew Kernel / agents) process async deposits through dew_vault_process_pending_deposits
  4. Shares minted to the user.

NOTE: Users can cancel their own queued deposits before they are processed via cancel_request_deposit.