Methods
(params: SimulateFeeParams) => Promise<SimulateFeeResponse>
Calculate exact fees for an order before placing it. Requires authentication.Parameters:
tradingPairId: string - Trading pair UUIDside: “BUY” | “SELL” - Order sideprice: string - Price per unitquantity: string - Quantity to tradeorderType: “LIMIT” | “MARKET” (optional) - Defaults to LIMIT behaviour if omitted. Pass"MARKET"to get a slippage-adjustedbuyOrderLockAmountslippageToleranceBps: number (optional, 0–1000) - Slippage tolerance in basis points. Only valid withorderType: "MARKET". Default:1000(10%), matching the protective price band
notional: string - Total order value (price × quantity)monacoTakerFee: string - Monaco protocol taker feemonacoTakerFeeBpsExact: string | null - Tier-resolved Monaco taker rate as a decimal bps string (e.g."6.5") — the exact rate the ledger charges this caller, equal tomonacoTakerFee / notional. Prefer this over the integer field belowmonacoMakerRebateBpsExact: string | null - Tier-resolved Monaco maker rebate as a decimal bps string (negative = rebate, e.g."-1") — the exact rate the ledger credits this callermonacoTakerFeeBps: number - Deprecated. Whole-bps taker rate; an integer cannot carry fractional tiered rates (e.g. 6.5), so this echoes the flat trading-pair column, not the tier-resolved rate. UsemonacoTakerFeeBpsExactorgetMyFeeTiermonacoMakerRebate: string - Monaco maker rebate (negative = rebate)monacoMakerRebateBps: number - Deprecated. Whole-bps maker rebate; same integer limitation as above. UsemonacoMakerRebateBpsExactorgetMyFeeTierapplicationTakerFee: string - Application taker feeapplicationTakerFeeBps: number - Application fee in basis pointsapplicationName: string | null - Application name (if applicable)totalTakerFees: string - Total fees for taker (monaco + application)takerTotalPayment: string - Total amount taker must paymakerTotalReceipt: string - Total amount maker receivesbuyOrderLockAmount: string | null - Amount to lock for BUY orders. For MARKET orders includes slippage buffermaxQuantity: string | null - Maximum quantity affordable at the given price, after fees. Use this for the 100% balance slidermaxQuantityRaw: string | null - Same value in raw (smallest unit) formatslippageToleranceBps: number | null - Slippage tolerance used in the calculation, echoed back.nullfor LIMIT orders
(params: GetMyFeeTierParams) => Promise<GetMyFeeTierResponse>
Look up your current fee tier, rolling 14-day volumes, and a pair’s six-row fee schedule. Requires authentication.Parameters:
tradingPairId: string - Trading pair UUID whose fee schedule to return
currentTierLevel: number - Resolved tier,1(lowest volume) through6(highest)weightedVolume14d: string - Weighted 14-day volume (perp + 2.5× spot) used to resolve the tierspotVolume14d: string - Rolling 14-day spot volumeperpVolume14d: string - Rolling 14-day perp volumevolumeToNextTier: string | null - Additional weighted volume needed to reach the next tier; omitted at tier 6nextTierLevel: number | null - Next tier level; omitted at tier 6feeSchedule: FeeTierScheduleRow[] - The pair’s six rows, ascending by tier. Each row:tierLevel(number),minVolumeThreshold(string),makerFeeBps(string — human bps, negative = rebate),takerFeeBps(string — human bps)
Example
Fee Breakdown
Monaco uses a maker-taker fee model:
Use
simulateFees before placing orders to show users exact costs upfront.
