Jump to
Ctrl
+
/

Create UTXO transfer

POST
/vaults/{vaultId}/transaction-requests/utxo-transfer

Creates a UTXO transaction request on supported blockchains (Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Dash, Zcash) with explicit input selection. The user specifies which UTXOs to spend by ID, bypassing the automatic UTXO selection used by the standard transfer flow. Inputs may span multiple vault accounts within the same vault. An optional feePayer address can be designated to contribute an input and receive the change output. The server reserves the specified UTXOs, builds the transaction, and returns the transaction request in CREATED status. The request then proceeds through the standard governance and signing pipeline.

Path Parameters

vaultId string Required

Unique identifier of the vault.

Query Parameters

context string Optional

In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

Request Body Schema application/json

context string Optional

In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

data object Required
item object Required
assetId string Required

Unique internal identifier of the blockchain asset involved in the transaction (UTXO-based blockchains only).

changeData object Optional

An optional object that specifies where the transaction's change output should be sent — that is, the leftover balance after the recipient amounts and the network fee have been deducted from the spent UTXOs. Mutually exclusive with feePayer.

address string Optional

A specific destination address for the change output. When provided, the server uses this address as-is and no new address is derived.

vaultAccountId string Optional

When provided, the server selects or derives a change address inside the specified vault account. The vault account must belong to the same vault as the transaction.

feePayer string Optional

Fee payer address — must belong to the vault and be on the same chain as the senders. Mutually exclusive with changeData and gross.

feePriority string Required

Fee priority: slow, standard, or fast.

gross boolean Optional

Whether the recipient amounts are gross (fee deducted from them). Mutually exclusive with fee payer.

maxFee string Optional

Maximum fee the caller is willing to pay. The transaction fails with MAX_FEE_EXCEEDED if exceeded.

note string Required

Short human-readable description to the transaction request (max 250 characters).

recipients array Items (object) Required

Destinations for the transaction. Transfer recipients (1 to 150).

address string Required

Recipient address.

amount string Required

Recipient amount.

senders array Items (object) Required

UTXOs to spend (1 to 150). May span multiple vault accounts within the same vault.

utxoId string Required

A unique identifier referencing a specific unspent transaction output (UTXO).

Response Schema

apiVersion string Required

Specifies the version of the API that incorporates this endpoint.

2026-03-20
requestId string Required

Defines the ID of the request. The requestId is generated by Vaultody and it's unique for every request.

601c1710034ed6d407996b30
context string Optional

In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

yourExampleString
data object Required
item object Required
amountUnit string Required

Amount unit.

BTC
feePriority string Required

Fee priority of the transaction - slow, standard, fast.

slow
note string Required

Transaction note with additional details.

yourAdditionalInformationhere
recipients array Items (object) Required

Destinations of the transaction.

address string Required

Address of the destination.

bc1qut6n59lceee7s94g5qme08yzu8evd2yfjuuu3k
amount string Required

Defines the amount sent to the destination address.

0.001
amountUnit string Required

Defines the unit of the received amount for the address, e.g. BTC, LTC.

BTC
assetId string Required

The identifier of the blockchain asset to be transferred. Defines which UTXO-based chain the transaction will be executed on. Supported values correspond to the chains BTC, LTC, DOGE, BCH, DASH, and ZEC.

6523e058a06ebf1322d7dd6f
senders array Items (object) Required

Resolved senders (per-UTXO breakdown); each carries its own vault account id to disambiguate multi-vault-account transfers.

address string Required

UTXO owning address.

tb1q84p9dwvfgy4q2tj2fz27n6c6g7xd2x2p69hpck
addressLabel string Optional

Label of the UTXO address, if one has been assigned.

Bitcoin
amount string Required

UTXO amount in native unit.

0.001
amountUnit string Required

Amount unit.

BTC
assetId string Required

The identifier of the blockchain asset to be transferred.

69946158b588731a395513f7
utxoId string Required

