Vault Management Endpoints
This section covers all core vault management operations including CRUD operations, specialized queries, and vault configuration management.POST /api/vaults
Create a new Stellar vault with specified configuration and ownership details.Parameters
Request Body (JSON)- vaultName (string, required): Human-readable name for the vault (2-100 characters)
- vaultOwner (string, required): Stellar address of the vault owner (must start with ‘G’, 56 characters)
- vaultAddress (string, required): Stellar contract address of the vault (must start with ‘C’, 56 characters)
- creationLedger (number, optional): Stellar ledger number when vault was created
- tradePermission (boolean, optional): Whether trading is allowed (default: false)
- maxTradeSize (number, optional): Maximum trade size as percentage of total vault value
- dailyTradeLimit (number, optional): Number of trades allowed per day
- slippageTolerance (number, optional): Slippage tolerance for swaps
Request Examples
Basic Vault Creation
Storage-Only Vault Creation
High-Frequency Trading Vault
Response Examples
Successful Vault Creation
Storage Vault Creation Response
Error Responses
400 Bad Request - Validation ErrorGET /api/vaults
Retrieve all vaults with optional filtering, pagination, and sorting capabilities.Parameters
Query Parameters- page (number, optional): Page number for pagination (default: 1)
- limit (number, optional): Number of items per page (default: 10, max: 100)
- owner (string, optional): Filter by vault owner Stellar address
- tradePermission (boolean, optional): Filter by trade permission status
- search (string, optional): Search vault names (case-insensitive)
- sortBy (string, optional): Sort field -
creationDate,creationLedger,vaultName,updatedAt - sortOrder (string, optional): Sort order -
ascordesc(default:desc) - minLedger (number, optional): Filter vaults created after this ledger number
- maxLedger (number, optional): Filter vaults created before this ledger number
Request Example
Response Example
Error Responses
400 Bad Request - Invalid ParametersGET /api/vaults/:id
Retrieve a specific vault by its unique identifier.Parameters
Path Parameters- id (string, required): MongoDB ObjectId of the vault
Request Example
Response Example
Error Responses
400 Bad Request - Invalid ID FormatPUT /api/vaults/:id
Update an existing vault’s configuration and metadata.Parameters
Path Parameters- id (string, required): MongoDB ObjectId of the vault
- vaultName (string, optional): Updated vault name (2-100 characters)
- tradePermission (boolean, optional): Updated trade permission status
- maxTradeSize (number, optional): Updated maximum trade size percentage
- dailyTradeLimit (number, optional): Updated daily trade limit
- slippageTolerance (number, optional): Updated slippage tolerance
The
vaultOwner and vaultAddress fields cannot be updated after vault creation for security reasons.Request Example
Response Example
Error Responses
400 Bad Request - Validation ErrorDELETE /api/vaults/:id
Permanently delete a vault and all associated data.Parameters
Path Parameters- id (string, required): MongoDB ObjectId of the vault
Request Example
Response Example
Error Responses
404 Not FoundGET /api/vaults/by-address/:address
Retrieve a vault by its Stellar contract address.Parameters
Path Parameters- address (string, required): Stellar contract address of the vault (must start with ‘C’, 56 characters)
Request Example
Response Example
Error Responses
400 Bad Request - Invalid Address FormatGET /api/vaults/by-owner/:owner
Retrieve all vaults owned by a specific Stellar address.Parameters
Path Parameters- owner (string, required): Stellar address of the vault owner (must start with ‘G’, 56 characters)
- page (number, optional): Page number for pagination (default: 1)
- limit (number, optional): Number of items per page (default: 10, max: 100)
- sortBy (string, optional): Sort field -
creationDate,creationLedger,vaultName,updatedAt - sortOrder (string, optional): Sort order -
ascordesc(default:desc)
Request Example
Response Example
Error Responses
400 Bad Request - Invalid Owner AddressGET /api/vaults/trade-permission
Retrieve all vaults that have trading permissions enabled.Parameters
Query Parameters- page (number, optional): Page number for pagination (default: 1)
- limit (number, optional): Number of items per page (default: 10, max: 100)
- owner (string, optional): Filter by specific vault owner Stellar address
- sortBy (string, optional): Sort field -
creationDate,creationLedger,vaultName,updatedAt - sortOrder (string, optional): Sort order -
ascordesc(default:desc)
Request Example
Response Example
Error Responses
400 Bad Request - Invalid ParametersPATCH /api/vaults/:id/toggle-trade
Toggle the trade permission status for a specific vault.Parameters
Path Parameters- id (string, required): MongoDB ObjectId of the vault
- tradePermission (boolean, required): New trade permission status
- maxTradeSize (number, optional): Maximum trade size percentage (required if enabling trading)
- dailyTradeLimit (number, optional): Daily trade limit (required if enabling trading)
- slippageTolerance (number, optional): Slippage tolerance for trades
Request Example
Response Example
Error Responses
400 Bad Request - Missing Required FieldsGET /api/vaults/stats
Retrieve comprehensive statistics about all vaults in the system.Parameters
Query Parameters- owner (string, optional): Filter statistics by specific vault owner
- tradePermission (boolean, optional): Filter by trade permission status
- minLedger (number, optional): Include vaults created after this ledger
- maxLedger (number, optional): Include vaults created before this ledger
Request Example
Response Example
Error Responses
400 Bad Request - Invalid ParametersTypeScript Interfaces
Core Vault Interface
Request/Response Interfaces
Example Data Objects
Validation Rules
- Vault Name: 2-100 characters, required
- Vault Owner: Valid Stellar address starting with ‘G’, 56 characters
- Vault Address: Valid Stellar contract address starting with ‘C’, 56 characters, must be unique
- Creation Ledger: Positive integer
- Trade Permission: Boolean value
- Max Trade Size: Number between 0-100 (percentage)
- Daily Trade Limit: Positive integer
- Slippage Tolerance: Number between 0-100 (percentage)
Common Use Cases
Creating a Basic Vault
Finding Vaults by Owner
Enabling Trading for a Vault
Finding a Vault by Address
Getting All Vaults for an Owner
Finding Trade-Enabled Vaults
Toggling Trade Permission
Getting Vault Statistics
Next Steps
- Token Endpoints - Manage token holdings and balances
- Search & Filtering - Advanced vault discovery
- Error Handling - Error codes and troubleshooting

