---
title: "Create a Withdrawal Config"
method: POST
path: "/v1/withdrawal-configs/api-key"
tags: ["Withdrawals"]
---

# Create a Withdrawal Config

`POST /v1/withdrawal-configs/api-key`

Creates a new withdrawal configuration. Requires an API key with the `WITHDRAWS_CREATE` permission. Set `kind` to `raw` for standard cross-chain withdrawals or `hyperliquid` for Hyperliquid (HyperCore) withdrawals, and pass the source currency id(s) in `currencyIds`. Returns a `withdrawalConfigId` used for the public runtime flow.

## Query parameters

- `apiKey` string, required

## Request body

- CreateWithdrawalConfigDto
  - `kind` 'raw' | 'hyperliquid', required — Withdrawal lane. Use `raw` for standard cross-chain withdrawals (Solana raw transactions or EVM ERC-4337 user operations). Use `hyperliquid` for Hyperliquid (HyperCore) withdrawals.
  - `name` string, required — Display name for the withdrawal config.
  - `currencyIds` string[], required — Source currency Mongo IDs. Each must have the `WITHDRAWAL_SOURCE` feature.
  - `disabled` boolean — Whether the config is disabled.
  - `disabledBlockchainSymbols` string[] — Blockchains to disable for this config.
  - `enabledFeatures` string[] — Optional feature flags. `iron` enables Iron.xyz auto off-ramp.

## Response `201`

Withdrawal config created successfully.

- WithdrawalConfigEntity
  - `id` string — The withdrawal config ID (`withdrawalConfigId`).
  - `name` string
  - `platform` string
  - `disabled` boolean
  - `disabledBlockchainSymbols` string[]
  - `enabledFeatures` string[]
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `400` — Validation error (e.g. currency does not support withdrawals).
- `401` — Provided API key has no access to the resource.

---

[API](https://skmtc.net/hel/apis/helio-open-api.md) · [All operations](https://skmtc.net/hel/apis/helio-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hel/helio-open-api/revisions/5732beb2d39f/schema)
