💱 Algodex API
The following is the 1.0 backend API for Algodex. This is a DeFi service to allow users to trade assets on the Algorand network directly between each other, with wallets hosted elsewhere on MyAlgo Wallet.
The 2.0 backend is a major architectural refactoring and is currently under development.
Endpoints
Algodex Mainnet: https://app.algodex.com/[api here]
Algodex Testnet: https://testnet.algodex.com/[api here]
📝 API Documentation
Fetching a list of all orders for an ASA
Params
assetId: the asset ID to search orders for
getAssetInfo (optional): set to true to also return asset information
Example
https://testnet.algodex.com/algodex-backend/orders.php?assetId=15322902
Fetch Asset Orders
GET
https://testnet.algodex.com/algodex-backend/orders.php
Returns orders for an asset
Query Parameters
200: OK
Copy {
"sellASAOrdersInEscrow" :[
{
"assetLimitPriceInAlgos" : "9000.000000000000" ,
"asaPrice" : "9000.000000000000" ,
"assetLimitPriceD" : 9000 ,
"assetLimitPriceN" : 1 ,
"algoAmount" : 498000 ,
"asaAmount" : 987 ,
"assetId" : 22295876 ,
"appId" : 22045522 ,
"escrowAddress" : "ZJO7QGK3KASYG35D5N4CSX76OKPQLLTLJ6CZ6YTEG4GGT2OC235UJI3U6M" ,
"ownerAddress" : "ACWISBRHEYQKVILSCEDNWCNOSTMIOQIHV3KLPBXHDZAJHVZT7AYM6PE6ZE" ,
"version" : 6 ,
"minimumExecutionSizeInAlgo" : 0 ,
"round" : 20353010 ,
"unix_time" : 1647328756 ,
"formattedPrice" : "900.000000" ,
"formattedASAAmount" : "0.00987" ,
"decimals" : 5
} ,
// More...
] ,
"buyASAOrdersInEscrow" :[
{
"assetLimitPriceInAlgos" : "10.000000000000" ,
"asaPrice" : "10.000000000000" ,
"assetLimitPriceD" : 10 ,
"assetLimitPriceN" : 1 ,
"algoAmount" : 4530000 ,
"asaAmount" : 0 ,
"assetId" : 22295876 ,
"appId" : 22045503 ,
"escrowAddress" : "7ULXUOXU5XQ76G2QZL5ZGQZMCFJBBXU72ZCDIS5KCCDHAOLZDW4XS5HNBQ" ,
"ownerAddress" : "AK6WGVO34V2QPTXCJYNDZC32ZQQCZMTC3SRYPWQR4CCW266YX2CKL6H3W4" ,
"version" : 6 ,
"minimumExecutionSizeInAlgo" : 0 ,
"round" : 22651961 ,
"unix_time" : 1657060128 ,
"formattedPrice" : "1.000000" ,
"formattedASAAmount" : "4.53000" ,
"decimals" : 5
} ,
// More...
]
}
Fetching a list of orders for a wallet
Params
ownerAddr: the owner address to search orders for
getAssetInfo (optional): set to true to also return asset information
Example
https://testnet.algodex.com/algodex-backend/orders.php?ownerAddr=SPFRPFCZR4OSKKTCNGY5KOCS55RXWC6VJYU7SGQ4EUEVFIDUPAL4EKLJ3Q
Fetch Wallet Orders
GET
https://testnet.algodex.com/algodex-backend/orders.php
Returns orders for a wallet
Query Parameters
200: OK
Copy {
// Response
"sellASAOrdersInEscrow" :[] ,
"buyASAOrdersInEscrow" :[]
}
Fetching the trade history for an ASA
Params
assetId: the asset ID to search the trade history for
getAssetInfo (optional): set to true to also return asset information
Example
https://testnet.algodex.com/algodex-backend/trade_history.php?assetId=15322902
Fetch Asset TradeHistory
GET
https://testnet.algodex.com/algodex-backend/trade_history.php
Returns trade history for asset
Query Parameters
200: OK
Copy {
"transactions" :[
{
"PK_trade_history_id" : 666370 ,
"transaction_id" : null ,
"group_id" : "jBVPEG4TgT8yxfC24lIqX6uKuo1nXy9tTX3b\/zlp8jk=" ,
"unix_time" : 1657975266 ,
"block_round" : 22863925 ,
"application_id" : 22045503 ,
"asset_id" : 22295876 ,
"asaPrice" : "10.000000000000" ,
"algoAmount" : 2000 ,
"asaAmount" : 200 ,
"asaBuyerAddress" : "AK6WGVO34V2QPTXCJYNDZC32ZQQCZMTC3SRYPWQR4CCW266YX2CKL6H3W4" ,
"asaSellerAddress" : "WE3IEXZEVEM63WYRA352BKEYN3F5I3ITNCJMKGUUROCNA3G5LEGDGJJDMQ" ,
"tradeType" : "sellASA" ,
"formattedPrice" : "1.000000" ,
"formattedASAAmount" : "0.00200"
} ,
// More...
]
}
Fetching the trade history for a wallet
Params
ownerAddr: the owner address to search the trade history for
getAssetInfo (optional): set to true to also return asset information
Example
https://testnet.algodex.com/algodex-backend/trade_history.php?ownerAddr=SPFRPFCZR4OSKKTCNGY5KOCS55RXWC6VJYU7SGQ4EUEVFIDUPAL4EKLJ3Q
Fetch Wallet TradeHistory
GET
https://testnet.algodex.com/algodex-backend/trade_history.php
Query Parameters
200: OK
Copy // Example response
{
"allAssets" : [
{
"created-at-round" : 15917936 ,
"deleted" : false ,
"index" : 22060777 ,
"params" : {
"clawback" : "XTEI2ZFNQJVFNOKZIS5WN7OVOKCUKGVL5MEBYSIVUXI76NAPR4G3KPFOJI" ,
"creator" : "XTEI2ZFNQJVFNOKZIS5WN7OVOKCUKGVL5MEBYSIVUXI76NAPR4G3KPFOJI" ,
"decimals" : 2 ,
"default-frozen" : false ,
"freeze" : "XTEI2ZFNQJVFNOKZIS5WN7OVOKCUKGVL5MEBYSIVUXI76NAPR4G3KPFOJI" ,
"manager" : "XTEI2ZFNQJVFNOKZIS5WN7OVOKCUKGVL5MEBYSIVUXI76NAPR4G3KPFOJI" ,
"name" : "WaveCoin" ,
"name-b64" : "V2F2ZUNvaW4=" ,
"reserve" : "XTEI2ZFNQJVFNOKZIS5WN7OVOKCUKGVL5MEBYSIVUXI76NAPR4G3KPFOJI" ,
"total" : 20000000 ,
"unit-name" : "WAVE" ,
"unit-name-b64" : "V0FWRQ==" ,
"url" : "https:\/\/glasswave.co\/wavecoin" ,
"url-b64" : "aHR0cHM6Ly9nbGFzc3dhdmUuY28vd2F2ZWNvaW4="
}
}
] ,
"transactions" : [
{
"PK_trade_history_id" : 666444 ,
"transaction_id" : null ,
"group_id" : "B8kNQ9\/V\/GesMBDGLpfA69jOxZM2TBaC5B6VkFFcWT0=" ,
"unix_time" : 1658130896 ,
"block_round" : 22900760 ,
"application_id" : 22045503 ,
"asset_id" : 22060777 ,
"asaPrice" : "90000.000000000000" ,
"algoAmount" : 900000 ,
"asaAmount" : 10 ,
"asaBuyerAddress" : "ZXPEYJMWFLULILWJHWB3Y6DFI4ADE7XVMGARAH734ZJ5ECXAR4YVMRZ4EM" ,
"asaSellerAddress" : "TQS4D62BRXX6XQY72EESMUPYVNN45MP2UYHNXP7UTFKOMINDTJCC3N5XWU" ,
"tradeType" : "buyASA" ,
"formattedPrice" : "9.000000" ,
"formattedASAAmount" : "0.10"
} ,
]
}
Fetching all recently traded ASAs, their prices, and information
Params
None currently. This will eventually have different sort parameters.
Fetching chart info for an ASA
This currently returns the trades aggregated for the daily frequency. This will eventually different chart options
Params
assetId: the asset ID to get the chart information for chartTime: Time interval to pick from ['1m', '5m', '15m', '1h', '4h', '1d']
Example
https://testnet.algodex.com/algodex-backend/charts2.php?assetId=15322902&chartTime=15m
Fetch Asset Chart
GET
https://testnet.algodex.com/algodex-backend/charts2.php
Returns chart for an Asset
Query Parameters
200: OK
Copy {
// Response
"current_price" : "758.006622516556" ,
"previous_trade_price" : "758.006622516556" ,
"last_period_closing_price" : "758.006622516556" ,
"asset_info" :{
"asset" : {
"created-at-round" : 13596306 ,
"deleted" : false ,
"index" : 15322902 ,
"params" : {
"clawback" : "PBSSJ2W6FDXVRPT4L4FGHTX2IHY3VREI44SB7VJTVT75UT6ER3CTVD6B74" ,
"creator" : "PBSSJ2W6FDXVRPT4L4FGHTX2IHY3VREI44SB7VJTVT75UT6ER3CTVD6B74" ,
"decimals" : 6 ,
"default-frozen" : false ,
"freeze" : "PBSSJ2W6FDXVRPT4L4FGHTX2IHY3VREI44SB7VJTVT75UT6ER3CTVD6B74" ,
"manager" : "PBSSJ2W6FDXVRPT4L4FGHTX2IHY3VREI44SB7VJTVT75UT6ER3CTVD6B74" ,
"name" : "Lamps" ,
"name-b64" : "TGFtcHM=" ,
"reserve" : "PBSSJ2W6FDXVRPT4L4FGHTX2IHY3VREI44SB7VJTVT75UT6ER3CTVD6B74" ,
"total" : 100000000000 ,
"unit-name" : "LAMP" ,
"unit-name-b64" : "TEFNUA=="
}
}
} ,
"chart_data" :[
{
"asaVolume" : 0.000604 ,
"algoVolume" : 0.457836 ,
"low" : "758.006622516556" ,
"formatted_low" : "758.006623" ,
"high" : "758.006622516556" ,
"formatted_high" : "758.006623" ,
"close" : "758.006622516556" ,
"formatted_close" : "758.006623" ,
"open" : "758.006622516556" ,
"formatted_open" : "758.006623" ,
"dateTime" : "2022-07-26T16:30:00Z" ,
"unixTime" : 1658853000 ,
"date" : "2022-07-26"
} ,
{
"asaVolume" : 0.000604 ,
"algoVolume" : 0.457836 ,
"low" : "758.006622516556" ,
"formatted_low" : "758.006623" ,
"high" : "758.006622516556" ,
"formatted_high" : "758.006623" ,
"close" : "758.006622516556" ,
"formatted_close" : "758.006623" ,
"open" : "758.006622516556" ,
"formatted_open" : "758.006623" ,
"dateTime" : "2022-07-26T14:30:00Z" ,
"unixTime" : 1658845800 ,
"date" : "2022-07-26"
} ,
// More...
] ,
"spread_info" :{
"max_bid" : "1801.0000" ,
"min_sell" : "953.0302" ,
"spread" :- 847.9698
}
}
Getting complete asset information for an asset that is traded or untraded
This will fetch asset for an information that is either traded or untraded
Params
assetId: the assetId of the asset
Searching Asset information by name or ID
This will query both Algodex and Algoexplorer and present results for both
Params
query: The query string. This can be an integer (for the asset id), or a string to search for the asset name or unit name. Partial name matches work as well.
Examples
Search Assets
GET
https://testnet.algodex.com/algodex-backend/asset_search.php
Search for an asset
Query Parameters
200: OK
Copy [
{
"assetName" : "Lamps" ,
"unitName" : "LAMP" ,
"verified" : false ,
"destroyed" : false ,
"assetId" : 15322902 ,
"isTraded" : true ,
"decimals" : 6 ,
"total" : 100000000000 ,
"priceChg24Pct" : 0.0007417558230212168 ,
"price" : "758.006622516556" ,
"formattedPrice" : "758.006623" ,
"hasOrders" : true ,
"formattedASALiquidity" : "140.339924" ,
"formattedAlgoLiquidity" : "234882.457618"
}
]
Getting package and smart contract version
This is for checking compatibility between the client and the server. If the escrowContractVersion is different, then any orders placed into the order book will not show up in the UI!
Getting asset information for a wallet address
This will query Algodex and return all the assets belonging to a wallet, along with price information and how many are in orders
Params
ownerAddr: the owner address to retrieve the assets for.
Examples
Fetch Wallet Assets
GET
https://testnet.algodex.com/algodex-backend/wallet_assets.php
Returns asset for a wallet
Query Parameters
200: OK
Copy {
"allAssets" : [
{
"assetId" : 16525344 ,
"amount" : 48596878092 ,
"asaInOrder" : 0 ,
"name" : "Alex Play 1" ,
"unit_name" : "ALEX1" ,
"decimals" : 5 ,
"formattedTotalASAAmount" : "485968.78092" ,
"formattedASAInOrder" : "0" ,
"formattedASAAvailable" : "485968.78092" ,
"formattedPrice" : null ,
"formattedTotalAlgoEquiv" : null
} ,
{
"assetId" : 24253358 ,
"amount" : 1 ,
"asaInOrder" : 0 ,
"name" : "AlgoDesk Test ASA" ,
"unit_name" : "AD-TEST" ,
"decimals" : 0 ,
"formattedTotalASAAmount" : "1" ,
"formattedASAInOrder" : "0" ,
"formattedASAAvailable" : "1" ,
"formattedPrice" : null ,
"formattedTotalAlgoEquiv" : null
} ,
]
}
Getting asset information for all assets
Examples
Fetch Assets
GET
https://api-testnet-public.algodex.com/algodex-backend/assets.php
Return assets list
Query Parameters
200: OK
Copy
// Example response without ID Query
{
"ok" : true ,
"rows" : 366 ,
"data" :[
{
"id" : 15322902 ,
"unix_time" : 1658853136 ,
"price" : 758.006622516556 ,
"priceBefore" : 758.001 ,
"price24Change" : 0.0007417558230212168 ,
"isTraded" : true
} ,
{
"id" : 33698417 ,
"unix_time" : 1658331321 ,
"price" : 0.760032540259 ,
"priceBefore" : 0.760032540259 ,
"price24Change" : 0 ,
"isTraded" : true
} ,
]
}
// Example response with ID Query
{
"ok" : true ,
"rows" : 1 ,
"data" :[
{
"id" : 22295876 ,
"unix_time" : 1657975266 ,
"price" : 10 ,
"priceBefore" : 10 ,
"price24Change" : 0 ,
"isTraded" : true
}
]
}