> ## Documentation Index
> Fetch the complete documentation index at: https://v3.docs.derive.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a new curated vault

> Registers a new vault on-chain from a signed action; the signing wallet becomes the vault's curator and seeds the initial deposit from its funding subaccount. Inputs set the deposit asset, initial deposit amount, initial share price, management/performance fee rates (in basis points), max slippage, redemption cooldown, an optional benchmark asset for the high-water mark, and the max sequencer fee authorized. Requires the vault curator-create permission.



## OpenAPI

````yaml /openapi.json post /private/create_vault
openapi: 3.1.0
info:
  title: Derive v3 API
  version: 0.2.0
  description: JSON-RPC 2.0 methods, served over WebSocket and HTTP POST.
servers:
  - url: https://api.derive.xyz/v3
    description: Production (HTTP POST base)
  - url: https://testnet.api.derive.xyz/v3
    description: Testnet (HTTP POST base)
security: []
tags:
  - name: Subaccounts
    description: >-
      List, inspect, and label subaccounts, portfolios, positions, and
      collateral.
  - name: Session Keys
    description: Register, edit, and list delegated signing keys.
  - name: Account
    description: Wallet-level account information and settings.
  - name: Orderbook
    description: Place, replace, cancel, and query orders, trigger orders, and algos.
  - name: RFQ
    description: 'Request-for-quote: send RFQs, quote, and execute block trades.'
  - name: Vault Shareholders
    description: >-
      Deposit into and withdraw from vaults, and track shares, requests, and
      performance.
  - name: Vault Curators
    description: >-
      Create and operate curated vaults: settle deposit and withdrawal requests,
      and manage vault metadata.
  - name: History
    description: >-
      Per-account historical records: orders, trades, transfers, and
      settlements.
  - name: Market Maker Protection
    description: Configure, read, and reset market-maker protection.
  - name: Transfers & Withdrawals
    description: Move collateral between subaccounts, to other wallets, and on-chain.
  - name: System
    description: Rate limits and transaction lookups.
  - name: Market Data
    description: Instruments, currencies, tickers, and market-wide feeds.
  - name: Referrals
    description: Referral codes and program performance.
  - name: Other
    description: Uncategorized.
paths:
  /private/create_vault:
    post:
      tags:
        - Vault Curators
      summary: Create a new curated vault
      description: >-
        Registers a new vault on-chain from a signed action; the signing wallet
        becomes the vault's curator and seeds the initial deposit from its
        funding subaccount. Inputs set the deposit asset, initial deposit
        amount, initial share price, management/performance fee rates (in basis
        points), max slippage, redemption cooldown, an optional benchmark asset
        for the high-water mark, and the max sequencer fee authorized. Requires
        the vault curator-create permission.
      operationId: private_create_vault
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVaultRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultCreateResponse'
        default:
          description: JSON-RPC error (see Error Codes)
components:
  schemas:
    CreateVaultRequest:
      description: >-
        Fields common to every signed vault action. They appear alongside each
        endpoint's action-specific parameters in the same request object.
      type: object
      required:
        - cooldown_sec
        - deposit_spot_asset
        - initial_deposit
        - initial_share_price_usd
        - management_fee_bps
        - manager_id
        - max_fee_usd
        - max_slippage_bps
        - nonce
        - performance_fee_bps
        - signature
        - signature_expiry_sec
        - signer
        - subaccount_id
      properties:
        benchmark_asset:
          description: >-
            Spot asset to denominate the high-water mark in. Omit (or null) for
            the feed-less USD default; set it to charge performance fees only on
            outperformance measured against that asset.
          default: null
          anyOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
        cooldown_sec:
          type: integer
          format: uint64
          minimum: 0
        deposit_spot_asset:
          $ref: '#/components/schemas/Address'
        initial_deposit:
          description: >-
            Initial deposit in the vault's deposit asset, as a USD decimal
            string (e.g. `"15000"`).
          type: string
          format: decimal
        initial_share_price_usd:
          description: >-
            Initial share price the vault is seeded at, in USD, as a decimal
            string (e.g. `"1"` or `"100"`). Must lie within the protocol's
            permitted range.
          type: string
          format: decimal
        management_fee_bps:
          type: integer
          format: uint64
          minimum: 0
        manager_id:
          type: integer
          format: uint64
          minimum: 0
        max_fee_usd:
          description: >-
            Maximum sequencer fee the signer authorises, in USD, as a decimal
            string (e.g. `"1.5"`).
          type: string
          format: decimal
        max_slippage_bps:
          type: integer
          format: uint64
          minimum: 0
        nonce:
          type: integer
          format: uint64
          minimum: 0
        performance_fee_bps:
          type: integer
          format: uint64
          minimum: 0
        signature:
          description: 0x-prefixed hex of the 65-byte EOA signature.
          type: string
        signature_expiry_sec:
          type: integer
          format: uint64
          minimum: 0
        signer:
          $ref: '#/components/schemas/Address'
        subaccount_id:
          description: >-
            The subaccount the action is signed on; which subaccount applies
            depends on the specific method — see that method's reference.
          type: integer
          format: uint64
          minimum: 0
    VaultCreateResponse:
      description: >-
        Returned by `create_vault`: identifiers to track the on-chain
        `CreateVault` operation.
      type: object
      required:
        - op_uuid
        - operation_id
      properties:
        op_uuid:
          type: string
        operation_id:
          type: integer
          format: uint64
          minimum: 0
    Address:
      description: 20-byte Ethereum address as a 0x-prefixed lowercase hex string.
      type: string
      maxLength: 42
      minLength: 42
      pattern: ^0x[0-9a-fA-F]{40}$

````

## Related topics

- [Create a Vault](/vaults/create-a-vault.md)
- [List vaults a wallet curates](/api-reference/vault-curators/list-vaults-a-wallet-curates.md)
- [Winddowns](/vaults/winddowns.md)
