---
title: "Create vault"
method: POST
path: "/vaults"
tags: ["Vaults"]
---

# Create vault

`POST /vaults`

Create a new vault by providing deployment parameters.Current user will
be set as owner of the account and a new sub-account will be deployed as
vault operator.

## Headers

- `PARADEX-PARENT-ACCOUNT` string, required
- `PARADEX-STARKNET-SIGNATURE` string, required
- `PARADEX-STARKNET-ACCOUNT` string, required
- `PARADEX-STARKNET-ACCOUNT-DERIVATION-PATH` string, required

## Request body

- RequestsCreateVault
  - `curator_name` string — Curator name for the vault (optional)
  - `deposit_tx_signature` string — Initial deposit transfer by vault owner
  - `description` string — Description for the vault
  - `lockup_period` integer — User's deposits lockup period in days
  - `max_tvl` integer — Max TVL locked by the Vault, if any. 0 for unlimited
  - `name` string — Unique name for the vault
  - `operator_eth_address` string — EVM address of the vault operator (empty for legacy Starknet operator)
  - `operator_index` integer — Index of the operator sub-account (0 for legacy Starknet operator)
  - `operator_signer_type` string — Signer type for the operator: "starknet" (default when empty) or "eip191"
  - `profit_share` integer — Vault owner profit share (percentage)
  - `public_key` string — Public key of vault operator
  - `show_balances` boolean — Whether the vault's balances are publicly visible. Defaults to true when omitted.
  - `show_positions` boolean — Whether the vault's positions are publicly visible. Defaults to true when omitted.
  - `strategy_description` string — Strategy description for the vault (optional)

## Response `201`

Created

- ResponsesVaultResp
  - `address` string — Contract address of the vault
  - `created_at` integer — Unix timestamp in milliseconds of when the vault has been created
  - `curator_name` string — Curator name of the vault (empty string if not set)
  - `description` string — Description of the vault
  - `kind` 'user' | 'protocol'
  - `last_updated_at` integer — Unix timestamp in milliseconds of when the vault was last updated
  - `lockup_period` integer — Lockup period of the vault in days
  - `max_tvl` integer — Maximum amount of assets the vault can hold in USDC
  - `name` string — Name of the vault
  - `operator_account` string — Operator account of the vault
  - `owner_account` string — Owner account of the vault
  - `profit_share` integer — Profit share of the vault in percentage, i.e. 10 means 10%
  - `status` 'INITIALIZING' | 'ACTIVE' | 'CLOSED' | 'FAILED'
  - `strategies` ResponsesStrategy[] — Strategies of the vault
    - `address` string — Contract address of the sub-operator
    - `name` string — Strategy name
    - `visibility` ResponsesVisibility
      - `balances` boolean — Whether the vault's balances are publicly visible
      - `positions` boolean — Whether the vault's positions are publicly visible
  - `strategy_description` string — Strategy description of the vault (empty string if not set)
  - `token_address` string — LP token address
  - `visibility` ResponsesVisibility
    - `balances` boolean — Whether the vault's balances are publicly visible
    - `positions` boolean — Whether the vault's positions are publicly visible

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/tradeparadex/apis/paradex-rest-api-2.md) · [All operations](https://skmtc.net/tradeparadex/apis/paradex-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tradeparadex/paradex-rest-api-2/versions/6a76453d754c/schema)
