Skip to main content

Vault Formation

Create Vault

Creates a new vault with specified configuration.

HTTP RequestEndpoint
POST /api/v1/vaults
Sample Request
{
  "vaultType"vault_name": "PRIVATE"Example Vault",
  "assetTypes"vault_type": ["SINGLE_NFT"]public", 
  "settings"privacy_type": "semi-private",
  "admin_user": {
    "allowedAssets"wallet_address": ["addr1..."addr1q9example123",
    "addr2...email": "][email protected]"
  },
  "allowedContributors": ["addr3...", "addr4..."],
    "assetWindow"asset_settings": {
    "startTime"allowed_asset_types": ["NFT", "CNT"],
    "policy_ids": ["policy12345", "policy67890"], 
    "valuation_type": "2024-12-01T00:00:00Z"LBE", 
    "duration"floor_price_percentage": 90, 
    "02:00:00"max_assets": 100
  },
  "allowedInvestors": ["addr5...", "addr6..."],
    "valuationType": "FIXED",
    "fractionalization"investment_settings": {
    "percentage"investment_window_duration": "75.00"48h",  // ISO-like duration
    "tokenSupply"investment_start_time": "1000000"2024-11-24T10:00:00Z",  // Optional; defaults to vault creation time
    "tokenDecimals"minimum_investment_reserve": "6",10.0, 
    "tokenImage"ft_supply": 100000, 
    "ipfs://Qm...ft_token_decimals": 6,
    "lp_percentage": 10
  },
  "investment"governance_settings": {
    "window"creation_threshold": "48:00:00",5, 
    "reserve"start_threshold": "20.00",10, 
    "liquidityPool"vote_threshold": "5.00"
    },50,
    "termination"execution_threshold": {60,
    "type"cosigning_threshold": "DAO",
      "fdp": "10.00"
    }3
  }
}
Sample Response (201: Created)
{
  "status"vault_id": "success"vault123",
  "data"vault_name": "Example Vault",
  "transaction": {
    "vaultId"tx_hash": "v_abc123",
    "contractAddress": "addr_vault123..."b26f8c9a0d1a4a9b8b12f9f9a8c1234567e9d0f1c234567890abcdef",
    "status": "CREATED"confirmed",
    "timestamps"block_height": 1234567
  },
  "investment_window": {
    "created"duration": "48h",
    "start_time": "2024-11-20T10:24T10:00:00Z",
    "assetWindowStart"end_time": "2024-12-01T00:00:00Z",
      "assetWindowEnd": "2024-12-01T02:11-26T10:00:00Z"
  },
  "transactionHash"status": "tx_hash123...created",
  "created_at": }"2024-11-23T10:00:00Z"
}

Add Assets to Vault

Add assets during the asset window period.

HTTP Request
POST /api/v1/vaults/{vaultId}/assets
Sample Request
{
  "assets"policy_id": ["policy12345",
  "asset_name": "ExampleAsset",
  "valuation_method": "floor_price",
  "metadata": {
    "contractAddress"creator": "addr_nft123..."CreatorAddress",
    "tokenId"legal_proof": "42",
    "quantity": "1"https://proof.example.com/doc.pdf"
  }]
}
Sample Response (201: Created)
{
  "status"vault_id": "success"vault123",
  "data"asset_id": "asset456",
  "transaction": {
    "addedAssets": [{
      "assetId"tx_hash": "asset_123"a92f81e3b69c4d12b34c567890fabcde1234567890abcdef56789abc",
    "status": "LOCKED"confirmed",
    "transactionHash"block_height": 1234570
  },
  "status": "tx_hash456..."
    }]added",
  "vaultValuation"valuation": {
    "totalValue"method": "100000"floor_price",
    "floorPrice"value": "90000"1000000
  },
  "dexPrice": "10000",
      "timestamp"created_at": "2024-12-01T01:11-23T11:00:00Z"
    }
  }
}

Remove Asset

Remove assets during the asset window period. Will fail if attempted before or after the window period.

HTTP RequestEndpoint
DELETE /api/v1/vaults/{vaultId}/assets/{assetId}
Sample Response
{
  "status": "success",
  "data": {
    "assetId": "asset_123",
    "removalStatus": "COMPLETED",
    "transactionHash": "tx_hash789...",
    "updatedValuation": {
      "total": "140000",
      "timestamp": "2024-12-01T01:35:00Z"
    }
  }
}

Get Vault Valuation

Calculate current vault valuation based on assets.

HTTP Request
GET /api/v1/vaults/{vaultId}/valuation
Sample Response
{
  "status": "success",
  "data": {
    "valuation": {
      "total": "150000",
      "breakdown": {
        "nftValue": "120000",
        "cntValue": "30000"
      },
      "assetCounts": {
        "nfts": 2,
        "cnts": 1
      },
      "timestamp": "2024-12-01T01:30:00Z"
    }
  }
}

List Vault Assets

List all assets in the vault.

HTTP Request
GET /api/v1/vaults/{vaultId}/assets
Sample Response
{
  "status": "success",
  "data": {
    "assets": [{
      "assetId": "asset_123",
      "type": "NFT",
      "contractAddress": "addr_nft123...",
      "tokenId": "42",
      "addedAt": "2024-12-01T01:00:00Z",
      "status": "LOCKED",
      "currentValue": "90000"
    }],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 45
    }
  }
}

Update Vault AllowList

Updates the list of wallets allowed to participate in the vault, and their type.

HTTP Request
PATCH /api/v1/vaults/{vaultId}/allowlist
Sample Request
{
  "type": "ASSET|CONTRIBUTOR|INVESTOR",
  "operation": "ADD|REMOVE",
  "addresses": ["addr1...", "addr2..."]
}
Sample Response
{
  "status": "success",
  "data": {
    "updatedAllowList": {
      "type": "ASSET",
      "count": 24,
      "lastUpdated": "2024-12-01T02:00:00Z"
    }
  }
}

Vaut Performance Metrics

Returns some vault performance metrics.

HTTP Request
GET /api/v1/vaults/{vaultId}/metrics
Sample Response
{
  "status": "success",
  "data": {
    "valuation": {
      "initial": "100000",
      "current": "150000",
      "change": "50.00"
    },
    "participation": {
      "uniqueVoters": 45,
      "averageQuorum": "68.00",
      "proposalCount": 12
    },
    "timeline": {
      "created": "2024-11-20T10:00:00Z",
      "locked": "2024-12-01T02:00:00Z",
      "age": "11d 16h"
    }
  }
}

Vault Activity

Returns a vault activity log.

HTTP Request
GET /api/v1/vaults/{vaultId}/activity
Sample Response
{
  "status": "success",
  "data": {
    "activities": [{
      "type": "ASSET_ADDED|PROPOSAL_CREATED|VOTE_CAST",
      "timestamp": "2024-12-01T01:00:00Z",
      "actor": "addr_user123...",
      "details": {},
      "transactionHash": "tx_hash123..."
    }],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 156
    }
  }
}

Update Vault Settings

Lets you update modifiable vault settings.

Sample Request
{
  "investorAllowList": {
    "enabled": true,
    "addresses": ["addr1..."]
  },
  "valuationType": "LBE",
  "termination": {
    "fdp": "12.00"
  }
}

This would return the standard Success/Fail response object.