Hi Everyone,

I'm very excited to announce and get your feedback on Nucleo.fi (https://nucleo.fi) before the next Stellar Build Challenge deadline.

Nucleo.fi provides social identity on the Stellar Network. It is a social trading web app coupled with peer-to-peer payments (Social trading 'cornerstone' project in SDF Project List).

I wanted a platform where users could see what tokens their friends are investing in and buy/sell those assets while competing on returns, where anchors could easily showcase the tokens that they issue, where friends could send tokens back and forth using their own social handle instead of a long public address, and where you could seamlessly search for people, Stellar accounts, and available assets on the network. So that's what I built Nucleo.fi to be.

Features:
- Social identity on the Stellar Network: user profile page displaying all the assets you have invested in, your existing Stellar account addresses, and the usual social network info (i.e. profile pic, cover photo, name and bio).
- Multiple Stellar accounts for each Nucleo.fi user profile: associate existing Stellar accounts or create new Stellar accounts with funds from Nucleo.fi
- Real time market orders on the Stellar DEX with robust asset price charting
- Leaderboard of user returns over various time periods (1d, 1w, 1m, 3m, 6m, 1y)
- User rankings (top 100) based on account performance over the last 24 hours
- Asset rankings from the StellarTerm API (activityScore)
- Payments to others using their Nucleo.fi username, Stellar account public key, or simply by searching their full name.
- Follow other Nucleo.fi user profiles (friends, anchors, etc.) and keep up to date on what other users are buying/selling and what tokens anchors are issuing.
- Social feed displaying recent activity from all Nucleo.fi users you follow and news feed displaying aggregated Stellar related news.
- Real time search of all Nucleo.fi users, their accounts, and any assets they have held or issued
- Email notifications when: you receive a payment, an anchor you follow issues a new token, a user you follow buys/sells an asset, another user follows you.

Coming Features (hopefully before the submission deadline):
- Support for Ledger Nano S and StellarGuard
- Support for Path Payments

The platform is web only, for now, and requires signing up at https://nucleo.fi to utilize all its features. Some aspects, like your user profile, are public (since Stellar accounts, transactions, etc. are inherently public) and can be seen by others without the need for them to sign up.

Any feedback/support would be greatly appreciated! Links are below as well as a short video preview.

Web app:
https://nucleo.fi

Open source code repo ( README docs will be there before the deadline; PRs are welcome ? ):
https://github.com/mikeyrf/nucleo

Video Preview:
https://media-nucleo.s3.amazonaws.com/preview/galactictalkpreview_480p.mov

Cool stuff!

