Jump to
Ctrl
+
/

Validate UTXO Transfer

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

A dry-run version of the Create UTXO Transfer endpoint transfer without executing it. This side-effect-free endpoint accepts the standard transfer parameters but only computes and returns a complete transaction preview. Use it to verify details and confirm fees before submission.

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 Optional

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

Amount to send (native unit, e.g. BTC)

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
error string Optional

Error message if validation failed.

MAX_FEE_EXCEEDED
feeInNative string Required

Calculated transaction fee.

0.00001698
inputAmount string Required

Total input amount.

0.00426833
inputSize string Required

Size of the transaction inputs in weight units (vbytes).

367.5
outputAmount string Required

Total output amount.

0.00426506
outputSize string Required

Size of the transaction outputs in weight units (vbytes)

93
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
recipientsValid boolean Required

Whether all recipients are valid.

true
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
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
sendersValid boolean Required

Whether all senders are valid.

true
size string Required

Transaction size in bytes.

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

{
    "apiVersion": "2026-03-20",
    "requestId": "601c1710034ed6d407996b30",
    "context": "yourExampleString",
    "data": {
        "item": {
            "error": "MAX_FEE_EXCEEDED",
            "feeInNative": "0.00001698",
            "inputAmount": "0.00426833",
            "inputSize": "367.5",
            "outputAmount": "0.00426506",
            "outputSize": "93",
            "recipients": [
                {
                    "address": "bc1qut6n59lceee7s94g5qme08yzu8evd2yfjuuu3k",
                    "amount": "0.001"
                }
            ],
            "recipientsValid": true,
            "senders": [
                {
                    "address": "tb1q84p9dwvfgy4q2tj2fz27n6c6g7xd2x2p69hpck",
                    "addressLabel": "Bitcoin",
                    "amount": "0.001",
                    "utxoId": "6a1e8633451fe82cc50db5cc",
                    "vaultAccountId": "69e2229d96c8640007743e6c"
                }
            ],
            "sendersValid": true,
            "size": "460.5"
        }
    }
}