I want to help people who are interested in buying or selling Stellar chose an exchange or service.

I've been working on a site that compares the bid/ask prices of XLM on the popular exchanges (Poloniex, Bittrex, Kraken, ...) and displays which exchange currently has the best price for either buying or selling XLM.

Fees charged by the exchanges are shown and taken into account. All data is updated in real-time via websockets. I'm thinking about showing historic data in a chart so it becomes clear if there are exchanges that consistently offer a better price. I want to add a public websocket API so trading tools can use this real-time information.

I would like to open source the application to make it easy to add adaptors for new exchanges and so that everyone can review the correctness of the implementation. Does the 250K stellar open-source bonus still apply?

Can I still enter this application for the November 15th Build Challenge [0]? Would it fit the trading tool category?

[0] The https://www.stellar.org/lumens/build/ page no longer mentions the requirement to post to the forum before October 30th. Is that still a strict requirement?

This seems like a very useful service. It could encompass other cryptocurrencies also and appeal to common people.

What if it compared also the price through more roundabout means, like buying BTC then selling it on an exchange and then buying XLM -- and other methods commonly used? (Because not every people in the world is able to deposit dollars directly in one of the major exchanges.)

What about anchors? You could presumably use one of the Stellar BTC anchors and the Stellar Decentralized Exchange to acquire lumens.

    fiatjaf I would love to add those. Can I find some info on the volume traded that way?

    For now I've purposefully only added high volume exchanges as a proxy for high liquidity, "stable" price and "low" counterparty risk.

    I don't have much experience with Stellar anchors. Can you recommend me a specific Stellar BTC anchor that you trust?

    Looking at naobtc.com I can't figure out where to find a real time conversion price.

      Thanks @umbrel I'll try to incorporate the decentralised exchange.

      Is it correct to say that the volume/liquidity on the decentralised exchange are still minimal compared to the traditional exchanges? Looking at https://api.stellarterm.com/v1/ticker.json the spreads are huge ?

      If you trust the Anchor, I do see the advantage that there's often no KYC verification required (vs Exchanges), so the process of "setting up an account" is much simpler and faster.

        andruby Yes, correct, liquidity is currently negligible, but few people are working to improve that and there are no trading fees. At some point in the future it will become a primary way of buying.

        6 days later

        I’ve got an MVP ready and deployed at http://stellar-price.com.

        I was able to add 4 currency pairs which are checked through 18 routes on 5 exchanges.

        I’ll do some polishing before the submission deadline.

        I think it is cool, but as advanced user I'd like to see prices myself, because when you show: buy on Poloniex, I immediately get question "Why?"

          And probably no need to go beyond 8 decimals ?
          screenshot

            umbrel hmm the decimals should be rounded to exactly 8 digits since yesterday. Did you take that screenshot around the time you posted that message?

            Floating point numbers in JS ?

            You’re right about showing all the routes to power users. I guess I could show a full table with all currency pairs to power users. I’ll try to add that when I have the time.

            13 days later

            andruby cool, how do you sort markets in Real time prices table? Can you make it less real time or sort differently? because it keeps flickering, so it's impossible to see some values.
            one second it's
            Kraken on 3rd place
            then before I could read numbers it changes to Poloniex, then back again, etc

              umbrel yeah I noticed that too. I’m sorting on base_currency, quote_currency and bid price. But somehow the bid price comparison is flickery. I’ll try and fix it today.

              Is the transparency of showing the market prices useful for you? I wasn’t sure if it was better to show 16 markets or all 28 routes in a table. The routes are a lot denser, that’s why I went with markets for now.

              @umbrel what would be the next feature you’d find most useful?

              1. Include fees in the pricing (assuming market orders)
              2. Save settings (currencies, amount) in url and cookie for easy sharing and remembering
              3. Store full history and show the top 5 routes of the last week
              4. Something else

                andruby Yes, it is definitely useful, at least as a user I can now relate why do you show me to buy on kraken, and I can see that your rates are up to date.

                As for features I'd love to see more markets especially changelly and Stellar Decentralized Exchange, but obviously you cannot include everything, it will consume all your time.

                2 months later

                @andruby I'm about to begin work on a project that could really benefit from the work that you've done here. I'm going to create an application that acts as a broker for users wanting to buy or sell Lumens using their fiat currency. It won't be a fully fledged exchange, but instead will use existing exchanges for converting fiat to Lumens and vice versa. I plan on using your work as the path finding mechanism to get the user the best possible rate at that time.

                Is the data from Stellar Pricey available over API or is your websocket server open to public connections? If not, I will spin up and run an instance as part of my application. I'm not at all familiar with Elixir though, so if public connections are a possibility, that would be great!

                  codesmithtech nice, this sounds ambitious and awesome. I like it.

                  What's the planned approach for onboarding fiat into the application?

                  13 days later

                  @codesmithtech I've actually been wondering if people would be interested in stellar-price as an API. You're free to consume the websocket api as-is. Does the format as it is now work for you?

                  You can test the websocket api with the wsta commandline tool like this: (I've added pygmentize for syntax coloring, you can leave that out)

                  echo '{"topic":"info:sell:xlm:eur","event":"phx_join","payload":{},"ref":"1"}' | wsta ws://stellar-price.com/socket/websocket | pygmentize -s -l json

                  This returns colored json:

                  {
                    "topic": "info:sell:xlm:eur",
                    "ref": null,
                    "payload": {
                      "route": [
                        {
                          "trade_direction": "sell",
                          "quote_currency": "btc",
                          "market_url": "https://www.kraken.com/",
                          "exchange_name": "Kraken",
                          "bid": 0.0000363,
                          "base_currency": "xlm",
                          "ask": 0.0000364
                        },
                        {
                          "trade_direction": "sell",
                          "quote_currency": "eur",
                          "market_url": "https://www.gdax.com/trade/BTC-EUR",
                          "exchange_name": "Gdax",
                          "bid": 8463.74,
                          "base_currency": "btc",
                          "ask": 8463.75
                        }
                      ]
                    },
                    "join_ref": null,
                    "event": "tick"
                  }

                  Let me know if you want to run the app locally. It's a "standard" Elixir Phoenix app.

                  23 days later

                  Withdrawals fees are not included ? Miss a lot of exchange pairs to be usefull now (like Kraken xlm/fiat pairs).