Let me know if you want any assistance with the StellarGuard integration. I’ve got a JS SDK to make it easy but the docs are a bit lacking so just let me know if you’ve got questions.

    StellarGuard Thanks! I haven’t checked out the docs yet but will let you know if I trip up anywhere ?

    StellarGuard Hey just as a heads up. I'm testing out StellarGuard on one of my Stellar accounts to figure out the best way to implement but stellarguard.me for some reason doesn't let me login after enabling 2FA. Is there some issue or is it something I'm doing?

      I signed up and I have a couple of observations:

      It’s hard to figure out what to do after I sign up, besides adding a Stellar account. Perhaps if you made the leaderboard more prominent or prompt some people to follow. Maybe even have a “first friend” like Myspace Tom.

      Additionally, I know the whole concept of social trading is that you compare with people, but I’d be very concerned about linking my real Stellar account to a public profile where everyone can see my balances. I don’t know if there is a solution to this since it’s pretty much the whole point of the project - but maybe a private profile mode where you don’t appear on public leaderboards but could still compare with friends?

      Overall, very clean presentation - I could see using this as a nice way to check my balance and gains/losses even if I didn’t use the social features. Well done!

        StellarGuard Thanks for the feedback! Yea I think with regard to privacy it’s a feeling it out type of thing. I chose to go more the Instagram/Twitter route of keeping things public overall since transparency is a pretty important of the Stellar Network. Plus, think from the perspective of an issuer in terms of wanting people to see the coins they’ve issued. Might just be easily resolved by having private profiles of course.

        It’s hard to figure out what to do after I sign up, besides adding a Stellar account. Perhaps if you made the leaderboard more prominent or prompt some people to follow.

        I'd recommend a tab in the sidebar that represents the "Assets" button you find when clicking through the site (https://nucleo.fi/leaderboard/asset/top/). Like Paul said, it isn't immediately clear that you can trade through a Nucleo account.

          StellarZac Thanks! I’ll play with it. Originally I had a trade tab that was going to lead to an orderbook, but with StellarX coming out I nixed it and decided to focus less on the market maker user and more on the value investor

          6 days later

          StellarGuard I’ve updated the app so now the Leaderboard is the first view users see after login/signup. Hopefully that make things more engaging and clearer in terms of flow.

          StellarZac Also, I’ve added an Assets tab in the nav bar leading to the top assets list view (https://nucleo.fi/asset/top/; it also displays the assets in your portfolio now). Let me know if these changes make it way clearer that you can trade in Nucleo.

          Besides that, Nucleo now supports Ledger hardware wallets.

          StellarGuard StellarGuard integration may be tougher given the way the Nucleo activity feed works. Do you have an example in the docs of the JSON response StellarGuard replies with after submitting a transaction?

          POST /api/transactions
          
          200 Response on success
          {
                id: String, // the id of the transaction
                xdr: String, // the XDR of the transaction that was submitted
                dateCreated: Date, // the time the transaction was created
                stellarGuard: true, // always true, could be used if you want to handle submission to horizon for non-SG users and switch based on the results
                url: String // fully qualified url to the transaction approval page on StellarGuard, some wallets link directly do this url
          }

          4xx or 5xx on errors (error message in the json response).

          I will get better developer docs on this soon.

            StellarGuard Is there a way for a third party API/app to receive a push from the StellarGuard API once StellarGuard has submitted the signed tx to Horizon? Or is it assumed that the third party app should just be listening for successful txs from the source account?

              mikeyrf So far all of the wallets that have integrated with it have listened to the actual transactions via horizon (since transactions don't necessarily have to originate from the wallet anyway).

              However, adding a callback was one of the things that was on my list of things to do. If doing that now would be helpful to the integration I can add it for the next release (likely Sunday evening, but I could do a special release for just this if it is time sensitive on your end).

                mikeyrf I've added callback support for when a transaction is approved and submitted to horizon successfully.

                POST /api/transactions
                {
                  xdr: "<transaction-xdr>"
                  callback: "https://webhook.site/7753d513-fc9b-488e-b762-c4596b79a3e7'
                }

                And also published version 1.4.1 of the StellarGuard JS SDK with support for it.

                const callback = 'https://webhook.site/7753d513-fc9b-488e-b762-c4596b79a3e7';
                StellarGuardSdk.submitTransaction(transaction, callback);

                You can see the data that gets sent to the callback here: https://webhook.site/#/cc677ade-969d-411e-9b9c-93745f69d37b/407fad2d-a4b3-44e3-a235-d9a32f20c783/0

                Hope this helps with the integration! Let me know if you need something else for it.

                  4 days later

                  StellarGuard has now been integrated with Nucleo.fi ?

                  StellarGuard for privacy concerns that I've been getting, you can now make your profile private by toggling "Private account" in Settings (https://nucleo.fi/profile/settings/). When your profile is private, only people you approve to follow you can see your Stellar account info, public keys, assets and balances.

                  Roadmap and outstanding tasks for the future are up on Github as well.

                  a month later

                  An update for everyone on some upgrades to Nucleo.

                  On the more aesthetic side:
                  • Leaderboard and top Stellar asset lists can now be viewed without logging into the app
                  • Improved charting of your portfolio value over time
                  • Listings of which other Nucleo users trust a particular asset
                  and more major:
                  • Integration with the @umbrel Papaya anchor to deposit crypto funds directly to your Stellar accounts

                  Image of Nucleo Deposits

                  I'm interested in potentially integrating theCoinbase buy widget as well for fiat -> crypto -> Stellar through Papaya. Has anyone else looked into this?

                    mikeyrf looks neat, keep in mind that new API standard is coming soon. I'll let you know once it's ready