> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.finrock.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Address: POST /dac/v1/generate-address for Asset

> Generate a new blockchain deposit address for an asset. Configure omnibus pool membership and automatic gas refilling from your Gas Tank.

The Create Address endpoint generates a new blockchain deposit address under your sub-account's wallet for the specified asset. Each address carries a label that describes its intended purpose, making it easy to track funds per customer or use-case. You can set the address as part of the shared omnibus pool or keep it isolated, and optionally enable automatic gas refilling from your Gas Tank so that sweeps and transfers never stall due to insufficient fees.

## Request

<ParamField header="x-api-key" type="string" required>
  Your Finrock API key.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Your JWT bearer token in the format `Bearer {JWT}`.
</ParamField>

<ParamField body="asset" type="string" required>
  The asset for which to generate an address. Use the `asset_name` value from the [Supported Assets](/api-reference/utilities/supported-assets) list (e.g. `ETH`, `BTC`, `USDT_ETH`).
</ParamField>

<ParamField body="label" type="string" required>
  A descriptive label that identifies the purpose of this address (e.g. `customer-42`, `hot-wallet`, `treasury`). Labels make it easier to reconcile deposits without storing raw addresses in your system.
</ParamField>

<ParamField body="omnibus" type="boolean" default="false">
  Determines whether this address is part of the shared omnibus pool.

  * `false` — creates an **isolated** address; funds stay at this address until explicitly swept.
  * `true` — creates an **omnibus** address; incoming funds are pooled with other omnibus deposits.
</ParamField>

<ParamField body="auto_refill" type="boolean" default="false">
  When set to `true`, Finrock automatically tops up this address with gas from your [Gas Tank](/api-reference/gas/list-gas-tanks) whenever the native token balance is too low to cover transaction fees. This is always `true` for omnibus addresses.
</ParamField>

## Example Request

```bash cURL theme={null}
curl --request POST \
     --url https://api.finrock.io/dac/v1/generate-address \
     --header 'Authorization: Bearer {JWT}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: YOUR_API_KEY' \
     --data '{
       "asset": "ETH",
       "label": "customer-deposit-42",
       "omnibus": false,
       "auto_refill": true
     }'
```

## Response

A successful request returns HTTP `200` with the newly generated address object.

<ResponseField name="address" type="string">
  The newly generated blockchain deposit address.
</ResponseField>

<ResponseField name="address_tag" type="string">
  Destination tag or memo for the address, populated only for assets that require one (e.g. XRP, XLM). `null` for most assets.
</ResponseField>

<ResponseField name="label" type="string">
  The label you provided at creation time.
</ResponseField>

<ResponseField name="omnibus" type="boolean">
  `true` if this address was added to the omnibus pool; `false` if it is isolated.
</ResponseField>

<ResponseField name="auto_refill" type="boolean">
  `true` if automatic gas refilling from the Gas Tank is enabled.
</ResponseField>

```json Sample 200 Response theme={null}
{
  "address": "0xC3d4E5f6A7b8C9d0E1f2A3b4C5d6E7f8A9b0C1d2",
  "address_tag": null,
  "label": "customer-deposit-42",
  "omnibus": false,
  "auto_refill": true
}
```

<ResponseField name="401" type="object">
  Returned when the `x-api-key` or `Authorization` header is missing or invalid.
</ResponseField>

```json Sample 401 Response theme={null}
{
  "error": "Unauthorized",
  "message": "Invalid or missing authentication credentials."
}
```

<Tip>
  Enable `auto_refill` on isolated addresses when you expect to sweep them frequently. This ensures gas is always available without manual intervention.
</Tip>
