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