HomeDocumentationAPI Reference
Log In
API Reference

Transfer Positions

Method Name

private/transfer_positions

Transfers multiple positions from one subaccount to another, owned by the same wallet.

The transfer is executed as a an RFQ. A mock RFQ is first created from the taker parameters, followed by a maker quote and a taker execute.
The leg amounts, prices and instrument name must be the same in both param payloads.
Fee is not charged and a zero max_fee must be signed.
Every leg in the transfer must be a position reduction for either maker or taker (or both).

History: for position transfer history, use the private/get_trade_history RPC (not private/get_erc20_transfer_history).
Required minimum session key permission level is admin

Parameters

walletstringrequired
Public key (wallet) of the account
maker_paramsobjectrequired
Maker quote parameters and signature
maker_params.directionstringrequired
Quote direction, buy means trading each leg at its direction, sell means trading each leg in the opposite direction.
enum buysell
maker_params.max_feestringrequired
Max fee ($ for the full trade). Request will be rejected if the supplied max fee is below the estimated fee for this trade.
maker_params.nonceintegerrequired
Unique nonce defined as a concatenated UTC timestamp in ms and random number up to 6 digits (e.g. 1695836058725001, where 001 is the random number)
maker_params.signaturestringrequired
Ethereum signature of the quote
maker_params.signature_expiry_secintegerrequired
Unix timestamp in seconds. Expiry MUST be at least 310 seconds from now. Once time till signature expiry reaches 300 seconds, the quote will be considered expired. This buffer is meant to ensure the trade can settle on chain in case of a blockchain congestion.
maker_params.signerstringrequired
Owner wallet address or registered session key that signed the quote
maker_params.subaccount_idintegerrequired
Subaccount ID
maker_params.legsarray of objectsrequired
Quote legs
maker_params.legs[].amountstringrequired
Amount in units of the base
maker_params.legs[].directionstringrequired
Leg direction
enum buysell
maker_params.legs[].instrument_namestringrequired
Instrument name
maker_params.legs[].pricestringrequired
Leg price
taker_paramsobjectrequired
Taker quote execution parameters and signature
taker_params.directionstringrequired
Quote direction, buy means trading each leg at its direction, sell means trading each leg in the opposite direction.
enum buysell
taker_params.max_feestringrequired
Max fee ($ for the full trade). Request will be rejected if the supplied max fee is below the estimated fee for this trade.
taker_params.nonceintegerrequired
Unique nonce defined as a concatenated UTC timestamp in ms and random number up to 6 digits (e.g. 1695836058725001, where 001 is the random number)
taker_params.signaturestringrequired
Ethereum signature of the quote
taker_params.signature_expiry_secintegerrequired
Unix timestamp in seconds. Expiry MUST be at least 310 seconds from now. Once time till signature expiry reaches 300 seconds, the quote will be considered expired. This buffer is meant to ensure the trade can settle on chain in case of a blockchain congestion.
taker_params.signerstringrequired
Owner wallet address or registered session key that signed the quote
taker_params.subaccount_idintegerrequired
Subaccount ID
taker_params.legsarray of objectsrequired
Quote legs
taker_params.legs[].amountstringrequired
Amount in units of the base
taker_params.legs[].directionstringrequired
Leg direction
enum buysell
taker_params.legs[].instrument_namestringrequired
Instrument name
taker_params.legs[].pricestringrequired
Leg price

Response

