Guide
DCA API Documentation
APIOpenOcean DCA API Integration Guide
OpenOcean provides an API interface for DCA (Dollar-Cost Averaging) trading, enabling developers to implement automated swaps. This guide will introduce how to use this feature's API.
DCA Overview
The DCA feature allows users to automatically invest fixed amounts at regular intervals on the OpenOcean.
DCA Trading in 3 Steps
Create DCA Order
Cancel DCA Order (Optional)
Query User Orders
1. Create DCA Order
Set up your automatic investment plan by choosing how much and how often you want to invest.
Example request:
import axios from 'axios';
const response = await axios({
url: 'https://open-api.openocean.finance/v1/8453/dca/swap',
method: 'POST',
data: {
"makerAmount": "20000000", // total amount with decimals
"takerAmount": "19983700", // optional, with decimals
"signature": "0x37e6...", // user sign messagae, get from the frontend sdk
"orderHash": "0x8e89...", //order hash, get from the frontend sdk
"orderMaker": "0xB3cb...",// wallet address
"remainingMakerAmount": "20000000", // remaing amount
"data": {
"salt": "", // get from the frontend sdk
"makerAsset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", // token address
"takerAsset": "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA", // token address
"maker": "0xB3cb...", // wallet address
"receiver": "0x0000000000000000000000000000000000000000", // default value
"allowedSender": "0x0000000000000000000000000000000000000000", // default value
"makingAmount": "20000000", // with decimals
"takingAmount": "19983700", // with decimals
"makerAssetData": "0x", // default value, get from the frontend sdk
"takerAssetData": "0x", // default value, get from the frontend sdk
"getMakerAmount": "0x", // default value
"getTakerAmount": "0x", // default value
"predicate": "0x", // default value, get from the frontend sdk
"permit": "0x", // default value, get from the frontend sdk
"interaction": "0x" // get from the frontend sdk
},
"isActive": true,
"chainId": 8453, // chainId
"expireTime": 600, // expire time s, time * times
"amountRate": "1.000816", // makerAmount/takerAmount
"interaction": "0x", // default value
"time": 300, // interval time, s
"times": 2, // frequency
"minPrice": "0.9", // optional, price range
"maxPrice": "1.1" // optional, price range
"version": "v2", // default as v1. Please use v2 for the first time integration.
"referrer": "0xxxxxxxxxxxxxxxxxxx" // optional. It's the EOA address to set up fees and track data from your end.
"referrerFee": "1" // optional. e.g.'1'= 1%. Enter the num to charge the platform fee on your end.
}
});
Example response:
{
code: 200,
}
2. Cancel DCA Order
Cancel your automatic trading plan at any time.
Example request:
import axios from 'axios';
const response = await axios({
url: 'https://open-api.openocean.finance/v1/8453/dca/cancel',
method: 'POST',
data: {
orderHash: "0x1e48.."
}
});
Example response:
{
code: 200,
}
3. Query User Orders
Check your active and completed automatic trades.
Example request:
import axios from 'axios';
const response = await axios({
url: 'https://open-api.openocean.finance/v1/8453/dca/address/0xb3cbeff0336baa4863cb51238bd6c35bdaab3d84',
method: 'GET',
params: {
page: 1,
limit: 10,
statuses: [1,2,5],
sortBy: "createDateTime",
}
});
Example response:
{
"code": 200,
"data": [
{
"makerAmount": "8152924",
"takerAmount": "8152800",
"orderHash": "0x.......",
"createDateTime": "2025-01-24T06:46:02.000Z",
"orderMaker": "0x......",
"remainingMakerAmount": "8152924",
"makerBalance": null,
"makerAllowance": null,
"expireTime": "2025-01-24T06:48:02.000Z",
"statuses": 4,
"time": 60,
"times": 1,
"have_filled": 1,
"minPrice": null,
"maxPrice": null,
"data": {
"makerAsset": "0x.......",
"makerAssetSymbol": "USDC",
"makerAssetDecimals": 6,
"makerAssetIcon": "https://s3.openocean.finance/token_logos/logos/1697507306331_35406629884386076.png",
"takerAsset": "0x.......",
"takerAssetSymbol": "AXLUSDC",
"takerAssetDecimals": 6,
"takerAssetIcon": "https://s3.openocean.finance/token_logos/logos/1691737494552_8963896068270643.png",
"getMakerAmount": "0x.....",
"getTakerAmount": "0x......",
"makerAssetData": "0x",
"takerAssetData": "0x",
"salt": "666361339303",
"permit": "0x",
"predicate": "0x.......",
"interaction": "0x",
"makingAmount": "8152924",
"takingAmount": "8152800",
"maker": "0x......",
"receiver": "0x....",
"allowedSender": "0x....."
},
"makerRate": null,
"takerRate": null
}
]
}
Last updated