A unique identifier referencing a specific unspent transaction output (UTXO).

6a1e8633451fe82cc50db5cc
vaultAccountId string Required

Owning vault account id for this UTXO.

69e2229d96c8640007743e6c
totalTransactionAmount string Required

Total amount sent to recipients (excluding change and fee).

0.001
transactionRequestId string Required

Represents a unique identifier of the transaction request (the request sent to make a transaction), which helps in identifying which callback and which referenceId concern that specific transaction request.

62daacdbc8a7282e9ea01c35
transactionRequestStatus string Required

Defines the status of the transaction, e.g. "created".

created
transactionType string Required

Defines the transaction type. For UTXO transfers this is always "coin".

coin

Callback parameters

walletId string Required

Unique identifier of the wallet associated with the transaction.

685121237d7d1e0007ac1a1d
webhookId string Required

Unique identifier of the webhook that triggered this callback.

68516e9c6620b0a4790ed541
idempotencyKey string Required

A unique key used to prevent duplicate processing of this callback if it's sent more than once.

928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9
apiVersion string Required

The version of the API that this webhook callback conforms.

2025-09-23
data object Required

Contains the event type and all related transaction information.

event string Required

Type of webhook event: TRANSACTION_REQUEST indicates a new transaction request has been created and is pending approval or rejection.

TRANSACTION_REQUEST
item object Required

Contains detailed metadata about the outgoing mined transaction

vaultAccountId string Required

The specific vault account id.

69ba58c529eb49000746b311
assetId string Required

The specific asset id.

6913471c6b2794841dc8fb6f
unit string Required

The specific asset unit.

BTC
requestId string Required

A unique identifier for the original transaction request that initiated this outgoing transaction.

686cd2860ca2f4fd25f77099
transactionType string Required

The type of asset being transferred: COIN, TOKEN, LINKING, SMART_COIN, SMART_TOKEN, FREEZE, UNFREEZE, DELEGATE, UNDELEGATE, WITHDRAW_RESOURCE,BATCH.

COIN
Was this page helpful?
Yes
No
Powered by
Language
URL

{
    "apiVersion": "2026-03-20",
    "requestId": "601c1710034ed6d407996b30",
    "context": "yourExampleString",
    "data": {
        "item": {
            "amountUnit": "BTC",
            "feePriority": "slow",
            "note": "yourAdditionalInformationhere",
            "recipients": [
                {
                    "address": "bc1qut6n59lceee7s94g5qme08yzu8evd2yfjuuu3k",
                    "amount": "0.001",
                    "amountUnit": "BTC",
                    "assetId": "6523e058a06ebf1322d7dd6f"
                }
            ],
            "senders": [
                {
                    "address": "tb1q84p9dwvfgy4q2tj2fz27n6c6g7xd2x2p69hpck",
                    "addressLabel": "Bitcoin",
                    "amount": "0.001",
                    "amountUnit": "BTC",
                    "assetId": "69946158b588731a395513f7",
                    "utxoId": "6a1e8633451fe82cc50db5cc",
                    "vaultAccountId": "69e2229d96c8640007743e6c"
                }
            ],
            "totalTransactionAmount": "0.001",
            "transactionRequestId": "62daacdbc8a7282e9ea01c35",
            "transactionRequestStatus": "created",
            "transactionType": "coin"
        }
    }
}
{
    "walletId": "685121237d7d1e0007ac1a1d",
    "webhookId": "68516e9c6620b0a4790ed541",
    "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9",
    "apiVersion": "2025-09-23",
    "data": {
        "event": "TRANSACTION_REQUEST",
        "item": {
            "vaultAccountId": "69ba58c529eb49000746b311",
            "assetId": "6913471c6b2794841dc8fb6f",
            "unit": "BTC",
            "requestId": "686cd2860ca2f4fd25f77099",
            "transactionType": "COIN"
        }
    }
}