Transactions
Create Transaction
Submit an on-chain transfer from your Finrock wallet. Supports single withdrawals, bulk UTXO payouts, exchange transfers, and internal sub-account moves.
POST
MCP scope:
dac.funds (not available to AI connectors yet)
The Create Transaction endpoint submits an on-chain transfer from your Finrock wallet to an internal or external destination. It supports single-output withdrawals, bulk UTXO payouts to multiple recipients in one call, transfers to exchange accounts, and internal moves between sub-accounts. Pass a sequence_id so the same transfer can’t be sent twice: if a transaction with that sequence ID already exists, Finrock rejects the request instead of creating a duplicate. For AML tracking, include the aml_cid corresponding to the external customer associated with the withdrawal.
Body Parameters
The asset to transfer. Use the
id value from the Supported Assets list (e.g. BTC, ETH, USDT_ETH).The amount to transfer, expressed in the asset’s native unit. Maximum precision is 8 decimal places. Ignored when
max_amount is true.Defines the spending source. Refer to the Transaction Types reference for the full list of allowed values.
An address string or address label to spend from. When omitted, Finrock selects the source automatically from available funds in the wallet.
The
address_tag value of the source address. Required when spending from a specific address on XRP or XLM blockchains that use destination tags.Defines the destination category. Allowed values:
Internal, External, SubAccount, Exchange. Refer to the Transaction Types reference for details on each value.The destination address, label, or identifier. Either
destination_id or destinations (bulk array) is required — do not supply both.The destination tag or memo for the recipient address. Required when sending to XRP or XLM addresses that specify a destination tag.
For UTXO chains only — provide an array of recipient objects to create a bulk payout in a single transaction. Cannot be used together with
destination_id.A free-text note attached to the transaction record in Finrock. Useful for internal reconciliation. The memo is not broadcast on-chain.
A client-generated unique identifier for idempotency. If a transaction with this
sequence_id already exists in your sub-account, Finrock doesn’t create a new one. It returns HTTP 400 with {"code": 1076, "error": "DUPLICATE_SEQUENCE_ID"}. See Request Idempotency for details.When
true, Finrock sends the maximum possible balance after deducting the network fee, ignoring the amount field. Useful for emptying an address.Your external customer ID for AML compliance tracking. When provided, Finrock associates this transaction with the AML record for the specified customer. Required if your account has AML screening enabled.
Response
A successful request returns HTTP200 with the created transaction object.
The on-chain transaction hash once broadcast.
null while the transaction is still being signed or queued.Initial transaction status. Typical value on creation:
Pending. See Transaction Statuses for all values.Poll the List Transactions endpoint using the returned
id to track the transaction through to on-chain confirmation.
