Documentation Index
Fetch the complete documentation index at: https://docs.renesis.fi/llms.txt
Use this file to discover all available pages before exploring further.
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
curl -X POST "https://dex-api.renesis.fi/api/vaults" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-d '{
"vaultName": "DeFi Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 15,
"dailyTradeLimit": 10,
"slippageTolerance": 0.5
}'
Storage-Only Vault Creation
curl -X POST "https://dex-api.renesis.fi/api/vaults" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-d '{
"vaultName": "Long-term Storage Vault",
"vaultOwner": "GB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationLedger": 123456790,
"tradePermission": false
}'
High-Frequency Trading Vault
curl -X POST "https://dex-api.renesis.fi/api/vaults" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-d '{
"vaultName": "HFT Arbitrage Vault",
"vaultOwner": "GC9QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CC9QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationLedger": 123456791,
"tradePermission": true,
"maxTradeSize": 25,
"dailyTradeLimit": 50,
"slippageTolerance": 0.1
}'
Response Examples
Successful Vault Creation
{
"success": true,
"message": "Vault created successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"vaultName": "DeFi Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 15,
"dailyTradeLimit": 10,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
}
Storage Vault Creation Response
{
"success": true,
"message": "Storage vault created successfully",
"data": {
"id": "507f1f77bcf86cd799439012",
"vaultName": "Long-term Storage Vault",
"vaultOwner": "GB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T11:45:00.000Z",
"creationLedger": 123456790,
"tradePermission": false,
"maxTradeSize": 0,
"dailyTradeLimit": 0,
"slippageTolerance": 1.0,
"updatedAt": "2024-01-15T11:45:00.000Z",
"createdAt": "2024-01-15T11:45:00.000Z"
}
}
Error Responses
400 Bad Request - Validation Error
{
"success": false,
"message": "Validation failed",
"errors": [
{
"field": "vaultName",
"message": "Vault name must be between 2 and 100 characters",
"value": ""
},
{
"field": "vaultOwner",
"message": "Invalid Stellar address format",
"value": "invalid-address"
}
]
}
409 Conflict - Duplicate Vault
{
"success": false,
"message": "Vault with this address already exists",
"errors": [
{
"field": "vaultAddress",
"message": "Vault address must be unique",
"value": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"
}
]
}
GET /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 -
asc or desc (default: desc)
- minLedger (number, optional): Filter vaults created after this ledger number
- maxLedger (number, optional): Filter vaults created before this ledger number
Request Example
curl -X GET "https://dex-api.renesis.fi/api/vaults?page=1&limit=10&owner=GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ&tradePermission=true&sortBy=creationDate&sortOrder=desc" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"success": true,
"message": "Vaults retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439011",
"vaultName": "My Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 10,
"dailyTradeLimit": 5,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"totalItems": 25,
"totalPages": 3,
"hasNext": true,
"hasPrev": false
}
}
Error Responses
400 Bad Request - Invalid Parameters
{
"success": false,
"message": "Invalid query parameters",
"errors": [
{
"field": "limit",
"message": "Limit must be between 1 and 100",
"value": 150
}
]
}
GET /api/vaults/:id
Retrieve a specific vault by its unique identifier.
Parameters
Path Parameters
- id (string, required): MongoDB ObjectId of the vault
Request Example
curl -X GET "https://dex-api.renesis.fi/api/vaults/507f1f77bcf86cd799439011" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"success": true,
"message": "Vault retrieved successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"vaultName": "My Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 10,
"dailyTradeLimit": 5,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
}
Error Responses
400 Bad Request - Invalid ID Format
{
"success": false,
"message": "Invalid vault ID format",
"errors": [
{
"field": "id",
"message": "Must be a valid MongoDB ObjectId",
"value": "invalid-id"
}
]
}
404 Not Found
{
"success": false,
"message": "Vault not found"
}
PUT /api/vaults/:id
Update an existing vault’s configuration and metadata.
Parameters
Path Parameters
- id (string, required): MongoDB ObjectId of the vault
Request Body (JSON)
- 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
curl -X PUT "https://dex-api.renesis.fi/api/vaults/507f1f77bcf86cd799439011" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"vaultName": "Updated Trading Vault",
"tradePermission": false,
"maxTradeSize": 15,
"dailyTradeLimit": 10
}'
Response Example
{
"success": true,
"message": "Vault updated successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"vaultName": "Updated Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": false,
"maxTradeSize": 15,
"dailyTradeLimit": 10,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T11:45:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
}
Error Responses
400 Bad Request - Validation Error
{
"success": false,
"message": "Validation failed",
"errors": [
{
"field": "maxTradeSize",
"message": "Maximum trade size must be between 0 and 100",
"value": 150
}
]
}
404 Not Found
{
"success": false,
"message": "Vault not found"
}
DELETE /api/vaults/:id
Permanently delete a vault and all associated data.
Parameters
Path Parameters
- id (string, required): MongoDB ObjectId of the vault
This operation is irreversible. All vault data and associated token holdings will be permanently deleted.
Request Example
curl -X DELETE "https://dex-api.renesis.fi/api/vaults/507f1f77bcf86cd799439011" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"success": true,
"message": "Vault deleted successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"deletedAt": "2024-01-15T12:00:00.000Z"
}
}
Error Responses
404 Not Found
{
"success": false,
"message": "Vault not found"
}
400 Bad Request - Invalid ID Format
{
"success": false,
"message": "Invalid vault ID format",
"errors": [
{
"field": "id",
"message": "Must be a valid MongoDB ObjectId",
"value": "invalid-id"
}
]
}
GET /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
curl -X GET "https://dex-api.renesis.fi/api/vaults/by-address/CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"success": true,
"message": "Vault retrieved successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"vaultName": "My Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 10,
"dailyTradeLimit": 5,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
}
Error Responses
400 Bad Request - Invalid Address Format
{
"success": false,
"message": "Invalid Stellar address format",
"errors": [
{
"field": "address",
"message": "Must be a valid Stellar contract address starting with 'C'",
"value": "invalid-address"
}
]
}
404 Not Found
{
"success": false,
"message": "Vault not found with the specified address"
}
GET /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)
Query Parameters
- 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 -
asc or desc (default: desc)
Request Example
curl -X GET "https://dex-api.renesis.fi/api/vaults/by-owner/GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ?page=1&limit=10&sortBy=creationDate&sortOrder=desc" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"success": true,
"message": "Vaults retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439011",
"vaultName": "My Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 10,
"dailyTradeLimit": 5,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
},
{
"id": "507f1f77bcf86cd799439012",
"vaultName": "My Storage Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGX",
"creationDate": "2024-01-14T09:15:00.000Z",
"creationLedger": 123456788,
"tradePermission": false,
"maxTradeSize": 0,
"dailyTradeLimit": 0,
"slippageTolerance": 1.0,
"updatedAt": "2024-01-14T09:15:00.000Z",
"createdAt": "2024-01-14T09:15:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"totalItems": 2,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
Error Responses
400 Bad Request - Invalid Owner Address
{
"success": false,
"message": "Invalid Stellar address format",
"errors": [
{
"field": "owner",
"message": "Must be a valid Stellar address starting with 'G'",
"value": "invalid-owner"
}
]
}
GET /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 -
asc or desc (default: desc)
Request Example
curl -X GET "https://dex-api.renesis.fi/api/vaults/trade-permission?page=1&limit=10&sortBy=creationDate&sortOrder=desc" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"success": true,
"message": "Trade-enabled vaults retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439011",
"vaultName": "My Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 10,
"dailyTradeLimit": 5,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"totalItems": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
Error Responses
400 Bad Request - Invalid Parameters
{
"success": false,
"message": "Invalid query parameters",
"errors": [
{
"field": "limit",
"message": "Limit must be between 1 and 100",
"value": 150
}
]
}
PATCH /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
Request Body (JSON)
- 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
curl -X PATCH "https://dex-api.renesis.fi/api/vaults/507f1f77bcf86cd799439011/toggle-trade" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"tradePermission": true,
"maxTradeSize": 15,
"dailyTradeLimit": 10,
"slippageTolerance": 0.5
}'
Response Example
{
"success": true,
"message": "Trade permission updated successfully",
"data": {
"id": "507f1f77bcf86cd799439011",
"vaultName": "My Trading Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"creationDate": "2024-01-15T10:30:00.000Z",
"creationLedger": 123456789,
"tradePermission": true,
"maxTradeSize": 15,
"dailyTradeLimit": 10,
"slippageTolerance": 0.5,
"updatedAt": "2024-01-15T12:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
}
Error Responses
400 Bad Request - Missing Required Fields
{
"success": false,
"message": "Validation failed",
"errors": [
{
"field": "maxTradeSize",
"message": "Max trade size is required when enabling trading",
"value": null
},
{
"field": "dailyTradeLimit",
"message": "Daily trade limit is required when enabling trading",
"value": null
}
]
}
404 Not Found
{
"success": false,
"message": "Vault not found"
}
GET /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
curl -X GET "https://dex-api.renesis.fi/api/vaults/stats" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"success": true,
"message": "Vault statistics retrieved successfully",
"data": {
"totalVaults": 150,
"tradeEnabledVaults": 45,
"tradeDisabledVaults": 105,
"averageMaxTradeSize": 12.5,
"averageDailyTradeLimit": 7.2,
"averageSlippageTolerance": 0.75,
"vaultsByCreationDate": {
"last24Hours": 5,
"last7Days": 23,
"last30Days": 67,
"last90Days": 120
},
"vaultsByLedgerRange": {
"minLedger": 123400000,
"maxLedger": 123500000,
"averageLedger": 123456789
},
"topOwners": [
{
"owner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultCount": 12,
"tradeEnabledCount": 8
},
{
"owner": "GB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultCount": 9,
"tradeEnabledCount": 3
}
],
"tradeSettings": {
"maxTradeSize": {
"min": 1,
"max": 50,
"average": 12.5,
"median": 10
},
"dailyTradeLimit": {
"min": 1,
"max": 100,
"average": 7.2,
"median": 5
},
"slippageTolerance": {
"min": 0.1,
"max": 5.0,
"average": 0.75,
"median": 0.5
}
}
}
}
Error Responses
400 Bad Request - Invalid Parameters
{
"success": false,
"message": "Invalid query parameters",
"errors": [
{
"field": "minLedger",
"message": "Minimum ledger must be a positive number",
"value": -1
}
]
}
TypeScript Interfaces
Core Vault Interface
interface Vault {
id: string; // MongoDB ObjectId
vaultName: string; // Human-readable vault name (2-100 chars)
vaultOwner: string; // Stellar address (starts with 'G', 56 chars)
vaultAddress: string; // Stellar contract address (starts with 'C', 56 chars)
creationDate: string; // ISO 8601 timestamp
creationLedger: number; // Stellar ledger number
tradePermission: boolean; // Trading allowed flag
maxTradeSize: number; // Max trade size as percentage (0-100)
dailyTradeLimit: number; // Daily trade limit count
slippageTolerance: number; // Slippage tolerance for swaps (0-100)
updatedAt: string; // ISO 8601 timestamp
createdAt: string; // ISO 8601 timestamp
}
Request/Response Interfaces
// Create vault request
interface CreateVaultRequest {
vaultName: string;
vaultOwner: string;
vaultAddress: string;
creationLedger?: number;
tradePermission?: boolean;
maxTradeSize?: number;
dailyTradeLimit?: number;
slippageTolerance?: number;
}
// Update vault request
interface UpdateVaultRequest {
vaultName?: string;
tradePermission?: boolean;
maxTradeSize?: number;
dailyTradeLimit?: number;
slippageTolerance?: number;
}
// Toggle trade permission request
interface ToggleTradeRequest {
tradePermission: boolean;
maxTradeSize?: number;
dailyTradeLimit?: number;
slippageTolerance?: number;
}
// Vault statistics response
interface VaultStatsResponse {
totalVaults: number;
tradeEnabledVaults: number;
tradeDisabledVaults: number;
averageMaxTradeSize: number;
averageDailyTradeLimit: number;
averageSlippageTolerance: number;
vaultsByCreationDate: {
last24Hours: number;
last7Days: number;
last30Days: number;
last90Days: number;
};
vaultsByLedgerRange: {
minLedger: number;
maxLedger: number;
averageLedger: number;
};
topOwners: Array<{
owner: string;
vaultCount: number;
tradeEnabledCount: number;
}>;
tradeSettings: {
maxTradeSize: {
min: number;
max: number;
average: number;
median: number;
};
dailyTradeLimit: {
min: number;
max: number;
average: number;
median: number;
};
slippageTolerance: {
min: number;
max: number;
average: number;
median: number;
};
};
}
// API Response wrapper
interface APIResponse<T> {
success: boolean;
message: string;
data?: T;
pagination?: {
page: number;
limit: number;
totalItems: number;
totalPages: number;
hasNext: boolean;
hasPrev: boolean;
};
}
// Query parameters for vault listing
interface VaultQueryParams {
page?: number;
limit?: number;
owner?: string;
tradePermission?: boolean;
search?: string;
sortBy?: 'creationDate' | 'creationLedger' | 'vaultName' | 'updatedAt';
sortOrder?: 'asc' | 'desc';
minLedger?: number;
maxLedger?: number;
}
Example Data Objects
// Example vault object with realistic data
const exampleVault: Vault = {
id: "507f1f77bcf86cd799439011",
vaultName: "DeFi Trading Vault",
vaultOwner: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
vaultAddress: "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
creationDate: "2024-01-15T10:30:00.000Z",
creationLedger: 123456789,
tradePermission: true,
maxTradeSize: 15,
dailyTradeLimit: 10,
slippageTolerance: 0.5,
updatedAt: "2024-01-15T14:22:30.000Z",
createdAt: "2024-01-15T10:30:00.000Z"
};
// Example create vault request
const createVaultExample: CreateVaultRequest = {
vaultName: "High-Yield Savings Vault",
vaultOwner: "GB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
vaultAddress: "CB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
creationLedger: 123456790,
tradePermission: false,
maxTradeSize: 0,
dailyTradeLimit: 0,
slippageTolerance: 1.0
};
// Example vault statistics
const vaultStatsExample: VaultStatsResponse = {
totalVaults: 1247,
tradeEnabledVaults: 423,
tradeDisabledVaults: 824,
averageMaxTradeSize: 12.8,
averageDailyTradeLimit: 6.4,
averageSlippageTolerance: 0.73,
vaultsByCreationDate: {
last24Hours: 12,
last7Days: 89,
last30Days: 234,
last90Days: 567
},
vaultsByLedgerRange: {
minLedger: 123400000,
maxLedger: 123500000,
averageLedger: 123456789
},
topOwners: [
{
owner: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
vaultCount: 23,
tradeEnabledCount: 15
},
{
owner: "GB8QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
vaultCount: 18,
tradeEnabledCount: 7
}
],
tradeSettings: {
maxTradeSize: {
min: 1,
max: 50,
average: 12.8,
median: 10
},
dailyTradeLimit: {
min: 1,
max: 100,
average: 6.4,
median: 5
},
slippageTolerance: {
min: 0.1,
max: 5.0,
average: 0.73,
median: 0.5
}
}
};
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
curl -X POST "https://dex-api.renesis.fi/api/vaults" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"vaultName": "Basic Vault",
"vaultOwner": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
"vaultAddress": "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"
}'
Finding Vaults by Owner
curl -X GET "https://dex-api.renesis.fi/api/vaults?owner=GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ" \
-H "Authorization: Bearer YOUR_API_KEY"
Enabling Trading for a Vault
curl -X PUT "https://dex-api.renesis.fi/api/vaults/507f1f77bcf86cd799439011" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"tradePermission": true,
"maxTradeSize": 10,
"dailyTradeLimit": 5
}'
Finding a Vault by Address
curl -X GET "https://dex-api.renesis.fi/api/vaults/by-address/CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ" \
-H "Authorization: Bearer YOUR_API_KEY"
Getting All Vaults for an Owner
curl -X GET "https://dex-api.renesis.fi/api/vaults/by-owner/GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ" \
-H "Authorization: Bearer YOUR_API_KEY"
Finding Trade-Enabled Vaults
curl -X GET "https://dex-api.renesis.fi/api/vaults/trade-permission" \
-H "Authorization: Bearer YOUR_API_KEY"
Toggling Trade Permission
curl -X PATCH "https://dex-api.renesis.fi/api/vaults/507f1f77bcf86cd799439011/toggle-trade" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"tradePermission": true,
"maxTradeSize": 15,
"dailyTradeLimit": 10
}'
Getting Vault Statistics
curl -X GET "https://dex-api.renesis.fi/api/vaults/stats" \
-H "Authorization: Bearer YOUR_API_KEY"
Next Steps