# 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"}}}}
```
