To interact with the Cede SDK, you need to create an instance of the SDK and register at least one exchange instance. Refer to the General info section for details.
Most of the methods in the trade module follow the sequence of a typical trading flow. These methods allow you to retrieve market pairs, obtain the best bid and ask rates, determine minimum amounts, prepare orders, and create, retrieve, update, or cancel orders.
Get market pairs
Fetch all available market pairs. You can use this method to get the list of all available pairs on an exchange and to get the minimum base and quote amounts.
method: getMarketPairs
params:
exchangeInstanceId
-string
, optional
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.opts.forceReload
-boolean | undefined
, optional
All market pairs are typically loaded only once by the SDK. Set totrue
to force an update of the market list.opts.requestPriority
-1 | 2 | 3
, optional
The request priority.
Default:2
(medium).
response structure: Promise<MarketPair[]>
, see MarketPair for details.
const marketPairs = await cedeSDK.api.getMarketPairs({ exchangeInstanceId, auth });
Get bid and ask rates
Fetch the best bid and ask rates for a market pair. You can use this method to get the current market rate to estimate the received amount. In the case of a buy order, use the ask rate; in the case of a sell order, use the bid rate.
method: getMarketRate
params:
exchangeInstanceId
-string
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.pairSymbol
-string
The pair symbol in the format of base/quote. For example, BTC/USDC.
response structure:
bid
-string
The best bid rate (the highest price a buyer is willing to pay).ask
-string
The best ask rate (the lowest price a seller is willing to accept).
const order = await cedeSDK.api.getMarketRate({
exchangeInstanceId,
auth,
pairSymbol: "ETH/USDT",
});
Get minimum amounts
Before submitting an order, you will need to retrieve the minimum amounts for the base and quote tokens, as well as the price. To do this, use:
method: getMinAmounts
params:
exchangeInstanceId
-string
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.pairSymbol
-string
The pair symbol in the format of base/quote. For example, BTC/USDC.orderSide
-"buy" | "sell"
The order side.price
-string
The price in quote currency. For a market order, use the current market rate value from thegetMarketRate
method.
response structure:
minBaseAmount
-string
The minimum base amount (in base currency).minQuoteAmount
-string
The minimum quote amount (in quote currency).minPrice
-string
The minimum price.
const minAmounts = await cedeSDK.api.getMinAmounts({
exchangeInstanceId,
auth,
pairSymbol: "ETH/USDT",
orderSide: "buy",
price: "3103.7"
});
Prepare order
Use this method to calculate the trade fee for a market order and provides the createOrderRequest
object needed to
create the order. Some exchanges include trading fees within the order amount, while others append the fee separately.
This method automatically adjusts the traded amount to account for the fee structure, ensuring sufficient funds are
available.
method: prepareOrder
params:
exchangeInstanceId
-string
, optional
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.pairSymbol
-string
The pair symbol in the format of base/quote. For example, BTC/USDC.orderType
-"market" | "limit"
The order type.orderSide
-"buy" | "sell"
The order side.amount
-string
The amount in base currency.price
-string
The price in quote currency. For a market order, use the current market rate value from thegetMarketRate
method.
response structure:
estimatedAmount
-string
The estimated amount after the fee.estimatedFee
-Fee
The estimated fee, see Fee for details.createOrderRequest
-CreateOrderRequest
The create order request object that you should pass to thecreateOrder
function's parameters, see CreateOrderRequest for details.
const preparedOrderData = await cedeSDK.api.prepareOrder({
exchangeInstanceId,
auth,
pairSymbol: "ETH/USDT",
orderType: OrderType.MARKET,
orderSide: "buy",
price: "3103.7",
amount: "0.1",
});
Create order
To create a market or a limit order, use:
method: createOrder
params: The method accepts the auth
object (See authentication section for details)
along with CreateOrderParams
(see CreateOrderParams for details). You should pass
the createOrderRequest
object obtained from the prepareOrder
method as part of the CreateOrderParams
.
You can also pass a clientOrderId
to the request to track the order. Currently available only for Coinbase. response
structure: Promise<Order>
, see Order for details.
The order ID corresponds to the order ID returned by the exchange.
const order = await cedeSDK.api.createOrder(createOrderRequest); // createOrderRequest is the object returned by the prepareOrder method
Get order
To get an order, use:
method: getOrder
params:
exchangeInstanceId
-string
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.orderId
-string
The order ID returned by the exchange.pairSymbol
-string
The pair symbol in the format of base/quote. For example, BTC/USDC.
response structure: Promise<Order>
, see Order for details.
const order = await cedeSDK.api.getOrder({
exchangeInstanceId,
auth,
pairSymbol: "ETH/USDT",
orderId: "461b392b-e786-4f86-ade2-b918db8aa9ff"
});
Update order
To update an order, use:
method: updateOrder
params:
exchangeInstanceId
-string
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.orderId
-string
The order ID returned by the exchange.pairSymbol
-string
The pair symbol in the format of base/quote. For example, BTC/USDC.orderSide
-"buy" | "sell"
, optional
The order side.orderType
-"market" | "limit"
, optional
The order type.price
-string
, optional
The price in quote currency.amount
-string
, optional
The amount in base currency.
response structure: Promise<Order>
, see Order for details.
Be careful: the order ID might change after the update. If the exchange doesn't support updating orders, a new order will be created and the old one will be canceled.
const order = await cedeSDK.api.updateOrder({
exchangeInstanceId,
auth,
pairSymbol: "ETH/USDT",
orderId: "ce6a3ae3-0708-4d3a-831a-c88d78eb44d5",
amount: "0.0002"
});
Cancel order
To cancel an order, use:
method: cancelOrder
params:
exchangeInstanceId
-string
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.orderId
-string
The order ID returned by the exchange.pairSymbol
-string
The pair symbol in the format of base/quote. For example, BTC/USDC. response structure:Promise<"canceled" | "already_filled">
const order = await cedeSDK.api.cancelOrder({
exchangeInstanceId,
auth,
orderId: "13960869081",
pairSymbol: "ETH/USDT"
});
Get open orders
To get open orders, use:
method: getOpenOrders
params:
exchangeInstanceId
-string
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.pairSymbol
-string
The pair symbol in the format of base/quote. For example, BTC/USDC.since
-number
, optional
The timestamp to get orders since. The Cede SDK does not unify this parameter across exchanges; please refer to the specific exchange's API documentation for details.limit
-number
, optional
The maximum number of orders to return. The Cede SDK does not unify this parameter across exchanges; please refer to the specific exchange's API documentation for details.
response structure: Promise<Order[]>
, see Order for details.
const orders = await cedeSDK.api.getOpenOrders({
exchangeInstanceId,
auth,
pairSymbol: "ETH/USDT",
});
Get Open Future Positions
To get open future positions, use:
method: getOpenFuturePositions
params:
exchangeInstanceId
-string
The exchange instance ID.auth
- The authentication object for the exchange. See authentication section for details.
response structure: Promise<FuturePosition[]>
, see FuturePosition for details.
const positions = await cedeSDK.api.getOpenFuturePositions({ exchangeInstanceId, auth });