placeAdvanceEarnOrder
Place a Dual Assets staking order for SmartLeverage, DoubleWin, or DiscountBuy products. Supports stake and redeem order types with asynchronous processing.
Instructions
Place a Dual Assets staking order. Requires Earn permission on the API key.
Rate Limit: 5 req/s (UID)
Notes:
The order is processed asynchronously. A successful response means the order has been accepted, not settled. Use Get Order to track the order status (
Pending→Success).The
selectPriceandapyE8must match a valid quote from Get Product Extra Info or the WebSocket feed. Stale quotes will be rejected.orderLinkIdis used for idempotency. EachorderLinkIdis permanently recorded per product type — reusing the same value for the samecategoryreturns an error (orderLinkIdalready exists). Max length by category:DualAssetsandSmartLeveragemax 36 characters;DoubleWinmax 64 characters;DiscountBuymax 40 characters. Allowed characters:a-z,A-Z,0-9,-,_.
SmartLeverage additional notes:
Supports two order types:
Stake(open position) andRedeem(close position).For Stake: pass
smartLeverageStakeExtra.initialPriceis the current market price you see when placing the order; the server validates the actual price is within ±5% ofinitialPrice(slippage protection, error180030if exceeded).breakevenPricemust come from Get Product Extra Info or the WebSocket — do not calculate it yourself.For Redeem: must first call Get Redeem Estimation to cache the estimate, then pass
smartLeverageRedeemExtrawith theestRedeemAmountfrom the estimation. Redemption is not allowed within 60 minutes before settlement.
DoubleWin additional notes:
Supports two order types:
Stake(subscribe) andRedeem(early redemption).For Stake (fixed-range products,
isRfqProduct=false): passdoubleWinStakeExtrawithleverageandinitialPrice. Theleveragemust not exceed the value from Get Product Extra Info or WebSocket. No need to passlowerPrice/upperPrice.For Stake (RFQ products,
isRfqProduct=true): additionally passlowerPriceandupperPrice(must be multiples ofpriceTickSize). Call Get Double Win Leverage first to obtain leverage and expireTime. The order must be placed beforeexpireTime.For Redeem: must first call Get Redeem Estimation to get estimated amount, then pass
doubleWinRedeemExtrawithpositionId,estRedeemAmount, and optionalisSlippageProtected. Redemption is not allowed within 30 minutes before settlement.
DiscountBuy additional notes:
Only supports order type
Stake(purchase). Redemption before settlement is not supported.Must pass
discountBuyExtrawithinitialPrice,purchasePrice,knockoutPrice,knockoutCouponE8,instUid, andsettleType— all values must come from Get Product Extra Info.initialPriceis the spot price at order time (max 8 decimal places).knockoutPricemust be greater thanpurchasePrice.knockoutCouponE8precision: actual coupon =knockoutCouponE8 / 10^8, max 4 decimal places on actual coupon.instUididentifies the market maker providing this quote.settleTypecontrols settlement when the option is exercised (settlement price < purchasePrice):Base= receive underlying asset;Quote= receive USDT. If knocked out (settlement price ≥ knockoutPrice), user always receives USDT principal + coupon interest, andsettleTypeis ignored.orderLinkIdmax length is 40 characters forDiscountBuy. Once used, the sameorderLinkIdcannot be reused for the same product category — resubmission returns an error.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | ||
| productId | Yes | ||
| orderType | Yes | ||
| amount | Yes | ||
| accountType | Yes | ||
| coin | Yes | ||
| orderLinkId | Yes | ||
| dualAssetsExtra | No | ||
| interestCard | No | ||
| smartLeverageStakeExtra | No | ||
| smartLeverageRedeemExtra | No | ||
| doubleWinStakeExtra | No | ||
| doubleWinRedeemExtra | No | ||
| discountBuyExtra | No |