With the explosion of cryptocurrency tokens, it's hard for the average investor to keep up and know where to put their money.

In the TradFi world, for a long time, passive investing has been popular for precisely this reason. If you believe certain sectors are going to boom or want to support a particular cause (e.g. sustainable energy), you can invest in an index fund rather than picking individual stocks.

With cryptoshop, we seek to bring the ease of use of passive investing to the crypto world. By doing that, we're lowering the barrier of entry into the future of finance.

What it does

cryptoshop provides a very simple interface to browse various curated bundles. When you find a bundle you like, all you have to do is enter the amount of USDC you wish to invest.

The app takes care of figuring the allocation and price and dealing with minimum order sizes and account management. Once the order is reviewed and approved by the user, all the coins in the bundle get added to your wallet.

Some curated bundles are hand-picked by the team, but other bundles are based on Coingecko price data and dynamically adjust to reflect the current most popular tokens, for instance, in the "metaverse" category.

Quick note: the order to buy the bundle would ideally be a single transaction so the user only needs to approve once. Unfortunately, due to Solana transaction size limits, that's not the case at the moment but this can be solved in the near future.

How we built it

  • Typescript/React/Tailwind web app
  • Phantom wallet integration
  • Serum DEX for trading via @project-serum/serum
  • Coingecko API integration to fetch their curated categories as well as prices

Challenges we ran into

  • Transaction sizes on Solana are limited to ~1200 bytes. The placeOrders transaction for Serum is rather large and I had trouble fitting in more than 2 orders into a single transaction. This could be mitigated by deploying an intermediate on-chain program that calls Serum.
  • create-react-app 5 doesn't play nice with @project-serum/serum

Accomplishments that we're proud of

  • I only started working on this on Jan 24th, and it has taken less than 40 hours to get to this build. Plenty of polish left to do but the app is fundamentally functional which is awesome!
  • Dove deep into the serum-dex-ui source code to figure out how to piece together the transactions necessary to interact with Serum
  • The fun, playful visual look as well as the overall progress UI that clearly presents to the user the order and order status.

What we learned

  • Serum and Solana are really fun to build with and are incredibly fast compared to other blockchains
  • Developing directly on mainnet is not bad at all when transaction fees are super low

What's next for cryptoshop

  • As discussed above, buying a whole bundle of 10 coins in a single transaction (currently, transaction size limits don't allow this)
  • Currently, each token in the bundle gets added individually to your wallet. Buying bundles should instead result in the addition of 1 bundle token to your wallet, akin to index funds in TradFi. This will make selling your purchases later on much easier, and you can track the price of the bundle rather than each individual token.
  • Cross-chain trading incl. ERC-20 tokens
  • Basic improvements
    • Support for more wallets
    • Faster order confirmation and better error handling
    • Better prices and allocation strategies
    • Price charts and more detailed analysis about each bucket

Built With

Share this project: