# Vaults

Vault analytics. Get vault details, transactions, description and icon, investors, etc.

## Get vtokens

> List vtoken market data (price, AUM, supply, mint, symbol, name, uri) for all Starke Finance vaults.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vtokens":{"post":{"tags":["Vaults"],"summary":"Get vtokens","description":"List vtoken market data (price, AUM, supply, mint, symbol, name, uri) for all Starke Finance vaults.","operationId":"get_vtokens","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","default":1,"minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","default":20,"maximum":100,"minimum":1}},{"name":"search","in":"query","required":false,"schema":{"type":["string","null"]}},{"name":"sort_by","in":"query","required":false,"schema":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/GetAllVaultsOrder"}]}},{"name":"order","in":"query","required":false,"schema":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/QueryOrder"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaultsJsonQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved vtoken list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VtokenListResp"}}}},"400":{"description":"include_ids and exclude_ids must be disjoint."},"418":{"description":"I'm a teapot."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"GetAllVaultsOrder":{"type":"string","enum":["vault_id","name","symbol","created_at","updated_at","vtoken_price","change1d","change7d","change30d","change1y","change_ytd"]},"QueryOrder":{"type":"string","enum":["asc","desc"]},"GetVaultsJsonQuery":{"type":"object","properties":{"manager_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/Pubkey"}},"exclude_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/Pubkey"}},"include_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/Pubkey"}}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"VtokenListResp":{"allOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"object","required":["vtokens"],"properties":{"vtokens":{"type":"array","items":{"$ref":"#/components/schemas/VtokenPrice"},"description":"List of `VtokenPrice`"}}}],"description":"Vtoken List Response Model"},"Pagination":{"type":"object","required":["page","limit","total_pages","total_count"],"properties":{"page":{"type":"integer","format":"int32","description":"Current page number","minimum":0},"limit":{"type":"integer","format":"int32","description":"Number of items per page","minimum":0},"total_pages":{"type":"integer","format":"int32","description":"Total number of pages","minimum":0},"total_count":{"type":"integer","format":"int64","description":"Total number of items","minimum":0}}},"VtokenPrice":{"allOf":[{"$ref":"#/components/schemas/Vtoken"},{"type":"object","required":["vault_id"],"properties":{"vault_id":{"$ref":"#/components/schemas/Pubkey","description":"Vault this Vtoken belongs to"}}}],"title":"VtokenPrice","description":"Vtoken Price Response Model"},"Vtoken":{"type":"object","title":"Vtoken","description":"Vault Vtoken Response Model","required":["mint_id","symbol","name","uri"],"properties":{"mint_id":{"$ref":"#/components/schemas/Pubkey","description":"Mint of the Vtoken"},"symbol":{"type":"string","description":"Symbol of the Vtoken"},"name":{"type":"string","description":"Name of the Vtoken / Vault"},"uri":{"type":"string","description":"URI of the Vtoken"},"supply":{"type":["number","null"],"format":"double","description":"Supply of the Vtoken"},"price_usd":{"type":["number","null"],"format":"double","description":"Price of the Vtoken in USD"},"aum_usd":{"type":["number","null"],"format":"double","description":"AUM of the Vtoken in USD"}}}}}}
```

## Get all vaults

> List all Starke Finance vaults' information.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults":{"post":{"tags":["Vaults"],"summary":"Get all vaults","description":"List all Starke Finance vaults' information.","operationId":"get_vaults","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","default":1,"minimum":1}},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","default":20,"maximum":100,"minimum":1}},{"name":"search","in":"query","required":false,"schema":{"type":["string","null"]}},{"name":"sort_by","in":"query","required":false,"schema":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/GetAllVaultsOrder"}]}},{"name":"order","in":"query","required":false,"schema":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/QueryOrder"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaultsJsonQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved vaults.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultListResp"}}}},"400":{"description":"include_ids and exclude_ids must be disjoint."},"418":{"description":"I'm a teapot."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"GetAllVaultsOrder":{"type":"string","enum":["vault_id","name","symbol","created_at","updated_at","vtoken_price","change1d","change7d","change30d","change1y","change_ytd"]},"QueryOrder":{"type":"string","enum":["asc","desc"]},"GetVaultsJsonQuery":{"type":"object","properties":{"manager_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/Pubkey"}},"exclude_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/Pubkey"}},"include_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/Pubkey"}}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"VaultListResp":{"allOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"object","required":["vaults"],"properties":{"vaults":{"type":"array","items":{"$ref":"#/components/schemas/VaultResp"},"description":"List of `VaultResp`"}}}],"description":"Vault List with pagination data"},"Pagination":{"type":"object","required":["page","limit","total_pages","total_count"],"properties":{"page":{"type":"integer","format":"int32","description":"Current page number","minimum":0},"limit":{"type":"integer","format":"int32","description":"Number of items per page","minimum":0},"total_pages":{"type":"integer","format":"int32","description":"Total number of pages","minimum":0},"total_count":{"type":"integer","format":"int64","description":"Total number of items","minimum":0}}},"VaultResp":{"type":"object","description":"Vault Details","required":["id","name","manager_id","created_at","is_closed","current_depositors","deposit_token_mint_id","signature","metadata","config","vtoken","returns"],"properties":{"id":{"$ref":"#/components/schemas/Pubkey"},"name":{"type":"string"},"manager_id":{"$ref":"#/components/schemas/Pubkey"},"created_at":{"type":"string","format":"date-time"},"is_closed":{"type":"boolean"},"prices_updated_at":{"type":["string","null"],"format":"date-time"},"current_depositors":{"type":"integer","format":"int32"},"deposit_token_mint_id":{"$ref":"#/components/schemas/Pubkey"},"signature":{"$ref":"#/components/schemas/Signature"},"initial_vtoken_price":{"type":["integer","null"],"format":"int32"},"metadata":{"$ref":"#/components/schemas/VaultMetadata"},"config":{"$ref":"#/components/schemas/VaultConfig"},"vtoken":{"$ref":"#/components/schemas/Vtoken"},"returns":{"$ref":"#/components/schemas/VaultReturns"},"volatility_annualized":{"type":["number","null"],"format":"double"}}},"Signature":{"type":"string","description":"Base-58 encoded Solana Signature","contentEncoding":"base58"},"VaultMetadata":{"type":"object","title":"VaultMetadata","description":"Admin-managed vault metadata (icon and description only)","properties":{"description":{"type":["string","null"]},"icon_url":{"type":["string","null"]}}},"VaultConfig":{"type":"object","title":"VaultConfig","description":"On-chain vault configuration","required":["allowed_investor_types","allowed_investor_tiers","max_depositors","individual_min_deposit","entity_min_deposit","is_transferrable"],"properties":{"allowed_investor_types":{"$ref":"#/components/schemas/InvestorTypeAccess"},"allowed_investor_tiers":{"$ref":"#/components/schemas/InvestorTierAccess"},"max_allowed_aum":{"type":["integer","null"],"format":"int64"},"max_depositors":{"type":"integer","format":"int32"},"individual_min_deposit":{"type":"integer","format":"int32"},"individual_max_deposit":{"type":["integer","null"],"format":"int32"},"entity_min_deposit":{"type":"integer","format":"int32"},"entity_max_deposit":{"type":["integer","null"],"format":"int32"},"is_transferrable":{"type":"boolean"}}},"InvestorTypeAccess":{"type":"object","description":"Which investor types are allowed to deposit (0 bitmask = all allowed)","required":["unknown","entity","individual"],"properties":{"unknown":{"type":"boolean"},"entity":{"type":"boolean"},"individual":{"type":"boolean"}}},"InvestorTierAccess":{"type":"object","description":"Which investor tiers are allowed to deposit (0 bitmask = all allowed)","required":["basic","accredited","qualified"],"properties":{"basic":{"type":"boolean"},"accredited":{"type":"boolean"},"qualified":{"type":"boolean"}}},"Vtoken":{"type":"object","title":"Vtoken","description":"Vault Vtoken Response Model","required":["mint_id","symbol","name","uri"],"properties":{"mint_id":{"$ref":"#/components/schemas/Pubkey","description":"Mint of the Vtoken"},"symbol":{"type":"string","description":"Symbol of the Vtoken"},"name":{"type":"string","description":"Name of the Vtoken / Vault"},"uri":{"type":"string","description":"URI of the Vtoken"},"supply":{"type":["number","null"],"format":"double","description":"Supply of the Vtoken"},"price_usd":{"type":["number","null"],"format":"double","description":"Price of the Vtoken in USD"},"aum_usd":{"type":["number","null"],"format":"double","description":"AUM of the Vtoken in USD"}}},"VaultReturns":{"type":"object","title":"VaultReturns","description":"Vault Returns for last year, month, and quarter to date","required":["mtd","qtd","ytd","return_1d","return_7d","return_30d","return_1y"],"properties":{"mtd":{"type":"number","format":"double","description":"Month to date return"},"qtd":{"type":"number","format":"double","description":"Quarter(Financial) to date return"},"ytd":{"type":"number","format":"double","description":"Year to date return"},"return_1d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 24hrs"},"return_7d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 7 days"},"return_30d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 30 days"},"return_1y":{"type":"number","format":"double","description":"Percentage change in AUM in the last 1 year"}}}}}}
```

## Get vault by id

> Get detailed information about a specific Starke Finance vault with returns.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}":{"get":{"tags":["Vaults"],"summary":"Get vault by id","description":"Get detailed information about a specific Starke Finance vault with returns.","operationId":"get_vault_by_id","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}}],"responses":{"200":{"description":"Successfull retrieved vault.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultByIdResp"}}}},"404":{"description":"Vault was not found."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"VaultByIdResp":{"type":"object","description":"Vault Details with returns and volatility","required":["vault"],"properties":{"vault":{"$ref":"#/components/schemas/VaultResp"}}},"VaultResp":{"type":"object","description":"Vault Details","required":["id","name","manager_id","created_at","is_closed","current_depositors","deposit_token_mint_id","signature","metadata","config","vtoken","returns"],"properties":{"id":{"$ref":"#/components/schemas/Pubkey"},"name":{"type":"string"},"manager_id":{"$ref":"#/components/schemas/Pubkey"},"created_at":{"type":"string","format":"date-time"},"is_closed":{"type":"boolean"},"prices_updated_at":{"type":["string","null"],"format":"date-time"},"current_depositors":{"type":"integer","format":"int32"},"deposit_token_mint_id":{"$ref":"#/components/schemas/Pubkey"},"signature":{"$ref":"#/components/schemas/Signature"},"initial_vtoken_price":{"type":["integer","null"],"format":"int32"},"metadata":{"$ref":"#/components/schemas/VaultMetadata"},"config":{"$ref":"#/components/schemas/VaultConfig"},"vtoken":{"$ref":"#/components/schemas/Vtoken"},"returns":{"$ref":"#/components/schemas/VaultReturns"},"volatility_annualized":{"type":["number","null"],"format":"double"}}},"Signature":{"type":"string","description":"Base-58 encoded Solana Signature","contentEncoding":"base58"},"VaultMetadata":{"type":"object","title":"VaultMetadata","description":"Admin-managed vault metadata (icon and description only)","properties":{"description":{"type":["string","null"]},"icon_url":{"type":["string","null"]}}},"VaultConfig":{"type":"object","title":"VaultConfig","description":"On-chain vault configuration","required":["allowed_investor_types","allowed_investor_tiers","max_depositors","individual_min_deposit","entity_min_deposit","is_transferrable"],"properties":{"allowed_investor_types":{"$ref":"#/components/schemas/InvestorTypeAccess"},"allowed_investor_tiers":{"$ref":"#/components/schemas/InvestorTierAccess"},"max_allowed_aum":{"type":["integer","null"],"format":"int64"},"max_depositors":{"type":"integer","format":"int32"},"individual_min_deposit":{"type":"integer","format":"int32"},"individual_max_deposit":{"type":["integer","null"],"format":"int32"},"entity_min_deposit":{"type":"integer","format":"int32"},"entity_max_deposit":{"type":["integer","null"],"format":"int32"},"is_transferrable":{"type":"boolean"}}},"InvestorTypeAccess":{"type":"object","description":"Which investor types are allowed to deposit (0 bitmask = all allowed)","required":["unknown","entity","individual"],"properties":{"unknown":{"type":"boolean"},"entity":{"type":"boolean"},"individual":{"type":"boolean"}}},"InvestorTierAccess":{"type":"object","description":"Which investor tiers are allowed to deposit (0 bitmask = all allowed)","required":["basic","accredited","qualified"],"properties":{"basic":{"type":"boolean"},"accredited":{"type":"boolean"},"qualified":{"type":"boolean"}}},"Vtoken":{"type":"object","title":"Vtoken","description":"Vault Vtoken Response Model","required":["mint_id","symbol","name","uri"],"properties":{"mint_id":{"$ref":"#/components/schemas/Pubkey","description":"Mint of the Vtoken"},"symbol":{"type":"string","description":"Symbol of the Vtoken"},"name":{"type":"string","description":"Name of the Vtoken / Vault"},"uri":{"type":"string","description":"URI of the Vtoken"},"supply":{"type":["number","null"],"format":"double","description":"Supply of the Vtoken"},"price_usd":{"type":["number","null"],"format":"double","description":"Price of the Vtoken in USD"},"aum_usd":{"type":["number","null"],"format":"double","description":"AUM of the Vtoken in USD"}}},"VaultReturns":{"type":"object","title":"VaultReturns","description":"Vault Returns for last year, month, and quarter to date","required":["mtd","qtd","ytd","return_1d","return_7d","return_30d","return_1y"],"properties":{"mtd":{"type":"number","format":"double","description":"Month to date return"},"qtd":{"type":"number","format":"double","description":"Quarter(Financial) to date return"},"ytd":{"type":"number","format":"double","description":"Year to date return"},"return_1d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 24hrs"},"return_7d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 7 days"},"return_30d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 30 days"},"return_1y":{"type":"number","format":"double","description":"Percentage change in AUM in the last 1 year"}}}}}}
```

## Get vault assets bulk

> Get current holdings for up to 25 Starke Finance vaults in a single request.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/assets":{"post":{"tags":["Vaults"],"summary":"Get vault assets bulk","description":"Get current holdings for up to 25 Starke Finance vaults in a single request.","operationId":"get_vault_assets_bulk","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaultAssetsBulkQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved bulk vault assets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultAssetsBulkResp"}}}},"400":{"description":"Too many vaults requested (max 25)."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"GetVaultAssetsBulkQuery":{"type":"object","required":["vaults"],"properties":{"vaults":{"type":"array","items":{"$ref":"#/components/schemas/Pubkey"}}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"VaultAssetsBulkResp":{"type":"object","description":"Bulk Assets Response Model","required":["vault_assets"],"properties":{"vault_assets":{"type":"array","items":{"$ref":"#/components/schemas/VaultAssetsEntry"},"description":"List of per-vault asset entries"}}},"VaultAssetsEntry":{"allOf":[{"$ref":"#/components/schemas/VaultAssetsResp"},{"type":"object","required":["vault_id"],"properties":{"vault_id":{"$ref":"#/components/schemas/Pubkey"}}}],"description":"Per-vault entry in bulk assets response"},"VaultAssetsResp":{"type":"object","description":"API Succcess Response for Assets","required":["aum_usd","assets"],"properties":{"aum_usd":{"type":"number","format":"double","description":"This is null/None if any assets don't have a USD value"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/TokenBalanceWithShare"},"description":"List of `TokenBalanceWithShare`"}}},"TokenBalanceWithShare":{"allOf":[{"$ref":"#/components/schemas/TokenBalanceWithUsd"},{"type":"object","required":["allocation_share"],"properties":{"allocation_share":{"type":"number","format":"double","description":"This is a percentage of the total USD AUM of the vault.\nThis is null/None if the allocation share if any assets don't have a USD value"}}}],"title":"TokenBalancewithShare","description":"`TokenBalanceWithUsd` with Allocation Share"},"TokenBalanceWithUsd":{"allOf":[{"$ref":"#/components/schemas/TokenBalance"},{"type":"object","properties":{"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"icon_url":{"type":["string","null"]},"decimals":{"type":["integer","null"],"format":"int32","description":"Number of decimal places for this token (e.g. 6 for USDC, 9 for SOL)"},"rate_usd":{"type":["number","null"],"format":"double"},"value_usd":{"type":["number","null"],"format":"double"}}}],"description":"Extension of TokenBalance with USD rate and name/symbol for this token.If rate is `null`, then the value_usd is also `null`.vaule_usd = balance * rate_usd"},"TokenBalance":{"type":"object","description":"Token Balance information.Here, owner = holder of the ATA.Balance = (raw_balance / (10^decimals of the mint))","required":["mint","owner","balance"],"properties":{"mint":{"$ref":"#/components/schemas/Pubkey"},"owner":{"$ref":"#/components/schemas/Pubkey"},"token_program_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Pubkey"}]},"balance":{"type":"number","format":"double"}}}}}}
```

## Get vault returns bulk

> Get returns/stats for up to 25 Starke Finance vaults in a single request.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/returns":{"post":{"tags":["Vaults"],"summary":"Get vault returns bulk","description":"Get returns/stats for up to 25 Starke Finance vaults in a single request.","operationId":"get_vault_returns_bulk","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaultReturnsBulkQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved bulk vault returns.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultReturnsBulkResp"}}}},"400":{"description":"Too many vaults requested (max 25)."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"GetVaultReturnsBulkQuery":{"type":"object","required":["vaults"],"properties":{"vaults":{"type":"array","items":{"$ref":"#/components/schemas/Pubkey"}}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"VaultReturnsBulkResp":{"type":"object","description":"Bulk Returns Response Model","required":["vault_returns"],"properties":{"vault_returns":{"type":"array","items":{"$ref":"#/components/schemas/VaultReturnsEntry"}}}},"VaultReturnsEntry":{"allOf":[{"$ref":"#/components/schemas/VaultReturns"},{"type":"object","required":["vault_id","vtoken"],"properties":{"vault_id":{"$ref":"#/components/schemas/Pubkey"},"vtoken":{"$ref":"#/components/schemas/VtokenPricesOnly"}}}],"description":"Per-vault entry in bulk returns response"},"VaultReturns":{"type":"object","title":"VaultReturns","description":"Vault Returns for last year, month, and quarter to date","required":["mtd","qtd","ytd","return_1d","return_7d","return_30d","return_1y"],"properties":{"mtd":{"type":"number","format":"double","description":"Month to date return"},"qtd":{"type":"number","format":"double","description":"Quarter(Financial) to date return"},"ytd":{"type":"number","format":"double","description":"Year to date return"},"return_1d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 24hrs"},"return_7d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 7 days"},"return_30d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 30 days"},"return_1y":{"type":"number","format":"double","description":"Percentage change in AUM in the last 1 year"}}},"VtokenPricesOnly":{"type":"object","description":"Vtoken Prices Only","properties":{"price_usd":{"type":["number","null"],"format":"double"},"aum_usd":{"type":["number","null"],"format":"double"},"supply":{"type":["number","null"],"format":"double"},"updated_at":{"type":["string","null"],"format":"date-time"}}}}}}
```

## Get vault assets

> Get current holdings for a specific Starke Finance vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}/assets":{"get":{"tags":["Vaults"],"summary":"Get vault assets","description":"Get current holdings for a specific Starke Finance vault.","operationId":"get_vault_assets","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}}],"responses":{"200":{"description":"Successfully retrieved vault assets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultAssetsResp"}}}},"400":{"description":"Vault not found."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"VaultAssetsResp":{"type":"object","description":"API Succcess Response for Assets","required":["aum_usd","assets"],"properties":{"aum_usd":{"type":"number","format":"double","description":"This is null/None if any assets don't have a USD value"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/TokenBalanceWithShare"},"description":"List of `TokenBalanceWithShare`"}}},"TokenBalanceWithShare":{"allOf":[{"$ref":"#/components/schemas/TokenBalanceWithUsd"},{"type":"object","required":["allocation_share"],"properties":{"allocation_share":{"type":"number","format":"double","description":"This is a percentage of the total USD AUM of the vault.\nThis is null/None if the allocation share if any assets don't have a USD value"}}}],"title":"TokenBalancewithShare","description":"`TokenBalanceWithUsd` with Allocation Share"},"TokenBalanceWithUsd":{"allOf":[{"$ref":"#/components/schemas/TokenBalance"},{"type":"object","properties":{"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"icon_url":{"type":["string","null"]},"decimals":{"type":["integer","null"],"format":"int32","description":"Number of decimal places for this token (e.g. 6 for USDC, 9 for SOL)"},"rate_usd":{"type":["number","null"],"format":"double"},"value_usd":{"type":["number","null"],"format":"double"}}}],"description":"Extension of TokenBalance with USD rate and name/symbol for this token.If rate is `null`, then the value_usd is also `null`.vaule_usd = balance * rate_usd"},"TokenBalance":{"type":"object","description":"Token Balance information.Here, owner = holder of the ATA.Balance = (raw_balance / (10^decimals of the mint))","required":["mint","owner","balance"],"properties":{"mint":{"$ref":"#/components/schemas/Pubkey"},"owner":{"$ref":"#/components/schemas/Pubkey"},"token_program_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Pubkey"}]},"balance":{"type":"number","format":"double"}}}}}}
```

## Get vault asset holdings history

> Get vault asset holdings history for a specific Starke Finance vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}/assets/history":{"post":{"tags":["Vaults"],"summary":"Get vault asset holdings history","description":"Get vault asset holdings history for a specific Starke Finance vault.","operationId":"get_asset_holdings_history","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeRangeQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved vault assets history.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultChartResp"}}}},"400":{"description":"Vault not found."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"TimeRangeQuery":{"type":"object","required":["start_time","end_time","granularity"],"properties":{"start_time":{"type":"string","format":"date-time"},"end_time":{"type":"string","format":"date-time"},"granularity":{"$ref":"#/components/schemas/Granularity"}}},"Granularity":{"type":"string","enum":["5mins","15mins","30mins","1hour","2hours","4hours","8hours","12hours","1day","3days","7days","14days","1month","3months","6months","1year"]},"VaultChartResp":{"type":"object","description":"API Succcess Response for Assets History","required":["assets_history"],"properties":{"assets_history":{"type":"array","items":{"$ref":"#/components/schemas/VaultChartItem"}}}},"VaultChartItem":{"allOf":[{"$ref":"#/components/schemas/VaultAssetsResp"},{"type":"object","required":["generated_timestamp"],"properties":{"generated_timestamp":{"type":"string","format":"date-time","description":"This is a timestamp at which the data was sampled"}}}],"title":"Vault Assets History Item"},"VaultAssetsResp":{"type":"object","description":"API Succcess Response for Assets","required":["aum_usd","assets"],"properties":{"aum_usd":{"type":"number","format":"double","description":"This is null/None if any assets don't have a USD value"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/TokenBalanceWithShare"},"description":"List of `TokenBalanceWithShare`"}}},"TokenBalanceWithShare":{"allOf":[{"$ref":"#/components/schemas/TokenBalanceWithUsd"},{"type":"object","required":["allocation_share"],"properties":{"allocation_share":{"type":"number","format":"double","description":"This is a percentage of the total USD AUM of the vault.\nThis is null/None if the allocation share if any assets don't have a USD value"}}}],"title":"TokenBalancewithShare","description":"`TokenBalanceWithUsd` with Allocation Share"},"TokenBalanceWithUsd":{"allOf":[{"$ref":"#/components/schemas/TokenBalance"},{"type":"object","properties":{"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"icon_url":{"type":["string","null"]},"decimals":{"type":["integer","null"],"format":"int32","description":"Number of decimal places for this token (e.g. 6 for USDC, 9 for SOL)"},"rate_usd":{"type":["number","null"],"format":"double"},"value_usd":{"type":["number","null"],"format":"double"}}}],"description":"Extension of TokenBalance with USD rate and name/symbol for this token.If rate is `null`, then the value_usd is also `null`.vaule_usd = balance * rate_usd"},"TokenBalance":{"type":"object","description":"Token Balance information.Here, owner = holder of the ATA.Balance = (raw_balance / (10^decimals of the mint))","required":["mint","owner","balance"],"properties":{"mint":{"$ref":"#/components/schemas/Pubkey"},"owner":{"$ref":"#/components/schemas/Pubkey"},"token_program_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Pubkey"}]},"balance":{"type":"number","format":"double"}}}}}}
```

## Get vault investors

> Get investors for a specific Starke Finance vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}/investors":{"post":{"tags":["Vaults"],"summary":"Get vault investors","description":"Get investors for a specific Starke Finance vault.","operationId":"get_vault_investors","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetInvestorsQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved vault investors.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestorListResp"}}}},"400":{"description":"Vault not found."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"GetInvestorsQuery":{"type":"object","properties":{"page":{"type":["integer","null"],"format":"int32","minimum":0},"limit":{"type":["integer","null"],"format":"int32","minimum":0},"sort_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/GetInvestorsOrder"}],"default":"investor_id"},"order":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/QueryOrder"}]}}},"GetInvestorsOrder":{"type":"string","enum":["investor_id","investor_type","vtoken_balance","first_deposited_at"]},"QueryOrder":{"type":"string","enum":["asc","desc"]},"InvestorListResp":{"allOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"object","required":["investors"],"properties":{"investors":{"type":"array","items":{"$ref":"#/components/schemas/InvestorResp"},"description":"List of `InvestorResp`"}}}],"description":"Investor List Response Model"},"Pagination":{"type":"object","required":["page","limit","total_pages","total_count"],"properties":{"page":{"type":"integer","format":"int32","description":"Current page number","minimum":0},"limit":{"type":"integer","format":"int32","description":"Number of items per page","minimum":0},"total_pages":{"type":"integer","format":"int32","description":"Total number of pages","minimum":0},"total_count":{"type":"integer","format":"int64","description":"Total number of items","minimum":0}}},"InvestorResp":{"type":"object","title":"InvestorResp","description":"Investor Response Model","required":["investor_id","vtoken_balance","investor_type","first_deposited_at"],"properties":{"investor_id":{"$ref":"#/components/schemas/Pubkey"},"vtoken_balance":{"type":"number","format":"double","description":"Current VToken balance of the investor"},"investor_type":{"$ref":"#/components/schemas/InvestorType"},"first_deposited_at":{"type":"string","format":"date-time","description":"When the first deposit was made by this investor"}}},"InvestorType":{"type":"string","enum":["unknown","entity","individual"]}}}}
```

## Get vtoken prices

> Get vtoken prices for a specific Starke Finance vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/vtoken_prices":{"post":{"tags":["Vaults"],"summary":"Get vtoken prices","description":"Get vtoken prices for a specific Starke Finance vault.","operationId":"get_vtoken_prices","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVtokenPricesQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved Vtoken prices.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VtokenPricesResp"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"GetVtokenPricesQuery":{"type":"object","required":["vaults"],"properties":{"vaults":{"type":"array","items":{"$ref":"#/components/schemas/Pubkey"}}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"VtokenPricesResp":{"type":"object","description":"Vtoken Prices Response Model","required":["vtoken_prices"],"properties":{"vtoken_prices":{"type":"array","items":{"$ref":"#/components/schemas/VtokenPrice"},"description":"List of `VtokenPrice`"}}},"VtokenPrice":{"allOf":[{"$ref":"#/components/schemas/Vtoken"},{"type":"object","required":["vault_id"],"properties":{"vault_id":{"$ref":"#/components/schemas/Pubkey","description":"Vault this Vtoken belongs to"}}}],"title":"VtokenPrice","description":"Vtoken Price Response Model"},"Vtoken":{"type":"object","title":"Vtoken","description":"Vault Vtoken Response Model","required":["mint_id","symbol","name","uri"],"properties":{"mint_id":{"$ref":"#/components/schemas/Pubkey","description":"Mint of the Vtoken"},"symbol":{"type":"string","description":"Symbol of the Vtoken"},"name":{"type":"string","description":"Name of the Vtoken / Vault"},"uri":{"type":"string","description":"URI of the Vtoken"},"supply":{"type":["number","null"],"format":"double","description":"Supply of the Vtoken"},"price_usd":{"type":["number","null"],"format":"double","description":"Price of the Vtoken in USD"},"aum_usd":{"type":["number","null"],"format":"double","description":"AUM of the Vtoken in USD"}}}}}}
```

## Get vtoken price history

> Get vtoken price history for a specific Starke Finance vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}/vtoken_price/history":{"post":{"tags":["Vaults"],"summary":"Get vtoken price history","description":"Get vtoken price history for a specific Starke Finance vault.","operationId":"get_vtoken_price_history","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeRangeQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved Vtoken price history.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VtokenPriceHistoryResp"}}}},"400":{"description":"Vault not found."},"412":{"description":"Granularity error."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"TimeRangeQuery":{"type":"object","required":["start_time","end_time","granularity"],"properties":{"start_time":{"type":"string","format":"date-time"},"end_time":{"type":"string","format":"date-time"},"granularity":{"$ref":"#/components/schemas/Granularity"}}},"Granularity":{"type":"string","enum":["5mins","15mins","30mins","1hour","2hours","4hours","8hours","12hours","1day","3days","7days","14days","1month","3months","6months","1year"]},"VtokenPriceHistoryResp":{"type":"object","description":"Vtoken Price History Response Model","required":["vtoken_price_history"],"properties":{"vtoken_price_history":{"type":"array","items":{"$ref":"#/components/schemas/VtokenPriceHistoryItem"}}}},"VtokenPriceHistoryItem":{"type":"object","title":"VtokenPriceHistoryItem","description":"Vtoken Price History Item Response Model.\nEverything except the `generated_timestamp` is optional\nsince data indexed might not be in the range of the requested time range.","required":["timestamp","generated_timestamp","price_usd","aum_usd","vtoken_supply"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"This is the actual timestamp of the data"},"generated_timestamp":{"type":"string","format":"date-time","description":"This is a timestamp at which the data was sampled"},"price_usd":{"type":"number","format":"double","description":"Price of the Vtoken in USD"},"aum_usd":{"type":"number","format":"double","description":"AUM of the Vtoken in USD"},"vtoken_supply":{"type":"number","format":"double","description":"Supply of the Vtoken"}}}}}}
```

## Get vtoken price history for multiple vaults

> Get vtoken price history for up to 25 Starke Finance vaults in a single request.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/vtoken_price/history":{"post":{"tags":["Vaults"],"summary":"Get vtoken price history for multiple vaults","description":"Get vtoken price history for up to 25 Starke Finance vaults in a single request.","operationId":"get_vtoken_price_history_bulk","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVtokenPriceHistoryBulkBody"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved bulk Vtoken price history.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VtokenPriceHistoryBulkResp"}}}},"400":{"description":"Too many vaults requested (max 25)."},"412":{"description":"Granularity error."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"GetVtokenPriceHistoryBulkBody":{"type":"object","required":["vaults","start_time","end_time","granularity"],"properties":{"vaults":{"type":"array","items":{"$ref":"#/components/schemas/Pubkey"}},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":"string","format":"date-time"},"granularity":{"$ref":"#/components/schemas/Granularity"}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"Granularity":{"type":"string","enum":["5mins","15mins","30mins","1hour","2hours","4hours","8hours","12hours","1day","3days","7days","14days","1month","3months","6months","1year"]},"VtokenPriceHistoryBulkResp":{"type":"object","description":"Bulk Vtoken Price History Response Model","required":["vtoken_price_history"],"properties":{"vtoken_price_history":{"type":"array","items":{"$ref":"#/components/schemas/VaultPriceHistoryEntry"}}}},"VaultPriceHistoryEntry":{"type":"object","description":"Per-vault entry in bulk price history response","required":["vault_id","history"],"properties":{"vault_id":{"$ref":"#/components/schemas/Pubkey"},"history":{"type":"array","items":{"$ref":"#/components/schemas/VaultPriceHistoryPoint"}}}},"VaultPriceHistoryPoint":{"type":"object","description":"Single price history point (used in bulk endpoint)","required":["timestamp","generated_timestamp","price_usd","aum_usd","vtoken_supply"],"properties":{"timestamp":{"type":"string","format":"date-time"},"generated_timestamp":{"type":"string","format":"date-time"},"price_usd":{"type":"number","format":"double"},"aum_usd":{"type":"number","format":"double"},"vtoken_supply":{"type":"number","format":"double"}}}}}}
```

## Get vtoken volatility

> Get vtoken volatility for a specific Starke Finance vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}/vtoken_volatility/history":{"post":{"tags":["Vaults"],"summary":"Get vtoken volatility","description":"Get vtoken volatility for a specific Starke Finance vault.","operationId":"get_vtoken_volatility","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeRangeQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved Vtoken volatility.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VtokenVolatilityResp"}}}},"400":{"description":"Vault not found."},"412":{"description":"Granularity error."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"TimeRangeQuery":{"type":"object","required":["start_time","end_time","granularity"],"properties":{"start_time":{"type":"string","format":"date-time"},"end_time":{"type":"string","format":"date-time"},"granularity":{"$ref":"#/components/schemas/Granularity"}}},"Granularity":{"type":"string","enum":["5mins","15mins","30mins","1hour","2hours","4hours","8hours","12hours","1day","3days","7days","14days","1month","3months","6months","1year"]},"VtokenVolatilityResp":{"type":"object","description":"Vtoken Volatility Response Model","required":["vtoken_volatility_history"],"properties":{"vtoken_volatility_history":{"type":"array","items":{"$ref":"#/components/schemas/VtokenVolatilityItem"}}}},"VtokenVolatilityItem":{"type":"object","title":"VtokenVolatilityItem","description":"Vtoken Volatility Item Response Model\nGives the daily volatility of the Vtoken within generated buckets.","required":["start_timestamp","end_timestamp"],"properties":{"start_timestamp":{"type":"string","format":"date-time","description":"Start timestamp of the bucket"},"end_timestamp":{"type":"string","format":"date-time","description":"End timestamp of the bucket"},"volatility_annualized":{"type":["number","null"],"format":"double","description":"Volatility of the vtoken in annualized form"}}}}}}
```

## Get vault transaction by signature

> Get a single vault transaction by its Solana signature. Useful for polling to check if the back-end has processed a specific event or signature.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}/transactions/{signature}":{"get":{"tags":["Vaults"],"summary":"Get vault transaction by signature","description":"Get a single vault transaction by its Solana signature. Useful for polling to check if the back-end has processed a specific event or signature.","operationId":"get_vault_transaction","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}},{"name":"signature","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Signature"}}],"responses":{"200":{"description":"Found transaction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultTransactionResp"}}}},"400":{"description":"Vault not found."},"404":{"description":"Transaction not found."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"Signature":{"type":"string","description":"Base-58 encoded Solana Signature","contentEncoding":"base58"},"VaultTransactionResp":{"oneOf":[{"type":"object","title":"Create Vault","description":"Vault was created","required":["signature","tx_type","timestamp","manager_id"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"manager_id":{"$ref":"#/components/schemas/Pubkey"}}},{"type":"object","title":"Close Vault","description":"Vault was closed","required":["signature","tx_type","timestamp","manager_id"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"manager_id":{"$ref":"#/components/schemas/Pubkey"}}},{"type":"object","title":"Deposit","description":"Deposit was made","required":["signature","tx_type","timestamp","investor_id","deposit_token_amount","vtoken_minted_amount"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"investor_id":{"$ref":"#/components/schemas/Pubkey"},"deposit_token_amount":{"type":"number","format":"double"},"deposit_token_price_usd":{"type":["number","null"],"format":"double"},"deposit_token_value_usd":{"type":["number","null"],"format":"double"},"vtoken_minted_amount":{"type":"number","format":"double"}}},{"type":"object","title":"Swap","description":"Swap was made","required":["signature","tx_type","timestamp","manager_id","input","output"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"manager_id":{"$ref":"#/components/schemas/Pubkey"},"input":{"$ref":"#/components/schemas/TokenBalanceWithUsd"},"output":{"$ref":"#/components/schemas/TokenBalanceWithUsd"}}},{"type":"object","title":"Swap to Deposit Token","description":"Swap was made to the deposit token of the vault","required":["signature","tx_type","timestamp","authority_id","input","output"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"authority_id":{"$ref":"#/components/schemas/Pubkey"},"input":{"$ref":"#/components/schemas/TokenBalanceWithUsd"},"output":{"$ref":"#/components/schemas/TokenBalanceWithUsd"}}},{"type":"object","title":"Withdraw","description":"Withdraw was made","required":["signature","tx_type","timestamp","investor_id","vtoken_burned_amount","vtoken_mint"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"investor_id":{"$ref":"#/components/schemas/Pubkey"},"withdrawn_usd":{"type":["number","null"],"format":"double"},"vtoken_burned_amount":{"type":"number","format":"double"},"vtoken_mint":{"$ref":"#/components/schemas/Pubkey"},"vtoken_price":{"type":["number","null"],"format":"double"}}},{"type":"object","title":"Withdraw in Deposit Token","description":"Withdraw was made in the deposit token of the vault","required":["signature","tx_type","timestamp","user_id","vtoken_burned"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/Pubkey"},"withdrawn_usd":{"type":["number","null"],"format":"double"},"vtoken_burned":{"type":"number","format":"double"},"vtoken_price":{"type":["number","null"],"format":"double"},"deposit_token_price_usd":{"type":["number","null"],"format":"double"}}}],"description":"Vault Transaction Response Model"},"VaultEventType":{"type":"string","enum":["vault_create","vault_close","deposit","withdraw","swap","swap_to_deposit_token_on_jupiter","withdraw_in_deposit_token"]},"TokenBalanceWithUsd":{"allOf":[{"$ref":"#/components/schemas/TokenBalance"},{"type":"object","properties":{"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"icon_url":{"type":["string","null"]},"decimals":{"type":["integer","null"],"format":"int32","description":"Number of decimal places for this token (e.g. 6 for USDC, 9 for SOL)"},"rate_usd":{"type":["number","null"],"format":"double"},"value_usd":{"type":["number","null"],"format":"double"}}}],"description":"Extension of TokenBalance with USD rate and name/symbol for this token.If rate is `null`, then the value_usd is also `null`.vaule_usd = balance * rate_usd"},"TokenBalance":{"type":"object","description":"Token Balance information.Here, owner = holder of the ATA.Balance = (raw_balance / (10^decimals of the mint))","required":["mint","owner","balance"],"properties":{"mint":{"$ref":"#/components/schemas/Pubkey"},"owner":{"$ref":"#/components/schemas/Pubkey"},"token_program_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Pubkey"}]},"balance":{"type":"number","format":"double"}}}}}}
```

## Get vault transactions history

> Get vault transactions history for a specific Starke Finance vault.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/{vault}/transactions":{"post":{"tags":["Vaults"],"summary":"Get vault transactions history","description":"Get vault transactions history for a specific Starke Finance vault.","operationId":"get_vault_transactions","parameters":[{"name":"vault","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Pubkey"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTransactionsQuery"}}},"required":true},"responses":{"200":{"description":"Found transactions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionListResp"}}}},"400":{"description":"Vault not found."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"GetTransactionsQuery":{"type":"object","properties":{"investor_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/Pubkey"}},"tx_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VaultEventType"}]},"page":{"type":["integer","null"],"format":"int32","minimum":0},"limit":{"type":["integer","null"],"format":"int32","minimum":0}}},"VaultEventType":{"type":"string","enum":["vault_create","vault_close","deposit","withdraw","swap","swap_to_deposit_token_on_jupiter","withdraw_in_deposit_token"]},"TransactionListResp":{"allOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"object","required":["transactions"],"properties":{"transactions":{"type":"array","items":{"$ref":"#/components/schemas/VaultTransactionResp"}}}}],"description":"Transaction List Response Model"},"Pagination":{"type":"object","required":["page","limit","total_pages","total_count"],"properties":{"page":{"type":"integer","format":"int32","description":"Current page number","minimum":0},"limit":{"type":"integer","format":"int32","description":"Number of items per page","minimum":0},"total_pages":{"type":"integer","format":"int32","description":"Total number of pages","minimum":0},"total_count":{"type":"integer","format":"int64","description":"Total number of items","minimum":0}}},"VaultTransactionResp":{"oneOf":[{"type":"object","title":"Create Vault","description":"Vault was created","required":["signature","tx_type","timestamp","manager_id"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"manager_id":{"$ref":"#/components/schemas/Pubkey"}}},{"type":"object","title":"Close Vault","description":"Vault was closed","required":["signature","tx_type","timestamp","manager_id"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"manager_id":{"$ref":"#/components/schemas/Pubkey"}}},{"type":"object","title":"Deposit","description":"Deposit was made","required":["signature","tx_type","timestamp","investor_id","deposit_token_amount","vtoken_minted_amount"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"investor_id":{"$ref":"#/components/schemas/Pubkey"},"deposit_token_amount":{"type":"number","format":"double"},"deposit_token_price_usd":{"type":["number","null"],"format":"double"},"deposit_token_value_usd":{"type":["number","null"],"format":"double"},"vtoken_minted_amount":{"type":"number","format":"double"}}},{"type":"object","title":"Swap","description":"Swap was made","required":["signature","tx_type","timestamp","manager_id","input","output"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"manager_id":{"$ref":"#/components/schemas/Pubkey"},"input":{"$ref":"#/components/schemas/TokenBalanceWithUsd"},"output":{"$ref":"#/components/schemas/TokenBalanceWithUsd"}}},{"type":"object","title":"Swap to Deposit Token","description":"Swap was made to the deposit token of the vault","required":["signature","tx_type","timestamp","authority_id","input","output"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"authority_id":{"$ref":"#/components/schemas/Pubkey"},"input":{"$ref":"#/components/schemas/TokenBalanceWithUsd"},"output":{"$ref":"#/components/schemas/TokenBalanceWithUsd"}}},{"type":"object","title":"Withdraw","description":"Withdraw was made","required":["signature","tx_type","timestamp","investor_id","vtoken_burned_amount","vtoken_mint"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"investor_id":{"$ref":"#/components/schemas/Pubkey"},"withdrawn_usd":{"type":["number","null"],"format":"double"},"vtoken_burned_amount":{"type":"number","format":"double"},"vtoken_mint":{"$ref":"#/components/schemas/Pubkey"},"vtoken_price":{"type":["number","null"],"format":"double"}}},{"type":"object","title":"Withdraw in Deposit Token","description":"Withdraw was made in the deposit token of the vault","required":["signature","tx_type","timestamp","user_id","vtoken_burned"],"properties":{"signature":{"type":"string"},"tx_type":{"$ref":"#/components/schemas/VaultEventType"},"timestamp":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/Pubkey"},"withdrawn_usd":{"type":["number","null"],"format":"double"},"vtoken_burned":{"type":"number","format":"double"},"vtoken_price":{"type":["number","null"],"format":"double"},"deposit_token_price_usd":{"type":["number","null"],"format":"double"}}}],"description":"Vault Transaction Response Model"},"TokenBalanceWithUsd":{"allOf":[{"$ref":"#/components/schemas/TokenBalance"},{"type":"object","properties":{"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"icon_url":{"type":["string","null"]},"decimals":{"type":["integer","null"],"format":"int32","description":"Number of decimal places for this token (e.g. 6 for USDC, 9 for SOL)"},"rate_usd":{"type":["number","null"],"format":"double"},"value_usd":{"type":["number","null"],"format":"double"}}}],"description":"Extension of TokenBalance with USD rate and name/symbol for this token.If rate is `null`, then the value_usd is also `null`.vaule_usd = balance * rate_usd"},"TokenBalance":{"type":"object","description":"Token Balance information.Here, owner = holder of the ATA.Balance = (raw_balance / (10^decimals of the mint))","required":["mint","owner","balance"],"properties":{"mint":{"$ref":"#/components/schemas/Pubkey"},"owner":{"$ref":"#/components/schemas/Pubkey"},"token_program_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Pubkey"}]},"balance":{"type":"number","format":"double"}}}}}}
```

## Get investments by investors

> Get investment details about investors.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/investments":{"post":{"tags":["Vaults"],"summary":"Get investments by investors","description":"Get investment details about investors.","operationId":"get_vault_investments","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":["string","null"],"format":"date-time"}},{"name":"to","in":"query","required":false,"schema":{"type":["string","null"],"format":"date-time"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentJsonQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved vaults.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentListResp"}}}},"400":{"description":"This investor is not whitelisted."},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"InvestmentJsonQuery":{"type":"object","required":["investor_ids"],"properties":{"investor_ids":{"type":"array","items":{"$ref":"#/components/schemas/Pubkey"}}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"InvestmentListResp":{"type":"object","description":"Vault List with pagination data","required":["investments"],"properties":{"investments":{"type":"array","items":{"$ref":"#/components/schemas/InvestmentDetails"},"description":"List of `VaultResp`"}}},"InvestmentDetails":{"type":"object","description":"Investment Details","required":["investor_id","vault","first_invested_at","vtoken_balance"],"properties":{"investor_id":{"$ref":"#/components/schemas/Pubkey","description":"Investor ID"},"vault":{"$ref":"#/components/schemas/VaultResp","description":"Vault Details"},"first_invested_at":{"type":"string","format":"date-time","description":"First Investment"},"vtoken_balance":{"type":"number","format":"double","description":"VToken Balance"},"vtoken_balance_usd":{"type":["number","null"],"format":"double"},"average_cost_usd":{"type":["number","null"],"format":"double","description":"Average Cost USD"},"total_cost_usd":{"type":["number","null"],"format":"double","description":"Total Cost USD"},"realized_pnl_usd":{"type":["number","null"],"format":"double","description":"Realized PnL: Profit/Loss that investor has already claimed"},"unrealized_pnl_usd":{"type":["number","null"],"format":"double","description":"Realized PnL: Profit/Loss that investor can claim"}}},"VaultResp":{"type":"object","description":"Vault Details","required":["id","name","manager_id","created_at","is_closed","current_depositors","deposit_token_mint_id","signature","metadata","config","vtoken","returns"],"properties":{"id":{"$ref":"#/components/schemas/Pubkey"},"name":{"type":"string"},"manager_id":{"$ref":"#/components/schemas/Pubkey"},"created_at":{"type":"string","format":"date-time"},"is_closed":{"type":"boolean"},"prices_updated_at":{"type":["string","null"],"format":"date-time"},"current_depositors":{"type":"integer","format":"int32"},"deposit_token_mint_id":{"$ref":"#/components/schemas/Pubkey"},"signature":{"$ref":"#/components/schemas/Signature"},"initial_vtoken_price":{"type":["integer","null"],"format":"int32"},"metadata":{"$ref":"#/components/schemas/VaultMetadata"},"config":{"$ref":"#/components/schemas/VaultConfig"},"vtoken":{"$ref":"#/components/schemas/Vtoken"},"returns":{"$ref":"#/components/schemas/VaultReturns"},"volatility_annualized":{"type":["number","null"],"format":"double"}}},"Signature":{"type":"string","description":"Base-58 encoded Solana Signature","contentEncoding":"base58"},"VaultMetadata":{"type":"object","title":"VaultMetadata","description":"Admin-managed vault metadata (icon and description only)","properties":{"description":{"type":["string","null"]},"icon_url":{"type":["string","null"]}}},"VaultConfig":{"type":"object","title":"VaultConfig","description":"On-chain vault configuration","required":["allowed_investor_types","allowed_investor_tiers","max_depositors","individual_min_deposit","entity_min_deposit","is_transferrable"],"properties":{"allowed_investor_types":{"$ref":"#/components/schemas/InvestorTypeAccess"},"allowed_investor_tiers":{"$ref":"#/components/schemas/InvestorTierAccess"},"max_allowed_aum":{"type":["integer","null"],"format":"int64"},"max_depositors":{"type":"integer","format":"int32"},"individual_min_deposit":{"type":"integer","format":"int32"},"individual_max_deposit":{"type":["integer","null"],"format":"int32"},"entity_min_deposit":{"type":"integer","format":"int32"},"entity_max_deposit":{"type":["integer","null"],"format":"int32"},"is_transferrable":{"type":"boolean"}}},"InvestorTypeAccess":{"type":"object","description":"Which investor types are allowed to deposit (0 bitmask = all allowed)","required":["unknown","entity","individual"],"properties":{"unknown":{"type":"boolean"},"entity":{"type":"boolean"},"individual":{"type":"boolean"}}},"InvestorTierAccess":{"type":"object","description":"Which investor tiers are allowed to deposit (0 bitmask = all allowed)","required":["basic","accredited","qualified"],"properties":{"basic":{"type":"boolean"},"accredited":{"type":"boolean"},"qualified":{"type":"boolean"}}},"Vtoken":{"type":"object","title":"Vtoken","description":"Vault Vtoken Response Model","required":["mint_id","symbol","name","uri"],"properties":{"mint_id":{"$ref":"#/components/schemas/Pubkey","description":"Mint of the Vtoken"},"symbol":{"type":"string","description":"Symbol of the Vtoken"},"name":{"type":"string","description":"Name of the Vtoken / Vault"},"uri":{"type":"string","description":"URI of the Vtoken"},"supply":{"type":["number","null"],"format":"double","description":"Supply of the Vtoken"},"price_usd":{"type":["number","null"],"format":"double","description":"Price of the Vtoken in USD"},"aum_usd":{"type":["number","null"],"format":"double","description":"AUM of the Vtoken in USD"}}},"VaultReturns":{"type":"object","title":"VaultReturns","description":"Vault Returns for last year, month, and quarter to date","required":["mtd","qtd","ytd","return_1d","return_7d","return_30d","return_1y"],"properties":{"mtd":{"type":"number","format":"double","description":"Month to date return"},"qtd":{"type":"number","format":"double","description":"Quarter(Financial) to date return"},"ytd":{"type":"number","format":"double","description":"Year to date return"},"return_1d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 24hrs"},"return_7d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 7 days"},"return_30d":{"type":"number","format":"double","description":"Percentage change in AUM in the last 30 days"},"return_1y":{"type":"number","format":"double","description":"Percentage change in AUM in the last 1 year"}}}}}}
```

## Get investment value history

> Get investment value history.

```json
{"openapi":"3.1.0","info":{"title":"Fund Tokenization as a Service API","version":"0.1.0"},"tags":[{"name":"Vaults","description":"Vault analytics. Get vault details, transactions, description and icon, investors, etc."}],"servers":[{"url":"https://dev.api.starke.finance/ftaas/","description":"Dev server"},{"url":"/","description":"Local development server"}],"paths":{"/api/v1/vaults/investments/history-by-investors":{"post":{"tags":["Vaults"],"summary":"Get investment value history","description":"Get investment value history.","operationId":"get_vault_investment_value_history","parameters":[{"name":"start_time","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"granularity","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Granularity"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentHistoryJsonQuery"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved vaults.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentValueHistoryResp"}}}},"500":{"description":"Server Error."}}}}},"components":{"schemas":{"Granularity":{"type":"string","enum":["5mins","15mins","30mins","1hour","2hours","4hours","8hours","12hours","1day","3days","7days","14days","1month","3months","6months","1year"]},"InvestmentHistoryJsonQuery":{"type":"object","required":["investor_ids"],"properties":{"investor_ids":{"type":"array","items":{"$ref":"#/components/schemas/Pubkey"}}}},"Pubkey":{"type":"string","description":"Base-58 encoded Solana Pubkey","contentEncoding":"base58"},"InvestmentValueHistoryResp":{"type":"object","description":"Investment History","required":["history"],"properties":{"history":{"type":"array","items":{"$ref":"#/components/schemas/InvestmentValueHistoryItem"},"description":"List of `InvestmentHistoryItem`"}}},"InvestmentValueHistoryItem":{"type":"object","description":"Investment History Item","required":["generated_timestamp","investment_value_usd"],"properties":{"generated_timestamp":{"type":"string","format":"date-time","description":"This is a timestamp at which the data was sampled"},"investment_value_usd":{"type":"number","format":"double","description":"Investment Value at the generated timestamp accross vaults"}}}}}}
```
