Place Trade Orders
Overview
Once you deposit assets into your Go Account, you can place the following trade orders:
- Market - An immediate order at the current market value.
- Limit - A pending order at a value you specify. The order executes only if the market value reaches the specified price during the specified duration.
- Time-weighted average price (TWAP) - Regular - An order that executes over a specified period of time for the average price. You can set bounds to control how strictly the order strategy stays in line with the target fill progression:
- Narrow - within 3% or 3 minutes
- Standard - within 5% or 5 minutes
- Wide - within 7.5% or 10 minutes
- Time-weighted average price (TWAP) - Time Slice - An order strategy that breaks your order into fixed slices that are executed for a duration you choose. Orders execute one at a time at equal intervals for the duration of the order.
- Steady Pace - An order strategy that breaks your order into fixed slices that are executed one at a time at user defined intervals, with optional variance parameters for order size.
To complete a trade order, you must build an unsigned trade payload. This payload authorizes moving the assets from your Go Account to the counterparty's Go Account. BitGo reserves the assets until the order completes. Trading transactions abide by your enterprise and wallet policies, and must receive all required signatures and approvals.
Prerequisites
- Get Started
- Deposit Assets
- To enable trading from your Go Account in the production environment, contact BitGo at [email protected].
1. List Trading Pairs (Optional)
View the latest trading pairs available for your account.
Endpoint: List Products
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export ACCOUNT_ID="<YOUR_GO_ACCOUNT_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X GET \
"https://app.bitgo-test.com/api/prime/trading/v1/accounts/$ACCOUNT_ID/products" \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN"
Step Result
Note: The ticker symbol for testnet USD includes an asterisk,
*
. However, in mainnet, the ticker symbol for USD doesn't.
{
"data": [
{
"id": "0d75f716-680b-11eb-a7a5-0a34d7f8426c",
"name": "TXRP-TUSD*",
"baseCurrencyId": "8a93fece-6878-4b27-88eb-a83a40af0318",
"baseCurrency": "TXRP",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 4,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "016a8ac2-b75a-11ed-84ea-0a52a0835891",
"name": "TDOGE-TUSD*",
"baseCurrencyId": "2f124c6c-d79c-4dc0-b57d-b8c60b408a37",
"baseCurrency": "TDOGE",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.0001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "b5a2b42c-852b-11ec-bc16-0a34d7f8426c",
"name": "TEOS-TUSD*",
"baseCurrencyId": "ab1c164a-52c9-4740-8935-d7c5a52fb914",
"baseCurrency": "TEOS",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.0001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 4,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "debc9d96-5f23-11ed-a495-0a52a0835891",
"name": "GTETH-TFIATEUR",
"baseCurrencyId": "35f7d962-315d-4d23-93fe-e17a195000b3",
"baseCurrency": "GTETH",
"quoteCurrencyId": "7caaa4ab-a044-46d3-af0f-e32599ed92d6",
"quoteCurrency": "TFIATEUR",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": false
},
{
"id": "0d75f6c6-680b-11eb-a7a3-0a34d7f8426c",
"name": "TETH-TUSD*",
"baseCurrencyId": "5938716a-e450-4752-a0b1-b8f1269add47",
"baseCurrency": "TETH",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": true,
"isMarginTradeSupported": true
},
{
"id": "debc9f58-5f23-11ed-a497-0a52a0835891",
"name": "GTETH-TUSD*",
"baseCurrencyId": "35f7d962-315d-4d23-93fe-e17a195000b3",
"baseCurrency": "GTETH",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "b5a2b4cc-852b-11ec-bc18-0a34d7f8426c",
"name": "THBAR-TUSD*",
"baseCurrencyId": "8bf5baea-5eca-4da7-a1af-ce4777671cab",
"baseCurrency": "THBAR",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 4,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "72dbae78-6a0e-11ed-b709-0a52a0835891",
"name": "TALGO-TUSD*",
"baseCurrencyId": "ccb05b9c-e9d3-4fc3-8fe4-b442a5b960f9",
"baseCurrency": "TALGO",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "0d75f66c-680b-11eb-a7a1-0a34d7f8426c",
"name": "TBCH-TUSD*",
"baseCurrencyId": "e1159b7c-65be-481b-822d-9689fa8ab73b",
"baseCurrency": "TBCH",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "b5a2b3dc-852b-11ec-bc15-0a34d7f8426c",
"name": "TDASH-TUSD*",
"baseCurrencyId": "bda7ada0-a86d-483c-96a4-de231dfc42e5",
"baseCurrency": "TDASH",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "2f0c6298-765f-11ed-bef4-0a52a0835891",
"name": "TDOT-TUSD*",
"baseCurrencyId": "79c0df2f-1b83-4f47-a9ec-5f22c5ecceeb",
"baseCurrency": "TDOT",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "0f90205e-a77a-11eb-90ca-0a34d7f8426c",
"name": "TUSDC-TUSD*",
"baseCurrencyId": "345a00eb-3f02-404d-b0ee-290dd10030e3",
"baseCurrency": "TUSDC",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 4,
"isTradeDisabled": true,
"isMarginTradeSupported": true
},
{
"id": "b5a2b602-852b-11ec-bc1c-0a34d7f8426c",
"name": "TZEC-TUSD*",
"baseCurrencyId": "38ec5645-1905-4e1a-acad-b383ebdfadad",
"baseCurrency": "TZEC",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 3,
"isTradeDisabled": true,
"isMarginTradeSupported": true
},
{
"id": "c85dc208-4f0c-11ee-a308-0a52a0835891",
"name": "TADA-TUSD*",
"baseCurrencyId": "e16f0383-b0de-4274-8760-093a755e8846",
"baseCurrency": "TADA",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "72dbaedc-6a0e-11ed-b70a-0a52a0835891",
"name": "TAVAXC-TUSD*",
"baseCurrencyId": "f4999e81-3cc1-46d1-9df0-2c018233c3c0",
"baseCurrency": "TAVAXC",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.0001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "0d75f694-680b-11eb-a7a2-0a34d7f8426c",
"name": "TBTC-TUSD*",
"baseCurrencyId": "53d027b3-6725-4b21-8032-5172866460fb",
"baseCurrency": "TBTC",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "535eae0a-2a0e-11ed-ab1a-0af39be72175",
"name": "TLTC-TBTC",
"baseCurrencyId": "76c9df40-056c-4a55-8a9d-30997c056785",
"baseCurrency": "TLTC",
"quoteCurrencyId": "53d027b3-6725-4b21-8032-5172866460fb",
"quoteCurrency": "TBTC",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "0.0002",
"quoteIncrement": "0.00000001",
"quoteDisplayPrecision": 6,
"isTradeDisabled": false,
"isMarginTradeSupported": false
},
{
"id": "0d75f6ee-680b-11eb-a7a4-0a34d7f8426c",
"name": "TLTC-TUSD*",
"baseCurrencyId": "76c9df40-056c-4a55-8a9d-30997c056785",
"baseCurrency": "TLTC",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "ca921f98-5d48-11ee-929b-06bf213598a1",
"name": "TNEAR-TUSD*",
"baseCurrencyId": "c34aeb82-c069-4afc-ad35-bc1cab83b80c",
"baseCurrency": "TNEAR",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.0000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "262430aa-fbb5-11eb-9769-0a34d7f8426c",
"name": "TBCH-TBTC",
"baseCurrencyId": "e1159b7c-65be-481b-822d-9689fa8ab73b",
"baseCurrency": "TBCH",
"quoteCurrencyId": "53d027b3-6725-4b21-8032-5172866460fb",
"quoteCurrency": "TBTC",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "0.0002",
"quoteIncrement": "0.00000001",
"quoteDisplayPrecision": 6,
"isTradeDisabled": false,
"isMarginTradeSupported": false
},
{
"id": "45446dae-3491-11ed-8c5f-0af39be72175",
"name": "TBTC-TFIATEUR",
"baseCurrencyId": "53d027b3-6725-4b21-8032-5172866460fb",
"baseCurrency": "TBTC",
"quoteCurrencyId": "7caaa4ab-a044-46d3-af0f-e32599ed92d6",
"quoteCurrency": "TFIATEUR",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": false
},
{
"id": "535ead60-2a0e-11ed-ab17-0af39be72175",
"name": "TETH-TBTC",
"baseCurrencyId": "5938716a-e450-4752-a0b1-b8f1269add47",
"baseCurrency": "TETH",
"quoteCurrencyId": "53d027b3-6725-4b21-8032-5172866460fb",
"quoteCurrency": "TBTC",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "0.0002",
"quoteIncrement": "0.00000001",
"quoteDisplayPrecision": 5,
"isTradeDisabled": true,
"isMarginTradeSupported": false
},
{
"id": "debc9d0a-5f23-11ed-a493-0a52a0835891",
"name": "GTETH-TBTC",
"baseCurrencyId": "35f7d962-315d-4d23-93fe-e17a195000b3",
"baseCurrency": "GTETH",
"quoteCurrencyId": "53d027b3-6725-4b21-8032-5172866460fb",
"quoteCurrency": "TBTC",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "0.0002",
"quoteIncrement": "0.00000001",
"quoteDisplayPrecision": 5,
"isTradeDisabled": false,
"isMarginTradeSupported": false
},
{
"id": "45446eda-3491-11ed-8c64-0af39be72175",
"name": "TETH-TFIATEUR",
"baseCurrencyId": "5938716a-e450-4752-a0b1-b8f1269add47",
"baseCurrency": "TETH",
"quoteCurrencyId": "7caaa4ab-a044-46d3-af0f-e32599ed92d6",
"quoteCurrency": "TFIATEUR",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.00000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": true,
"isMarginTradeSupported": false
},
{
"id": "2f0c66e4-765f-11ed-beff-0a52a0835891",
"name": "TSOL-TUSD*",
"baseCurrencyId": "01866233-6b3c-41eb-bd32-1b6b4731d740",
"baseCurrency": "TSOL",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.0001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 2,
"isTradeDisabled": false,
"isMarginTradeSupported": true
},
{
"id": "81ad9676-9b35-11ec-b19f-0a34d7f8426c",
"name": "TXLM-TUSD*",
"baseCurrencyId": "07680903-d4d4-4cb2-b859-ef8fb7d93ba6",
"baseCurrency": "TXLM",
"quoteCurrencyId": "e708df52-ba80-42cd-868c-5dab42fe6bac",
"quoteCurrency": "TUSD*",
"baseMinSize": "",
"baseMaxSize": "",
"baseIncrement": "0.0000001",
"quoteMinSize": "10",
"quoteIncrement": "0.01",
"quoteDisplayPrecision": 5,
"isTradeDisabled": true,
"isMarginTradeSupported": true
}
]
}
2. Place Trade Order
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export ACCOUNT_ID="<YOUR_GO_ACCOUNT_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X POST \
"https://$BITGO_EXPRESS_HOST/api/prime/trading/v1/accounts/$ACCOUNT_ID/orders" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"clientOrderId": "myorder1",
"type": "market",
"product": "TBTC-TUSD*",
"side": "buy",
"quantity": "10000",
"quantityCurrency": "TUSD*"
}'
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export ACCOUNT_ID="<YOUR_GO_ACCOUNT_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X POST \
"https://$BITGO_EXPRESS_HOST/api/prime/trading/v1/accounts/$ACCOUNT_ID/orders" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"clientOrderId": "myorder1",
"type": "limit",
"product": "TBTC-TUSD*",
"side": "buy",
"quantity": "1",
"quantityCurrency": "TBTC",
"limitPrice": "10005",
"duration": 60
}'
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export ACCOUNT_ID="<YOUR_GO_ACCOUNT_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X POST \
"https://$BITGO_EXPRESS_HOST/api/prime/trading/v1/accounts/$ACCOUNT_ID/orders" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"clientOrderId": "myorder1",
"type": "twap",
"product": "TBTC-TUSD*",
"side": "buy",
"quantity": "100000",
"quantityCurrency": "TUSD*",
"duration": 60,
}'
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X POST \
"https://$BITGO_EXPRESS_HOST/api/prime/trading/v1/accounts/$ACCOUNT_ID/orders" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"clientOrderId": "myorder1",
"type": "twap",
"product": "TBTC-TUSD*",
"side": "buy",
"quantity": "100000",
"quantityCurrency": "TUSD*",
"duration": 60,
"isTimeSliced": true,
"interval": 5
}'
Step Result
{
"id": "67fd640c-cb6c-4218-80ae-49e79ec15646",
"accountId": "60e740e7898f7d00064d43769a73dc48",
"clientOrderId": "myorderid1",
"time": "2021-08-05T18:05:23.431Z",
"creationDate": "2021-08-05T18:05:22.286Z",
"scheduledDate": "2021-08-05T18:05:00.000Z",
"lastFillDate": "2021-08-05T18:05:23.302Z",
"completionDate": "2021-08-05T18:05:23.431Z",
"settleDate": "2021-08-05T20:00:00.000Z",
"fundingType": "funded",
"type": "market",
"status": "completed",
"product": "TBTC-TUSD*",
"side": "buy",
"quantity": "1000",
"quantityCurrency": "TUSD*",
"filledQuantity": "0.02457152",
"averagePrice": "40697.32"
}
Next
You can view order details using either the Get Order endpoint or by subscribing to the Trade WebSocket:
Note: You can cancel an open trade order, but you can't update it. If you want to edit an open trade order, cancel the order and place a new one.
See Also
Updated 22 days ago