---
title: "Generate a deposit transaction"
method: POST
path: "/deposit/tx"
tags: ["Deposits"]
---

# Generate a deposit transaction

`POST /deposit/tx`

Generates a base64-encoded, serialized unsigned Solana versioned transaction. `payer_key` is required for transaction generation.

## Request body

- DepositTransactionRequest — Public transaction request schema. The runtime uses `StructuredInputForDeposit` for both deposit endpoints, but transaction generation additionally requires `payer_key`; keeping a distinct documentation schema makes that requirement machine-readable without changing the accepted Rust input type.
  - `params` DepositTransactionParams, required
    - `all` boolean, nullable — Deposit the full token-account balance. Defaults to `false` and is not allowed for SOL.
    - `amount` integer, nullable — Amount in the token's smallest unit. Required unless `all` is `true`.
    - `base_asset` string, required — Base-asset mint address within the strategy.
    - `fund_id` string, nullable — Deprecated and rejected by the API. Use `strategy_id` + `base_asset`.
    - `payer_key` string, required — Transaction payer.
    - `strategy_id` string, required — Strategy identifier.
    - `user_key` string, required — Depositing wallet address.
    - `user_token_account` string, nullable — Source token account. Defaults to the user's associated token account.

## Response `200`

Base64-encoded serialized transaction

- string

## Other responses

- `400` — Invalid deposit request
- `401` — Missing API key
- `404` — Invalid, inactive, or expired API key
- `500` — Internal server error

---

[API](https://skmtc.net/breeze-baby/apis/breeze-api.md) · [All operations](https://skmtc.net/breeze-baby/apis/breeze-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/breeze-baby/breeze-api/versions/d0a18846aa92/schema)
