This document provides detailed information about the available DCAwesome API endpoints and their usage for Circle SDK based Developer Controlled Wallets.
Some endpoints require authentication. These endpoints are prefixed with auth
in their router configurations. Include your authentication token in the request header.
POST /users/signup
Create a new user account.
Request Body:
email
(string, required): Valid email addresspassword
(string, required): User password
POST /users/signin
Authenticate a user and receive an access token.
Request Body:
email
(string, required): User's email addresspassword
(string, required): User's password
POST /users/setDCAin
Requires authentication.
Configure DCA (Dollar Cost Average) input settings.
Request Body:
inTokens
(array of strings, required): Array of input token addresses for DCAininMaxTokenCap
(array of numbers, required): Array of maximum token caps which can be used by the strategy.triggerToken
(string, required): Token identifier for triggering DCA Strategy.
POST /users/setDCAout
Requires authentication.
Configure DCA output settings.
Request Body:
outToken
(string, required): Output token addressoutChain
(string, required): Output blockchain's chainId
GET /wallets
Requires authentication.
Query Parameters:
address
(string, optional): Filter by wallet addressblockchain
(string, optional): Filter by blockchainwalletSetId
(string, optional): Filter by wallet set IDrefId
(string, optional): Filter by reference IDfrom
(date, optional): Start date for filteringto
(date, optional): End date for filteringpageBefore
(string, optional): Pagination cursor for previous pagepageAfter
(string, optional): Pagination cursor for next pagepageSize
(number, optional): Number of items per page
GET /wallets/:id
Retrieve details for a specific wallet.
Path Parameters:
id
(string, required): Wallet identifier
POST /wallets
Requires authentication.
Request Body:
blockchain
(string, required): Target blockchain for the new wallet
POST /wallets/set
Requires authentication.
Request Body:
name
(string, required): Name for the wallet set
GET /wallets/:id/balances
Path Parameters:
id
(string, required): Wallet identifier
Query Parameters:
includeAll
(boolean, optional): Include all tokensname
(string, optional): Filter by token nametokenAddresses
(array of strings, optional): Filter by token addressesstandard
(string, optional): Filter by token standardfrom
(date, optional): Start dateto
(date, optional): End datepageBefore
(string, optional): Pagination cursor for previous pagepageAfter
(string, optional): Pagination cursor for next pagepageSize
(number, optional): Number of items per page
GET /transactions
Requires authentication.
Query Parameters:
blockchain
(string, optional): Filter by blockchaincustodyType
(string, optional): Filter by custody typedestinationAddress
(string, optional): Filter by destination addressincludeAll
(boolean, optional): Include all transactionsoperation
(string, optional): Filter by operation typestate
(string, optional): Filter by transaction statetxHash
(string, optional): Filter by transaction hashtxType
(string, optional): Filter by transaction typewalletIds
(array of strings, optional): Filter by wallet IDsfrom
(date, optional): Start dateto
(date, optional): End datepageBefore
(string, optional): Pagination cursor for previous pagepageAfter
(string, optional): Pagination cursor for next pagepageSize
(number, optional): Number of items per page
GET /transactions/:id
Requires authentication.
Path Parameters:
id
(string, required): Transaction identifier
Query Parameters:
txType
(string, optional): Filter by transaction type
POST /transactions/transfer
Requires authentication.
Request Body:
idempotencyKey
(string, optional): UUID v4 for ensuring exactly-once executionamount
(string, required): Transfer amountdestinationAddress
(string, required): Destination addressfeeLevel
(string, optional): Fee level (LOW, MEDIUM, or HIGH)gasLimit
(string, optional): Gas limitgasPrice
(string, optional): Gas pricemaxFee
(string, optional): Maximum feepriorityFee
(string, optional): Priority feenftTokenIds
(array of strings, optional): NFT token IDs for transferrefId
(string, optional): Reference identifiertokenId
(string, required): Token identifierwalletId
(string, required): Source wallet identifier
POST /transactions/transfer/estimateFee
Requires authentication.
Request Body:
amount
(array of strings, required): Transfer amountsdestinationAddress
(string, required): Destination addressnftTokenIds
(array of strings, optional): NFT token IDssourceAddress
(string, optional): Source addresstokenId
(string, required): Token identifierwalletId
(string, optional): Wallet identifier
POST /transactions/contract
Requires authentication.
Request Body:
amount
(string, optional): Amount to sendcontractAddress
(string, required): Contract addressfeeLevel
(string, optional): Fee levelgasLimit
(string, optional): Gas limitgasPrice
(string, optional): Gas pricemaxFee
(string, optional): Maximum feepriorityFee
(string, optional): Priority feewalletId
(string, required): Wallet identifierabiFunctionSignature
(string, required): Function signatureabiParameters
(array, optional): Function parameters
POST /transactions/contract/estimateFee
Requires authentication.
Request Body:
contractAddress
(string, required): Contract addressabiFunctionSignature
(string, required): Function signatureabiParameters
(array, optional): Function parameterswalletId
(string, required): Wallet identifier
POST /transactions/validateAddress
Request Body:
address
(string, required): Address to validateblockchain
(string, required): Blockchain network
GET /tokens/:id
Retrieve details for a specific token.
Path Parameters:
id
(string, required): Token identifier
POST /faucet/drips
Request testnet tokens for testing purposes.
Request Body:
address
(string, required): Destination wallet addressblockchain
(string, required): Target blockchain network
All successful responses will return data in JSON format. For detailed response schemas, please refer to the Circle W3S API documentation at https://developers.circle.com/w3s/reference for most of the routes.
The API uses standard HTTP status codes and returns error messages in JSON format. All endpoints validate request parameters using Yup schemas and will return appropriate validation errors if the request does not meet the specified criteria.