---
title: "POST /admin/create-fund"
method: POST
path: "/admin/create-fund"
tags: ["Admin"]
---

# POST /admin/create-fund

`POST /admin/create-fund`

## Request body

- ApiCreateFundRequest
  - `base_asset_mint` string, required — Base asset mint address (e.g., USDC mint)
  - `constraints` ApiFundConstraint[], nullable — Optional constraints for yield strategies
    - `constraint_type` 'MaxPercentage' | 'MaxBaseAssetAmount', required
    - `value` integer, required
    - `yield_source_target` ApiYieldSourceTarget, required
      - `protocol` string, required
      - `yield_source_type` string, required
  - `fees` ApiFundFee[], nullable — Optional fees configuration
    - `fee_bps` integer, required
    - `fee_type` string, required
    - `recipient` string, required
  - `organization_id` string, nullable — Optional organization ID to associate with the fund
  - `rebalance_settings` ApiCreateFundRebalanceSettings
    - `min_position_settle_time` integer, nullable — Minimum position settle time in seconds
    - `min_rebalance_value` integer, nullable — Minimum rebalance value in lamports
    - `rebalance_period` integer, nullable — Rebalance period in seconds
    - `unallocated_threshold` integer, nullable — Unallocated threshold in lamports
  - `risk_aversion_bps` integer, required — Risk aversion in basis points (0-10000)
  - `risk_max` integer, required — Maximum risk level (0-100)
  - `strategy_id` string, required — Strategy instance ID this fund belongs to
  - `yield_source_ids` ApiYieldSourceIds, required
    - `drift` string, required — Drift protocol yield source ID (Put the Pubkey::default() if not used)
    - `jupiter_lend` string, required — Jupiter Lend protocol yield source ID (Put the Pubkey::default() if not used)
    - `kamino` string, required — Kamino protocol yield source ID (Put the Pubkey::default() if not used)
    - `marginfi` string, required — MarginFi protocol yield source ID (Put the Pubkey::default() if not used)

## Response `200`

Fund created successfully

- CreateFundApiResult
  - `message` string, required
  - `status` string, required
  - `task_id` string, required

## Other responses

- `400` — Bad request
- `500` — Internal server error

---

[API](https://skmtc.net/breeze-baby/apis/breeze-api.md) · [All operations](https://skmtc.net/breeze-baby/apis/breeze-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/breeze-baby/breeze-api/versions/d0a18846aa92/schema)
