> For the complete documentation index, see [llms.txt](https://docs.starke.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.starke.finance/products/fund-tokenization-as-a-service-ftaas/ftaas-api/vaults-transactions.md).

# Vaults Transactions

Vault transactions for investors and managers.

## Get vault deposit transaction

> Returns a serialized, partially-signed transaction to deposit a given amount into a vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/deposit":{"post":{"tags":["Vaults Transactions"],"summary":"Get vault deposit transaction","description":"Returns a serialized, partially-signed transaction to deposit a given amount into a vault.","operationId":"deposit","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultDepositTransactionQuery"}}},"required":true},"responses":{"200":{"description":"Successfully formed transaction.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Incorrect Solana Hash."},"418":{"description":"Server can't sign, authority keypair not available."},"424":{"description":"Jupiter Swap Error.","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"VaultDepositTransactionQuery":{"type":"object","required":["user","vault","recent_blockhash","amount"],"properties":{"user":{"$ref":"#/components/schemas/Pubkey"},"vault":{"$ref":"#/components/schemas/Pubkey"},"recent_blockhash":{"type":"string"},"amount":{"type":"integer","format":"int64","minimum":0}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"}}}}
```

## Get share estimate

> Returns the estimated amount of shares for given deposit token amount.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/simulate/deposit":{"post":{"tags":["Vaults Transactions"],"summary":"Get share estimate","description":"Returns the estimated amount of shares for given deposit token amount.","operationId":"simulate_deposit","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultSimulateDepositTransactionQuery"}}},"required":true},"responses":{"200":{"description":"Successfully fetched estimated price.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateDepResp"}}}},"400":{"description":"Numeric Overflow occured."},"404":{"description":"No price data available for this vault yet."},"412":{"description":"Vault price data is outdated."},"424":{"description":"Pyth Price Error."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"VaultSimulateDepositTransactionQuery":{"type":"object","required":["vault","amount"],"properties":{"vault":{"$ref":"#/components/schemas/Pubkey"},"amount":{"type":"integer","format":"int64","minimum":0}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"SimulateDepResp":{"type":"object","required":["estimated_shares","estimate_for_time"],"properties":{"estimated_shares":{"type":"integer","format":"int64","minimum":0},"estimate_for_time":{"type":"string","format":"date-time"}}}}}}
```

## Get deposit token estimate for withdrawal

> Returns the estimated amount of deposit tokens for a given vToken amount when withdrawing in deposit token.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/simulate/withdraw-in-deposit-token":{"post":{"tags":["Vaults Transactions"],"summary":"Get deposit token estimate for withdrawal","description":"Returns the estimated amount of deposit tokens for a given vToken amount when withdrawing in deposit token.","operationId":"simulate_withdraw_in_deposit_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateWithdrawQuery"}}},"required":true},"responses":{"200":{"description":"Successfully fetched estimated deposit tokens.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateWithdrawInDepositTokenResp"}}}},"400":{"description":"Numeric Overflow occured."},"404":{"description":"No price data available for this vault yet."},"412":{"description":"Vault price data is outdated."},"424":{"description":"Pyth Price Error."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"SimulateWithdrawQuery":{"type":"object","required":["vault","vtoken_amount"],"properties":{"vault":{"$ref":"#/components/schemas/Pubkey"},"vtoken_amount":{"type":"integer","format":"int64","minimum":0}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"SimulateWithdrawInDepositTokenResp":{"type":"object","required":["estimated_deposit_tokens","estimate_for_time"],"properties":{"estimated_deposit_tokens":{"type":"number","format":"double"},"estimate_for_time":{"type":"string","format":"date-time"}}}}}}
```

## Get proportional token estimate for withdrawal

> Returns the estimated amounts of each vault token for a given vToken amount when withdrawing proportionally.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/simulate/withdraw":{"post":{"tags":["Vaults Transactions"],"summary":"Get proportional token estimate for withdrawal","description":"Returns the estimated amounts of each vault token for a given vToken amount when withdrawing proportionally.","operationId":"simulate_withdraw","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateWithdrawQuery"}}},"required":true},"responses":{"200":{"description":"Successfully fetched estimated token withdrawals.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateWithdrawResp"}}}},"400":{"description":"Numeric Overflow occured."},"404":{"description":"No price data available for this vault yet."},"412":{"description":"Vault price data is outdated."},"424":{"description":"Pyth Price Error."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"SimulateWithdrawQuery":{"type":"object","required":["vault","vtoken_amount"],"properties":{"vault":{"$ref":"#/components/schemas/Pubkey"},"vtoken_amount":{"type":"integer","format":"int64","minimum":0}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"SimulateWithdrawResp":{"type":"object","required":["estimated_tokens","estimate_for_time"],"properties":{"estimated_tokens":{"type":"array","items":{"$ref":"#/components/schemas/EstimatedTokenWithdrawal"}},"estimate_for_time":{"type":"string","format":"date-time"}}},"EstimatedTokenWithdrawal":{"type":"object","required":["mint","estimated_amount"],"properties":{"mint":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"estimated_amount":{"type":"number","format":"double"}}}}}}
```

## Get vault swap on Jupiter transaction

> Returns a serialized, partially-signed transaction to swap tokens on Jupiter for a given vault context.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/swap-on-jupiter":{"post":{"tags":["Vaults Transactions"],"summary":"Get vault swap on Jupiter transaction","description":"Returns a serialized, partially-signed transaction to swap tokens on Jupiter for a given vault context.","operationId":"swap_on_jupiter","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultsGetSwapOnJupiterTransactionParams"}}},"required":true},"responses":{"200":{"description":"Successfully formed transaction.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Incorrect Solana Hash."},"418":{"description":"Server can't sign, authority keypair not available."},"424":{"description":"Jupiter Swap Error.","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"VaultsGetSwapOnJupiterTransactionParams":{"type":"object","required":["amount","manager","vault","input_mint","output_mint","recent_blockhash"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount of input tokens to swap (in smallest unit / lamports).","minimum":0},"manager":{"$ref":"#/components/schemas/Pubkey","description":"Public key of the vault manager initiating the swap."},"vault":{"$ref":"#/components/schemas/Pubkey","description":"Public key of the vault to swap tokens for."},"input_mint":{"$ref":"#/components/schemas/Pubkey","description":"Mint address of the token being swapped from."},"output_mint":{"$ref":"#/components/schemas/Pubkey","description":"Mint address of the token being swapped to."},"recent_blockhash":{"type":"string","description":"A recent Solana blockhash, base58-encoded. Fetch via `getLatestBlockhash`."},"jupiter_params":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/JupiterParams","description":"Optional Jupiter quote and swap-instruction parameters.\nOmit this field entirely to use Jupiter defaults."}]}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"JupiterParams":{"type":"object","description":"Optional Jupiter API parameters forwarded to the `/quote` and `/swap-instructions` endpoints.\n\nAll fields are optional. Omitting this object entirely uses Jupiter defaults.\n\n**Quote fields** (`/quote`): `slippage_bps`, `swap_mode`, `dexes`, `exclude_dexes`,\n`restrict_intermediate_tokens`, `only_direct_routes`, `as_legacy_transaction`,\n`platform_fee_bps`, `max_accounts`, `instruction_version`, `for_jito_bundle`.\n\n**Swap-instruction fields** (`/swap-instructions`): `wrap_and_unwrap_sol`, `fee_account`,\n`destination_token_account`, `dynamic_compute_unit_limit`, `skip_user_accounts_rpc_calls`,\n`dynamic_slippage`, `compute_unit_price_micro_lamports`, `blockhash_slots_to_expiry`.\n\n`as_legacy_transaction` is forwarded to both endpoints.","properties":{"slippage_bps":{"type":["integer","null"],"format":"int32","description":"Slippage tolerance in basis points. Default: 50 (0.5%).","default":null,"minimum":0},"swap_mode":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SwapMode","description":"Swap mode: `ExactIn` (default) or `ExactOut`.\nOnly Orca Whirlpool, Raydium CLMM, and Raydium CPMM support `ExactOut`."}],"default":null},"dexes":{"type":["array","null"],"items":{"type":"string"},"description":"Restrict routing to these DEXes only (e.g. `[\"Raydium\", \"Orca+V2\"]`).","default":null},"exclude_dexes":{"type":["array","null"],"items":{"type":"string"},"description":"Exclude these DEXes from routing (e.g. `[\"Meteora+DLMM\"]`).","default":null},"restrict_intermediate_tokens":{"type":["boolean","null"],"description":"Restrict intermediate tokens to stable tokens to reduce slippage risk. Default: `true`.","default":null},"only_direct_routes":{"type":["boolean","null"],"description":"Limit to single-hop routes only. May result in worse rates. Default: `false`.","default":null},"as_legacy_transaction":{"type":["boolean","null"],"description":"Use a legacy transaction instead of a versioned transaction. Default: `false`.\nForwarded to both `/quote` and `/swap-instructions`.","default":null},"platform_fee_bps":{"type":["integer","null"],"format":"int32","description":"Take platform fees in basis points. If set, `fee_account` must also be provided.","default":null,"minimum":0},"max_accounts":{"type":["integer","null"],"format":"int64","description":"Rough upper bound on the number of accounts used for the route. Default: 64.","default":null,"minimum":0},"instruction_version":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InstructionVersion","description":"Jupiter instruction version to use. Default: `V1`."}],"default":null},"for_jito_bundle":{"type":["boolean","null"],"description":"Set to `true` when the quote will be used in a Jito bundle.\nExcludes DEXes incompatible with Jito (e.g. HumidiFi). Default: `false`.","default":null},"wrap_and_unwrap_sol":{"type":["boolean","null"],"description":"Auto-wrap input SOL to WSOL and unwrap output WSOL to SOL. Default: `true`.","default":null},"fee_account":{"type":["string","null"],"description":"Initialized token account to collect platform fees.\nRequired when `platform_fee_bps` is set. Must match input or output mint.","default":null},"destination_token_account":{"type":["string","null"],"description":"Token account to receive the swap output, if different from the vault ATA.","default":null},"dynamic_compute_unit_limit":{"type":["boolean","null"],"description":"Simulate the swap to determine an accurate compute unit limit. Default: `false`.\nNote: has limited effect when using `/swap-instructions` (vs `/swap`).","default":null},"skip_user_accounts_rpc_calls":{"type":["boolean","null"],"description":"Skip RPC calls that check whether required token accounts already exist. Default: `false`.","default":null},"dynamic_slippage":{"type":["boolean","null"],"description":"Let Jupiter estimate and apply slippage directly on the transaction. Default: `false`.","default":null},"compute_unit_price_micro_lamports":{"type":["integer","null"],"format":"int64","description":"Priority fee in micro-lamports per compute unit.\nOverrides the server default of 150,000 micro-lamports.","default":null,"minimum":0},"blockhash_slots_to_expiry":{"type":["integer","null"],"format":"int32","description":"Number of slots the transaction remains valid before expiring.","default":null,"minimum":0}}},"SwapMode":{"type":"string","enum":["ExactIn","ExactOut"]},"InstructionVersion":{"type":"string","enum":["V1","V2"]}}}}
```

## Get vault swap to deposit token on Jupiter transaction

> Returns a serialized, partially-signed transaction to swap tokens on Jupiter to deposit token for a given vault context.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/swap-to-deposit-token-on-jupiter":{"post":{"tags":["Vaults Transactions"],"summary":"Get vault swap to deposit token on Jupiter transaction","description":"Returns a serialized, partially-signed transaction to swap tokens on Jupiter to deposit token for a given vault context.","operationId":"swap_to_deposit_token_on_jupiter","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultsGetSwapToDepositTokenOnJupiterTransactionParams"}}},"required":true},"responses":{"200":{"description":"Successfully formed transaction.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Incorrect Solana Hash."},"418":{"description":"Server can't sign, authority keypair not available."},"424":{"description":"Jupiter Swap Error.","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"VaultsGetSwapToDepositTokenOnJupiterTransactionParams":{"type":"object","required":["amount","vault","input_mint","recent_blockhash"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount of input tokens to swap (in smallest unit / lamports).","minimum":0},"vault":{"$ref":"#/components/schemas/Pubkey","description":"Public key of the vault to swap tokens for."},"input_mint":{"$ref":"#/components/schemas/Pubkey","description":"Mint address of the token being swapped from."},"recent_blockhash":{"type":"string","description":"A recent Solana blockhash, base58-encoded. Fetch via `getLatestBlockhash`."},"jupiter_params":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/JupiterParams","description":"Optional Jupiter quote and swap-instruction parameters.\nOmit this field entirely to use Jupiter defaults."}]}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"JupiterParams":{"type":"object","description":"Optional Jupiter API parameters forwarded to the `/quote` and `/swap-instructions` endpoints.\n\nAll fields are optional. Omitting this object entirely uses Jupiter defaults.\n\n**Quote fields** (`/quote`): `slippage_bps`, `swap_mode`, `dexes`, `exclude_dexes`,\n`restrict_intermediate_tokens`, `only_direct_routes`, `as_legacy_transaction`,\n`platform_fee_bps`, `max_accounts`, `instruction_version`, `for_jito_bundle`.\n\n**Swap-instruction fields** (`/swap-instructions`): `wrap_and_unwrap_sol`, `fee_account`,\n`destination_token_account`, `dynamic_compute_unit_limit`, `skip_user_accounts_rpc_calls`,\n`dynamic_slippage`, `compute_unit_price_micro_lamports`, `blockhash_slots_to_expiry`.\n\n`as_legacy_transaction` is forwarded to both endpoints.","properties":{"slippage_bps":{"type":["integer","null"],"format":"int32","description":"Slippage tolerance in basis points. Default: 50 (0.5%).","default":null,"minimum":0},"swap_mode":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SwapMode","description":"Swap mode: `ExactIn` (default) or `ExactOut`.\nOnly Orca Whirlpool, Raydium CLMM, and Raydium CPMM support `ExactOut`."}],"default":null},"dexes":{"type":["array","null"],"items":{"type":"string"},"description":"Restrict routing to these DEXes only (e.g. `[\"Raydium\", \"Orca+V2\"]`).","default":null},"exclude_dexes":{"type":["array","null"],"items":{"type":"string"},"description":"Exclude these DEXes from routing (e.g. `[\"Meteora+DLMM\"]`).","default":null},"restrict_intermediate_tokens":{"type":["boolean","null"],"description":"Restrict intermediate tokens to stable tokens to reduce slippage risk. Default: `true`.","default":null},"only_direct_routes":{"type":["boolean","null"],"description":"Limit to single-hop routes only. May result in worse rates. Default: `false`.","default":null},"as_legacy_transaction":{"type":["boolean","null"],"description":"Use a legacy transaction instead of a versioned transaction. Default: `false`.\nForwarded to both `/quote` and `/swap-instructions`.","default":null},"platform_fee_bps":{"type":["integer","null"],"format":"int32","description":"Take platform fees in basis points. If set, `fee_account` must also be provided.","default":null,"minimum":0},"max_accounts":{"type":["integer","null"],"format":"int64","description":"Rough upper bound on the number of accounts used for the route. Default: 64.","default":null,"minimum":0},"instruction_version":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InstructionVersion","description":"Jupiter instruction version to use. Default: `V1`."}],"default":null},"for_jito_bundle":{"type":["boolean","null"],"description":"Set to `true` when the quote will be used in a Jito bundle.\nExcludes DEXes incompatible with Jito (e.g. HumidiFi). Default: `false`.","default":null},"wrap_and_unwrap_sol":{"type":["boolean","null"],"description":"Auto-wrap input SOL to WSOL and unwrap output WSOL to SOL. Default: `true`.","default":null},"fee_account":{"type":["string","null"],"description":"Initialized token account to collect platform fees.\nRequired when `platform_fee_bps` is set. Must match input or output mint.","default":null},"destination_token_account":{"type":["string","null"],"description":"Token account to receive the swap output, if different from the vault ATA.","default":null},"dynamic_compute_unit_limit":{"type":["boolean","null"],"description":"Simulate the swap to determine an accurate compute unit limit. Default: `false`.\nNote: has limited effect when using `/swap-instructions` (vs `/swap`).","default":null},"skip_user_accounts_rpc_calls":{"type":["boolean","null"],"description":"Skip RPC calls that check whether required token accounts already exist. Default: `false`.","default":null},"dynamic_slippage":{"type":["boolean","null"],"description":"Let Jupiter estimate and apply slippage directly on the transaction. Default: `false`.","default":null},"compute_unit_price_micro_lamports":{"type":["integer","null"],"format":"int64","description":"Priority fee in micro-lamports per compute unit.\nOverrides the server default of 150,000 micro-lamports.","default":null,"minimum":0},"blockhash_slots_to_expiry":{"type":["integer","null"],"format":"int32","description":"Number of slots the transaction remains valid before expiring.","default":null,"minimum":0}}},"SwapMode":{"type":"string","enum":["ExactIn","ExactOut"]},"InstructionVersion":{"type":"string","enum":["V1","V2"]}}}}
```

## Get vault withdraw transaction

> Returns a serialized, partially-signed transaction to withdraw a given amount into a vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/withdraw":{"post":{"tags":["Vaults Transactions"],"summary":"Get vault withdraw transaction","description":"Returns a serialized, partially-signed transaction to withdraw a given amount into a vault.","operationId":"withdraw","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultWithdrawTransactionQuery"}}},"required":true},"responses":{"200":{"description":"Successfully formed transaction.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Incorrect Solana Hash."},"418":{"description":"Server can't sign, authority keypair not available."},"424":{"description":"Jupiter Swap Error.","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"VaultWithdrawTransactionQuery":{"type":"object","required":["user","vault","recent_blockhash","amount"],"properties":{"user":{"$ref":"#/components/schemas/Pubkey"},"vault":{"$ref":"#/components/schemas/Pubkey"},"recent_blockhash":{"type":"string"},"amount":{"type":"integer","format":"int64","minimum":0}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"}}}}
```

## Get vault withdraw-in-deposit-token transaction

> Returns a serialized, partially-signed transaction to withdraw a given amount of deposit token into a vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/withdraw-in-deposit-token":{"post":{"tags":["Vaults Transactions"],"summary":"Get vault withdraw-in-deposit-token transaction","description":"Returns a serialized, partially-signed transaction to withdraw a given amount of deposit token into a vault.","operationId":"withdraw_in_deposit_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultWithdrawTransactionQuery"}}},"required":true},"responses":{"200":{"description":"Successfully formed transaction.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Incorrect Solana Hash."},"418":{"description":"Server can't sign, authority keypair not available."},"424":{"description":"Jupiter Swap Error.","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"VaultWithdrawTransactionQuery":{"type":"object","required":["user","vault","recent_blockhash","amount"],"properties":{"user":{"$ref":"#/components/schemas/Pubkey"},"vault":{"$ref":"#/components/schemas/Pubkey"},"recent_blockhash":{"type":"string"},"amount":{"type":"integer","format":"int64","minimum":0}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"}}}}
```

## Get vault CreateVault transaction

> Returns a serialized, partially-signed transaction to create a vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/create-vault":{"post":{"tags":["Vaults Transactions"],"summary":"Get vault CreateVault transaction","description":"Returns a serialized, partially-signed transaction to create a vault.","operationId":"create_vault","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVaultTransactionQuery"}}},"required":true},"responses":{"200":{"description":"Successfully formed transaction.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Incorrect Solana Hash."},"418":{"description":"Server can't sign, authority keypair not available."},"424":{"description":"Jupiter Swap Error.","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"CreateVaultTransactionQuery":{"type":"object","required":["name","symbol","uri","vtoken_is_transferrable","initial_vtoken_price","management_fee_rate","max_depositors","allow_unknown","allow_entity","allow_individual","allow_basic","allow_accredited","allow_qualified","unknown_min_deposit","unknown_max_deposit","entity_min_deposit","entity_max_deposit","individual_min_deposit","individual_max_deposit","manager","deposit_token_mint","transfer_hook_program","recent_blockhash"],"properties":{"name":{"type":"string"},"symbol":{"type":"string"},"uri":{"type":"string"},"vtoken_is_transferrable":{"type":"boolean"},"max_allowed_aum":{"type":["integer","null"],"format":"int64","minimum":0},"initial_vtoken_price":{"type":"integer","format":"int32","minimum":0},"management_fee_rate":{"type":"integer","format":"int32","minimum":0},"max_depositors":{"type":"integer","format":"int32","minimum":0},"allow_unknown":{"type":"boolean"},"allow_entity":{"type":"boolean"},"allow_individual":{"type":"boolean"},"allow_basic":{"type":"boolean"},"allow_accredited":{"type":"boolean"},"allow_qualified":{"type":"boolean"},"unknown_min_deposit":{"type":"integer","format":"int32","minimum":0},"unknown_max_deposit":{"type":"integer","format":"int32","minimum":0},"entity_min_deposit":{"type":"integer","format":"int32","minimum":0},"entity_max_deposit":{"type":"integer","format":"int32","minimum":0},"individual_min_deposit":{"type":"integer","format":"int32","minimum":0},"individual_max_deposit":{"type":"integer","format":"int32","minimum":0},"manager":{"$ref":"#/components/schemas/Pubkey"},"deposit_token_mint":{"$ref":"#/components/schemas/Pubkey"},"transfer_hook_program":{"$ref":"#/components/schemas/Pubkey"},"recent_blockhash":{"type":"string"}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"}}}}
```

## Get vault CloseVault transaction

> Returns a serialized, partially-signed transaction to close a vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults Transactions","description":"Vault transactions for investors and managers."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults-tx/close-vault":{"post":{"tags":["Vaults Transactions"],"summary":"Get vault CloseVault transaction","description":"Returns a serialized, partially-signed transaction to close a vault.","operationId":"close_vault","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloseVaultTransactionQuery"}}},"required":true},"responses":{"200":{"description":"Successfully formed transaction.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Incorrect Solana Hash."},"418":{"description":"Server can't sign, authority keypair not available."},"424":{"description":"Jupiter Swap Error.","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"CloseVaultTransactionQuery":{"type":"object","required":["manager","vault_id","transfer_hook_program","recent_blockhash"],"properties":{"manager":{"$ref":"#/components/schemas/Pubkey"},"vault_id":{"$ref":"#/components/schemas/Pubkey"},"transfer_hook_program":{"$ref":"#/components/schemas/Pubkey"},"recent_blockhash":{"type":"string"}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.starke.finance/products/fund-tokenization-as-a-service-ftaas/ftaas-api/vaults-transactions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