idstring or integerrequired
resultobjectrequired
result.maker_quoteobjectrequired
Created maker-side quote object
result.maker_quote.cancel_reasonstringrequired
Cancel reason, if any
enum user_requestinsufficient_marginsigned_max_fee_too_lowmmp_triggercancel_on_disconnectsession_key_deregisteredsubaccount_withdrawnrfq_no_longer_opencompliance
result.maker_quote.creation_timestampintegerrequired
Creation timestamp in ms since Unix epoch
result.maker_quote.directionstringrequired
Quote direction
enum buysell
result.maker_quote.extra_feestringrequired
Extra fee in USDC added by the referring client (included in quote fee)
result.maker_quote.feestringrequired
Fee paid for this quote (if executed)
result.maker_quote.fill_pctstringrequired
Percentage of the RFQ that this quote would fill, from 0 to 1.
result.maker_quote.is_transferbooleanrequired
Whether the order was generated through private/transfer_position
result.maker_quote.labelstringrequired
User-defined label, if any
result.maker_quote.last_update_timestampintegerrequired
Last update timestamp in ms since Unix epoch
result.maker_quote.legs_hashstringrequired
Hash of the legs of the best quote to be signed by the taker.
result.maker_quote.liquidity_rolestringrequired
Liquidity role
enum makertaker
result.maker_quote.max_feestringrequired
Signed max fee
result.maker_quote.mmpbooleanrequired
Whether the quote is tagged for market maker protections (default false)
result.maker_quote.nonceintegerrequired
Nonce
result.maker_quote.quote_idstringrequired
Quote ID
result.maker_quote.rfq_idstringrequired
RFQ ID
result.maker_quote.signaturestringrequired
Ethereum signature of the quote
result.maker_quote.signature_expiry_secintegerrequired
Unix timestamp in seconds
result.maker_quote.signerstringrequired
Owner wallet address or registered session key that signed the quote
result.maker_quote.statusstringrequired
Status
enum openfilledcancelledexpired
result.maker_quote.subaccount_idintegerrequired
Subaccount ID
result.maker_quote.tx_hashstring or nullrequired
Blockchain transaction hash (only for executed quotes)
result.maker_quote.tx_statusstring or nullrequired
Blockchain transaction status (only for executed quotes)
enum requestedpendingsettledrevertedignoredtimed_out
result.maker_quote.legsarray of objectsrequired
Quote legs
result.maker_quote.legs[].amountstringrequired
Amount in units of the base
result.maker_quote.legs[].directionstringrequired
Leg direction
enum buysell
result.maker_quote.legs[].instrument_namestringrequired
Instrument name
result.maker_quote.legs[].pricestringrequired
Leg price
result.taker_quoteobjectrequired
Created taker-side quote object
result.taker_quote.cancel_reasonstringrequired
Cancel reason, if any
enum user_requestinsufficient_marginsigned_max_fee_too_lowmmp_triggercancel_on_disconnectsession_key_deregisteredsubaccount_withdrawnrfq_no_longer_opencompliance
result.taker_quote.creation_timestampintegerrequired
Creation timestamp in ms since Unix epoch
result.taker_quote.directionstringrequired
Quote direction
enum buysell
result.taker_quote.extra_feestringrequired
Extra fee in USDC added by the referring client (included in quote fee)
result.taker_quote.feestringrequired
Fee paid for this quote (if executed)
result.taker_quote.fill_pctstringrequired
Percentage of the RFQ that this quote would fill, from 0 to 1.
result.taker_quote.is_transferbooleanrequired
Whether the order was generated through private/transfer_position
result.taker_quote.labelstringrequired
User-defined label, if any
result.taker_quote.last_update_timestampintegerrequired
Last update timestamp in ms since Unix epoch
result.taker_quote.legs_hashstringrequired
Hash of the legs of the best quote to be signed by the taker.
result.taker_quote.liquidity_rolestringrequired
Liquidity role
enum makertaker
result.taker_quote.max_feestringrequired
Signed max fee
result.taker_quote.mmpbooleanrequired
Whether the quote is tagged for market maker protections (default false)
result.taker_quote.nonceintegerrequired
Nonce
result.taker_quote.quote_idstringrequired
Quote ID
result.taker_quote.rfq_idstringrequired
RFQ ID
result.taker_quote.signaturestringrequired
Ethereum signature of the quote
result.taker_quote.signature_expiry_secintegerrequired
Unix timestamp in seconds
result.taker_quote.signerstringrequired
Owner wallet address or registered session key that signed the quote
result.taker_quote.statusstringrequired
Status
enum openfilledcancelledexpired
result.taker_quote.subaccount_idintegerrequired
Subaccount ID
result.taker_quote.tx_hashstring or nullrequired
Blockchain transaction hash (only for executed quotes)
result.taker_quote.tx_statusstring or nullrequired
Blockchain transaction status (only for executed quotes)
enum requestedpendingsettledrevertedignoredtimed_out
result.taker_quote.legsarray of objectsrequired
Quote legs
result.taker_quote.legs[].amountstringrequired
Amount in units of the base
result.taker_quote.legs[].directionstringrequired
Leg direction
enum buysell
result.taker_quote.legs[].instrument_namestringrequired
Instrument name
result.taker_quote.legs[].pricestringrequired
Leg price

Example

{request_example_shell}
{request_example_javascript}
{request_example_python}

The above command returns JSON structured like this:

{response_example_json}