FRYX finance reviewInitial notes* I’ve replaced in this review the API key, addresses and so on with not-too-random strings, they're not be valid addresses, for example, don’t worry about that.
* I should have been hiding/replacing better some numbers too, but I guess that I'll just mix some more coins and we're good.
* This has ended up being a mix between a review and a test session after all.
* I guess that I should have done some more re-reads and checks on my writing, but I think that's not so bad.
First impressionThe first impression was pleasant, the UI is nice, although a bit simple, but that’s not a problem.
What I’m feeling that’s missing is a small tutorial page, made without any need to login or deposit. At first I was not even certain it’s a standard p2p exchange or an OTC exchange, or both. So it could help to have a small page with what a newbie should do. The only documentation – the API page – can also contribute to the confusion (since /orders tells about user’s
open orders). I learned while using that it’s basically both.
Also the clear web page doesn’t show – or at least I didn’t find – any onion address, although you clearly have one (or two).
So I’ve done all the tests on clear net, which may be a bit unusual for BTC-XMR trades.
Operations: Buying Monero without an accountI wanted, for a change, to start with “Sell Monero”, but for small test amounts the 0.0001 BTC withdrawal fee is high (at least compared to 0.0001 XMR for the other side). It’s not a problem per se, since centralized exchanges are even more expensive, still, it may worth weighting this.
The approximative price conversion was not too bad though, at least at the first glance.
Since for the depositing I’ve made another “chapter”, so I’ll continue with the rest.
What I feel like I’m missing is a session key. Normally it should not be necessary, still, if one has been using a low fee, or the blocks are slow, and the user wants to come back to see the status… he cannot. It could be also useful to track the order in case of errors. Even more, the platform is actually using such a session key and it’s visible in the URL, so it only needs to be added to the UI for the user to copy it if he wants to.
As soon as the 5th confirmation has come, the XMR was sent to my wallet pretty much instantly.
Depositing BTCAs soon as my bitcoin transaction got broadcasted, it was shown on FRYX finance page, which is nice and reassuring (compared, for example, to pages showing nothing until the first confirmation).
I think that the number of confirmations should depends on the amount to be sent. I find 5 confirmations for 5$ amount a bit of overkill. But that’s up to service owner after all…
Account in UICreating a new account works easily, even with temporary mail server addresses. I like that!
Interestingly there’s no password required (basically you just tell your email address and that's all). Strangely the workflow is not much different between creating a new account and logging it to that account. But it’s okay.
On the other hand, maybe it would be nice to also offer the account’s API key somewhere I’m not much of an API trader, so I don’t know if it’s OK or not, for me it would have been nice to not make 3 deposits and 3 withdrawals while trying out the system (no-user, user-UI, user-API).
The UI, again, is simple, but it seems to have all that’s needed.
I would recommend though that OP is considering an automatic log out after a certain amount of time with no new pages opened. It’s a pretty common security practice and it should not hurt.
Depositing Monero (to account)The deposit was visible on the website (only) after the first confirmation. I am not that much of an XMR user, I don’t know if it’s normal or not (at receiving XMR my wallet has shown the new amount instantly). However, confirmations are not so slow, so it’s okay.
There are 25 confirmations needed until the account is credited. Maybe same discussion applies like for Bitcoin for the small amounts.
After the 25 confirmations the amount was visible in the balances tab.
TradingThere are no orders visible, not even the default orders the platform offers, hence for somebody who doesn’t know the numbers from API it may be difficult (at least at start), depending on the implementation.
I’ve got the numbers from API, I’ve done the math and made my order. Since I’ve used (intentionally) the sell price from the API, my order is visible, but not filled.
I’ve canceled it and made a new trade order, with the current buy price.
The order got filled instantly and instead of the “A new order was created with order ID ...” text, now I’ve got “The order was filled”. Also the balances are updated in the other tab.
It worth mentioning that there are a bit too many digits there…
Withdrawing from accountHere a “max amount” button would be nice. Also it’s not clear whether here we fill the amount before or after the withdrawal fee… I’ve put there my whole balance. I’ve got error: invalid amount. Of course, it’s because of the too many digits and this should not happen.
When I’ve set a correct amount (with 8 decimals), I’ve got the message that the request was successfully submitted. Within seconds my bitcoin wallet has seen the unconfirmed incoming transaction.
Using the APII’ve used the API with Postman under Windows, I’ve bought some Monero too for the tests. I repeat, I am not an API trader, so some of my conclusions may be wrong.
Getting the order bookhttps://fryx.finance/order_book?market=XMRBTC {
"buy": [
{
"executed": "0E-18",
"price": "0.008084340000000000",
"volume": "11.233281562737444779"
}
],
"sell": [
{
"executed": "0E-18",
"price": "0.008247660000000000",
"volume": "9.197584532662045095"
}
]
}
The result is pretty much meaningless to me. OK, the price can help, but the exchange’s volume… is it useful or it’s the maximum amount to work with? I don’t think that maximum is 9 or 11 XMR. Or is everything posted in BTC?!
The executed tells nothing useful (at least at start), plus the format is not nice (I don’t know if the problem comes from the platform or Postman).
Creating an userActually this creates an API key, not an user, since there’s no relation with the user from UI.
https://fryx.finance/new_user {
"api_key": "irTkrTkrTkrTkrTkrTkrTk"
}
Depositing BTC; balanceshttps://fryx.finance/deposit?api_key=irTkrTkrTkrTkrTkrTkrTk&asset=BTC {
"address": "bc1qabcabcabcabcabcabcabcabcabcabcabcabcab"
}
https://fryx.finance/balances?api_key=irTkrTkrTkrTkrTkrTkrTk {
"BTC": "0E-18",
"XMR": "0E-18"
}
All nice, but while depositing the balances stay empty until… when? I guessed that’s 5 confirmations, but no info/documentation, no progress, nothing.
As soon as the 5 confirmations were done, the account got credited and the balance visible in the API.
I advise a better approach here, from progress report to the block number when the accoutn is expected to be credited, or even better, maybe some sort of callback so the one implementing this doesn’t have to keep doing calls.
I will add that 18 digits after the decimal point may not be nedeed for Bitcoin (and may freak out some people).
Order book, buy, sell cancel orderBuy: the API documentation would need to tell better what one is buying and what is one selling (yes, I know that the pair is XMRBTC, but more clarity never hurts).
Well… here it gets complicated, or I am overthinking it. As I see it, one can make an order at the desired price and that may or may not be filled, like in normal exchanges, but if he wants to do it at the current market price he has to call /orderbook and do calculations.
Maybe a “get me XMR for this amount of BTC at market price” and “get me BTC for this amount of XMR at market price” API calls can also be of help.
Order book was:
https://fryx.finance/order_book?market=XMRBTC {
"buy": [
{
"executed": "0E-18",
"price": "0.008040285000000000",
"volume": "11.294831895747580133"
}
],
"sell": [
{
"executed": "0E-18",
"price": "0.008202715000000000",
"volume": "9.197584532662045095"
}
]
}
Although using Excel, my first order was not OK:
https://fryx.finance/buy?api_key=irTkrTkrTkrTkrTkrTkrTk&market=XMRBTC&volume=0.0248249906564257&price=0.008040285000000000 {
"order_id": 1018
}
Hence I canceled the order and tried again.
https://fryx.finance/cancel?api_key=irTkrTkrTkrTkrTkrTkrTk&order_id=1018 {
"success": true
}
Funny enough, after an order of 0.0002 BTC that was aborted I ended up with 0.000199999….BTC; this looks ugly, sorry.
After more tries in Excel and copy-paste errors getting me to insufficient funds error, I finally got success instead of order ID at buying XMR from API.
https://fryx.finance/buy?api_key=irTkrTkrTkrTkrTkrTkrTk&market=XMRBTC&volume=0.0243334066830312&price=0.008202715 {
"success": true
}
The balances now show my new XMR and also some dust BTC (under 1 satoshi, but with your API doing this automatically dust would not happen); but the numbers are pretty much as expected.
WithdrawingAfter reporting a bug in the API documentation (the address parameter was missing), the documentation was updated nicely and also the meaning of the amount was cleared up there (“total withdrawn is amount-withdrawal fee”).
A small problem was that when I’ve copied the amount I had in balances, I’ve got:
https://fryx.finance/withdraw?api_key=irTkrTkrTkrTkrTkrTkrTk&asset=XMR&address=89xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz&amount=0.024333406683031200 {
"error": "Invalid amount"
}
When I’ve cut the amount to 12 digits after the decimal point, I was OK.
https://fryx.finance/withdraw?api_key=irTkrTkrTkrTkrTkrTkrTk&asset=XMR&address=89xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz&amount=0.024333406683
{
"success": true
}
And the transaction was instantly visible in my Monero wallet.
Again, I will remind that normally, after all operations done, including the withdrawals, this kind of balances may look a bit bad:
{
"BTC": "7.99999998E-10",
"XMR": "3.1200E-14"
}
ConclusionsThe platform has a nice and easy interface and the OTC trading is simple and works perfectly.
The account and the API could go together and they both need small touches here and there to make users’ life easier. Here p2p trading seems to be also available, but the platform is too young and its missing, at least for now, larger order book (with more buy and sell orders).