Withdraw Colleteral
Rate limits
With spot leverage: 60 withdrawals/min or 10 withdrawals every 10 seconds per wallet. (weight = 10)
Without spot leverage: 30 withdrawals/min or 5 withdrawals every 10 seconds per wallet. (weight=20)
Request
Request Parameters
tx
object
Yes
Withdraw collateral transaction object. See Signing section for details on the transaction fields.
tx.sender
string
Yes
Hex string representing the subaccount’s 32 bytes (address + subaccount name) of the tx sender.
tx.productId
number
Yes
A spot product ID to withdraw from.
tx.amount
string
Yes
The amount of the asset to withdraw, denominated in the base ERC20 token of the specified product e.g: USDC (product=0) has 6 decimals whereas wETH (product=3) has 18. See Signing section for more details.
signature
string
Yes
Hex string representing hash of the signed transaction. See Signing section for more details.
spot_leverage
boolean
No
Indicates whether leverage should be used; when set to false
, the withdrawal fails if the transaction causes a borrow on the subaccount. Defaults to true
.
Signing
See more details and examples in our signing page.
The solidity typed data struct that needs to be signed is:
struct WithdrawCollateral {
bytes32 sender;
uint32 productId;
uint128 amount;
uint64 nonce;
}
sender
: a bytes32
sent as a hex string; includes the address and the subaccount identifier.
productId
: a uint32
that specifies the product you’d like to withdraw collateral from; must be for a spot product.
amount
: the amount of asset to withdraw, sent as a string. Note that this is different from the amounts provided in transactions that aren’t depositCollateral
. This is the raw amount of the ERC20 token you want to receive, i.e. if USDC has 6 decimals and you want to withdraw 1 USDC, specify 1e6; if wETH has 18 decimals and you want to withdraw 1 wETH, specify 1e18. Use all products query to view the token address of the corresponding product which can be used to determine the correct decimals to use.
nonce
: the tx_nonce
. This is an incrementing nonce, can be obtained using the Nonces query.
Response
Success
{
"status": "success",
"signature": {signature},
"request_type": "execute_withdraw_collateral"
}
Failure
{
"status": "failure",
"signature": {signature},
"error": "{error_msg}",
"error_code": {error_code},
"request_type": "execute_withdraw_collateral"
}
Last updated