---
title: "Upsert vault and asset UTXO selection config"
method: PUT
path: "/utxo_management/{vaultAccountId}/{assetId}/selection_config"
tags: ["UTXO Management"]
---

# Upsert vault and asset UTXO selection config

`PUT /utxo_management/{vaultAccountId}/{assetId}/selection_config`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/utxo_management/{vaultAccountId}/{assetId}/selection_config`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/utxo_management/:vaultAccountId/:assetId/selection_config/put.ts> (a function with typed inputs; its response is checked against the schema)

Creates or updates the UTXO selection strategy for this vault account and asset. `ADAPTIVE` is recommended.
Endpoint Permission: Admin, Non-Signing Admin.

## Headers

- `Idempotency-Key` string

## Request body

- UpsertUtxoSelectionConfigRequest
  - `strategy` 'ASC' | 'DESC' | 'ADAPTIVE', required: UTXO selection strategy. `ADAPTIVE` is recommended: the engine chooses inputs at selection time. `ASC` spends smallest UTXOs first. `DESC` spends largest first.

## Response `200`

Updated UTXO selection config

- UtxoSelectionConfigResponse: `effective` is always present. `configured` is omitted when no row is stored at the requested scope (the server does not emit `"configured": null`). PUT responses always include `configured`.
  - `configured` UtxoSelectionConfigEntry: Config row stored at exactly the requested scope. Omitted from the parent object when none exists; the server does not emit JSON `null`.
    - `strategy` 'ASC' | 'DESC' | 'ADAPTIVE', required: UTXO selection strategy. `ADAPTIVE` is recommended: the engine chooses inputs at selection time. `ASC` spends smallest UTXOs first. `DESC` spends largest first.
    - `updatedAt` string, date-time, required: Time at which this configured row was last updated.
  - `effective` EffectiveUtxoSelectionConfig, required
    - `strategy` 'ASC' | 'DESC' | 'ADAPTIVE', required: UTXO selection strategy. `ADAPTIVE` is recommended: the engine chooses inputs at selection time. `ASC` spends smallest UTXOs first. `DESC` spends largest first.
    - `source` 'DEFAULT' | 'WORKSPACE' | 'VAULT_ASSET', required: Where the effective strategy was resolved from. `DEFAULT` means no stored row applies at this scope or any scope it inherits from - `effective.strategy` reports whichever strategy currently applies. `WORKSPACE` and `VAULT_ASSET` are stored rows.

## Other responses

- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
