---
title: "Deposit with approval"
method: POST
path: "/defi/v1/lendborrow/deposit-with-approval"
tags: ["lendborrow"]
---

# Deposit with approval

`POST /defi/v1/lendborrow/deposit-with-approval`

## Request

- Base URL: `https://svc.blockdaemon.com`
- URL: `https://svc.blockdaemon.com/defi/v1/lendborrow/deposit-with-approval`
- Auth: API key in header `X-API-Key`

Returns unsigned transactions for ERC-20 approval when allowance is below the deposit amount, plus the protocol deposit transaction. Without batchOption, data is an ordered array [approveTxn?, depositTxn]. With batchOption EIP-5792 or EIP-7702 (supported chains), returns a single batched payload. Same request parameters as Deposit per protocol.

> 💡 
**Compute Unit Value:** `230` (Fixed)

## Request body

- LendborrowDepositWithApprovalRequest: The request body for a /defi/v1/lendborrow/deposit-with-approval
  - `lendborrowId` '1000' | '1003' | '1005' | '1200' | '1208' | '1203' | '1204' | '1205' | '1206' | '1207' | '1100' | '1300' | '1302' | '1400' | '1401' | '1402' | '1403' | '1404': The unique ID to specify the lending and borrowing protocol for routing relevant queries or transactions.
  - `asset` string: Token address of the asset to deposit.
  - `amount` string, required: Number of tokens, specified in the token's smallest denomination (base units). Do not send human-readable decimal values. Examples: 1 WETH (18 decimals) = "1000000000000000000"; 1 USDC (6 decimals) = "1000000".
  - `onBehalfOf` string, required: Public address of the user on whose behalf the deposit action will be executed.
  - `from` string, required: Blockchain address of the sender. For EVM chains, use a checksummed hex address (e.g., 0xABCDEF...). This address must hold sufficient balance and will sign the transaction.
  - `gas` string: Maximum number of gas units to allocate for the transaction, as an integer string (e.g., '200000'). If omitted, gas is estimated automatically. Note: this is gas units, not wei or gwei.
  - `gasPriority` string: Specifies the priority level for gas fees (e.g., 'low', 'medium', or 'high'), which influences the transaction speed and cost.
  - `enableFee` boolean: Flag to include a basis points fee transaction alongside the main transaction when set to true.
  - `batchOption` 'EIP-5792' | 'EIP-7702': Transaction batching standard to use. Supported values: 'EIP-5792' (wallet-level batching via wallet_sendCalls) or 'EIP-7702' (EOA code delegation via batcherContract). Requires batcherContract when using EIP-7702.
  - `batcherContract` string: The EOA address of the batcher that will be used to execute the transaction when using EIP-7702 batching. If not provided, the default batcher contract for the chain will be used.
  - `simulate` boolean: When true, dry-runs the transaction batch via eth_simulateV1 and returns a simulate field with status and error on each transaction.
  - `useCustomVaults` boolean: A boolean flag to scope the API request. If true, the request will be processed using the partner's dedicated vaults. If false or omitted, it uses the standard public pools.
  - `to` string: Blockchain address of the recipient. For EVM chains, use a checksummed hex address (e.g., 0xABCDEF...).
  - `market` string: The market of the asset, such as USDC or WETH. Defaults to USDC.
  - `marketId` string: Specifies the market Id of any market in Morpho.
  - `vaultAddress` string: Specifies the vaultAddress of any vault in Morpho.
  - `collateral` boolean: Specifies the condition for depositing the token as a supply to earn the yields only or use it as collateral to borrow loan asset.

## Response `200`

Successful response

- object
  - `status` number: Numeric status code indicating success or failure of the API call
  - `msg` string: Human-readable message describing the API result or error
  - `data` union
    - object[]: Ordered EVM transactions: optional ERC-20 approve then deposit, or deposit only when allowance is sufficient.
      - `chainId` string, required: Blockchain network identifier (EVM chain ID, Solana chain name, etc.)
      - `from` string, required: Sender's wallet address
      - `to` string, required: Recipient's wallet address
      - `value` string, required: Amount being transferred or involved in a transaction
      - `gas` string: Gas limit for the transaction
      - `gasPrice` string: Price per gas unit for the transaction
      - `data` string, required: Main payload object or array returned by the API
      - `referenceId` string, required: Unique ID for tracking a specific transaction or operation
      - `simulate` object: Present when the request used `simulate: true`; per-leg `eth_simulateV1` summary (omitted when simulation was not run).
        - `status` 'success' | 'failure', required
        - `error` string, nullable, required: Failure reason when status is failure; null when status is success
    - object
      - `createFeeTxn` object, required
        - `chainId` string, required: Blockchain network identifier (EVM chain ID, Solana chain name, etc.)
        - `from` string, required: Sender's wallet address
        - `to` string, required: Recipient's wallet address
        - `value` string, required: Amount being transferred or involved in a transaction
        - `gasPrice` string: Price per gas unit for the transaction
        - `gas` string: Gas limit for the transaction
        - `simulate` object: Present when the request used `simulate: true` with `enableFee: true`; fee leg `eth_simulateV1` summary.
          - `status` 'success' | 'failure', required
          - `error` string, nullable, required: Failure reason when status is failure; null when status is success
      - `depositWithApprovalTxn` object[], required
        - `chainId` string, required: Blockchain network identifier (EVM chain ID, Solana chain name, etc.)
        - `from` string, required: Sender's wallet address
        - `to` string, required: Recipient's wallet address
        - `value` string, required: Amount being transferred or involved in a transaction
        - `gas` string: Gas limit for the transaction
        - `gasPrice` string: Price per gas unit for the transaction
        - `data` string, required: Main payload object or array returned by the API
        - `referenceId` string, required: Unique ID for tracking a specific transaction or operation
        - `simulate` object: Present when the request used `simulate: true` with `enableFee: true`; per-leg `eth_simulateV1` summary.
          - `status` 'success' | 'failure', required
          - `error` string, nullable, required: Failure reason when status is failure; null when status is success
    - object
      - `from` string, required
      - `chainId` string, required
      - `referenceId` string, required
      - `methodUsed` 'EIP-5792' | 'EIP-7702', required
      - `calls` object[], required
        - `to` string, required
        - `value` string, required
        - `data` string, required
    - object
      - `from` string, required
      - `chainId` string, required
      - `referenceId` string, required
      - `methodUsed` string, required
      - `to` string, required
      - `data` string, required
      - `value` string, required
      - `batcherContract` string, required

---

[API](https://skmtc.dev/blockdaemon/apis/blockdaemon-defi-api.md) - [All operations](https://skmtc.dev/blockdaemon/apis/blockdaemon-defi-api/llms.txt) - [OpenAPI document](https://skmtc.dev/blockdaemon/apis/blockdaemon-defi-api/revisions/ec053b7c8041?raw)
