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/signupCreate a new user account.
Request Body:
email(string, required): Valid email addresspassword(string, required): User password
POST /users/signinAuthenticate a user and receive an access token.
Request Body:
email(string, required): User's email addresspassword(string, required): User's password
POST /users/setDCAinRequires 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/setDCAoutRequires authentication.
Configure DCA output settings.
Request Body:
outToken(string, required): Output token addressoutChain(string, required): Output blockchain's chainId
GET /walletsRequires 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/:idRetrieve details for a specific wallet.
Path Parameters:
id(string, required): Wallet identifier
POST /walletsRequires authentication.
Request Body:
blockchain(string, required): Target blockchain for the new wallet
POST /wallets/setRequires authentication.
Request Body:
name(string, required): Name for the wallet set
GET /wallets/:id/balancesPath 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 /transactionsRequires 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/:idRequires authentication.
Path Parameters:
id(string, required): Transaction identifier
Query Parameters:
txType(string, optional): Filter by transaction type
POST /transactions/transferRequires 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/estimateFeeRequires 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/contractRequires 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/estimateFeeRequires authentication.
Request Body:
contractAddress(string, required): Contract addressabiFunctionSignature(string, required): Function signatureabiParameters(array, optional): Function parameterswalletId(string, required): Wallet identifier
POST /transactions/validateAddressRequest Body:
address(string, required): Address to validateblockchain(string, required): Blockchain network
GET /tokens/:idRetrieve details for a specific token.
Path Parameters:
id(string, required): Token identifier
POST /faucet/dripsRequest 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.