Vault Endpoints

API endpoints for vault operations.

List User's Vaults

GET /api/vaults
Cookie: session=<token>

Response:

{
  "ok": true,
  "data": {
    "vaults": [
      {
        "address": "0x...",
        "investor": "0x...",
        "trader": "0x...",
        "initialBalance": "10000",
        "currentBalance": "12500",
        "status": "ACTIVE",
        "paused": false,
        "dealDeadline": 1704067200,
        "profitShare": {
          "trader": 80,
          "investor": 20
        }
      }
    ]
  }
}

Get Vault Details

GET /api/vaults/:address
Cookie: session=<token>

Response:

{
  "ok": true,
  "data": {
    "vault": {
      "address": "0x...",
      "initialBalance": "10000",
      "currentBalance": "12500",
      "peakBalance": "13000",
      "status": "ACTIVE",
      "paused": false,
      "closed": false,
      "maxDrawdown": 20,
      "dailyDrawdown": 5,
      "currentDrawdown": 3.8,
      "dealDeadline": 1704067200,
      "lastBalanceUpdate": 1703980800,
      "trades": [],
      "positions": []
    }
  }
}

Get Vault Trades

GET /api/vaults/:address/trades
Cookie: session=<token>

Query Parameters:

  • limit - Number of trades (default: 100)

  • offset - Pagination offset

  • startDate - Filter by date

  • endDate - Filter by date

Response:

{
  "ok": true,
  "data": {
    "trades": [
      {
        "id": "trade_123",
        "symbol": "BTC",
        "side": "buy",
        "size": 0.1,
        "price": 50000,
        "pnl": 150,
        "timestamp": 1703980800
      }
    ],
    "total": 45,
    "hasMore": true
  }
}

Close Vault

POST /api/vaults/:address/close
Cookie: session=<token>

Response:

{
  "ok": true,
  "data": {
    "vault": {
      "address": "0x...",
      "status": "CLOSED",
      "finalBalance": "12500",
      "profit": 2500,
      "traderShare": 2000,
      "investorShare": 10500
    }
  }
}

Pause/Unpause Vault

Unpause (trader only):

POST /api/vaults/:address/unpause
Cookie: session=<token>

Note: Vaults auto-pause when risk limits breached. Only trader can manually unpause (if balance recovered).

Withdraw from Closed Vault

POST /api/vaults/:address/withdraw
Cookie: session=<token>

Response:

{
  "ok": true,
  "data": {
    "txHash": "0x...",
    "amount": "2000",
    "recipient": "0x..."
  }
}

Last updated