use deposit

Mutation hook for depositing assets into a vault via the gateway contract, with transaction tracking and automatic query invalidation.

const { deposit, isPending, isSuccess, hash } = useDeposit({ vault: 'yoETH' })

Usage

import { useDeposit } from '@yo-protocol/react'
import { parseEther } from 'viem'

function DepositButton() {
  const {
    deposit,
    isPending,
    isSuccess,
    hash,
    error,
    reset,
  } = useDeposit({
    vault: 'yoETH',
    slippageBps: 50,
    onSubmitted: (hash) => console.log('Deposited:', hash),
    onError: (err) => console.error(err),
  })

  return (
    <div>
      <button onClick={() => deposit(parseEther('0.1'))} disabled={isPending}>
        {isPending ? 'Depositing...' : 'Deposit 0.1 ETH'}
      </button>

      {isSuccess && <p>Confirmed! Tx: {hash}</p>}
      {error && (
        <p>
          Error: {error.message}
          <button onClick={reset}>Dismiss</button>
        </p>
      )}
    </div>
  )
}

Options

Option
Type
Default
Description

vault

Address | VaultId

Required. Target vault

slippageBps

number

50 (0.5%)

Slippage tolerance in basis points

onSubmitted

(hash: Hash) => void

Called after the transaction is sent

onConfirmed

(hash: Hash) => void

Called after the transaction is confirmed on-chain

onError

(error: Error) => void

Called on error

Return Value

Field
Type
Description

deposit

(amount: bigint) => Promise<Hash>

Execute a deposit for the given asset amount

isPending

boolean

true while the transaction is being sent or confirmed

isError

boolean

true if the transaction failed

error

Error | null

Error object

isSuccess

boolean

true after the transaction is confirmed on-chain

hash

Hash | undefined

Transaction hash once submitted

reset

() => void

Reset all state back to idle

Behavior

Behavior
Detail

Query invalidation

Automatically invalidates useVault and useUserBalance queries on success

Confirmation tracking

Uses useWaitForTransactionReceipt internally — isSuccess flips to true only after on-chain confirmation

Error propagation

Fires both the local onError callback and the global YieldProvider.onError handler

Slippage

The gateway calculates the minimum output based on slippageBps and reverts if not met

circle-exclamation