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.