Hey Everyone,
I wanted to share what I’ve been working on these past few months, its a “Shopify” for the IC.
Apologies for the wall of text, but ecommerce is a loaded topic!
ADMIN:
https://7rzy6-eiaaa-aaaal-qdjfq-cai.icp0.io/
PUBLIC CHECKOUT EXAMPLE:
https://7rzy6-eiaaa-aaaal-qdjfq-cai.icp0.io/checkout/fab050262939b6ba2f6d934c022d0db858edfd913786d648c379c7b015965705
(note if you actually test the public checkout, use Sepolia ETH … if you use ICP or SOL the money goes to the sample checkout wallets! If you accidentally send real funds I will refund just send me a DM on this forum)
Why build this?
I took on this project as a personal challenge to see if what I envision as decentralized commerce
could be built on the IC. The overall design philosophy of the platform is:
-Create an ecommerce platform where merchants can be in 100% control of their data and offer customers a simple, fast checkout experience using crypto
-Remove as many possible points of failure and 3rd party dependencies involved in online commerce
-Build something end-users would like to use, thats appealing, fast and reliable
-Avoid storing any sensitive data, tracking or invasive cookies
-Use hardcoded values for known contracts, tokens and endpoints to minimize user input data errors
-Use public, well known, reliable RPCs for transactions and rely on client wallets/biometrics for end user security
-Utilize the best aspects of the Internet Computer such as fast finality, cheap transactions and native multichain to do most of the heavy lifting
-Use and support the most common wallets and connectors and minimize overall trust assumptions
Background
I’ve been in ecommerce for over 2 decades, was doing credit card processing way back before ebay and amazon were a thing. I recall how hard it was to convince people to spend money online, and how risky it was putting personal information online in some sketchy iframe form. Well fast forward to today, and we have social media with people sharing all their personal details for anyone to see online and
online commerce has exploded to 15-20% of all retail transactions.
Crypto is the natural evolution of this. With credit cards there are all kinds of risky intermediaries, invasive tracking / data mining companies and rent seekers taking a % all along the way during a cc transaction.
In the end, the consumer may be protected with their purchase (i.e they can call their credit card company and demand a chargeback) in which case the merchant has to eat that cost. Good for consumer, bad for merchant.
In a past life I ran a few brick and motor businesses - I was losing 5-10% of income due to credit card processing fees, chargebacks and having to “rent” cc processing terminals. I also dealt with all kinds of fraud during my time building an ecommerce consulting agency - credit cards were the ideal place for fraudsters to attack. Storing credit card information is a big “no-no” unless you are PCI/ISO certified and even then, its a bad idea.
This experience drove me to look for better alternatives for merchants. Anyone who has run a small business can probably relate. Its interesting to note many countries around the world started allowing businsses to ‘pass on the cost’ of credit card fees directly onto the consumer - the end result? consumers pay more.
On the merchant side, big or small they need to go through strict KYC and registrations with credit card processors. Try getting a merchant banking account if you are a small business just starting out. If you are a business that is deemed ‘risky’ to payment processors then you are bascially out of luck for trying to sell online. You can try to find a grey market credit card processor but they will charge insane fees just to process cards. How many times have you read about PayPal or Stripe
arbitrarily cutting off merchants selling online? Some kid trying to sell his baseball card collection online gets banned? There has to be a better way.
Crypto offers a superior alternative to the legacy payment network for merchants in my opinion, we are just early in the eventual global rollout of tokenized payment networks. We had to wait for the tech to catch up (wallets and TPS) …which I think we’re pretty much there with the IC and other L2’s/SOL being able to process blocks quickly enough to make the consumer experience close to or on par with existing credit cards.
So what is supercart?
Supercart is a decentralized, non-custodial ecommerce platform running on the Internet Computer.
The platform allows merchants to create an online store, add products to it and configure crypto payments. They can then publish their store for end-consumers to visit and check-out. Payments are done directly onchain with no “intermediary” smart contracts, MEV bots or swaps involved.
There is no master account or super admin for the platform. Each merchant logs into their own store using II only and their data is only accessible by them. The platform is fully non-custodial, as it does not store private keys, tokens or currency. All funds are held by end consumers and merchants using their own wallets. Currently, the platform does not try to offer or create wallets for customers (something I’m investigating but creates a larger attack surface and token ‘jackpot’ for hackers)
Most tokens and values are hardcoded right into the binary, things like token names, contracts and decimal values. I like this approach better as its more secure and honestly, the small group of coins that are feasible for commerce is really small (think ckbtc, eth, icp and stablecoins).
You can view the supported chains and tokens here:
https://7rzy6-eiaaa-aaaal-qdjfq-cai.icp0.io/tokens
Prices are fetched ‘on demand’ during checkout then cached for 10 minutes (for now). This minimized outbound HTTPS outcalls but at the expensive of potential 10min slips on USD > Token values. This is an ongoing area of research for me and will be integrating the exchange rate canister and EVM canister next release to try to make prices more robust along with a TWAP backup.
End consumers, during checkout can use one of 3 supported wallets and chains (so far)
Plug wallet (icp mainnet)
Metamask wallet (eth sepolia / mainnet)
Phantom wallet (sol mainnet)
I plan to add 10-20 chains this year, mostly EVM L2’s as its pretty much copy and paste to implement them. Alsoexploring Bitfinity EVM for integration
I went with ICP, ETH and SOL as the main chains for now as I feel those 3 are the best setup for ecommerce. Once L2’s become more popular I can see growth there but honestly, the wallet/context switching for end users is stupid and L2’s fail hard there.
ICP definitely has the pedigree to be the #1 onchain commerce platform - but if you actually try to checkout using PLUG you will see the downsides (this isn’t a knock at PLUG its a great wallet but its slow for whatever reason when doing transactions. Sometime the wallet rejects transactions for no reason). If anyone has experience doing wallet/ICRC transactions or repos with modern, clean examples across different wallets, please share.
I plan to integrate all the popular IC wallets and wagmi/walletconnect but this will take time. I have only
tested browser wallets and no mobile testing has been done yet (I know its backwards but wanted to get desktop working tight first)
End Remarks
There is a lot to unpack when it comes to online commerce. Literally you can write encyclopedias on all the areas that ecommerce touches (marketing, customer acquisition, merchant plugins, payments, accounting, logistics, shipping, fraud etc)
Most businesses that I have engaged with are not willing to give up or migrate to a new platform. They have spent countless hours/$$ money in making their online store the best it can be. So having them try to ‘downgrade’ to an inferior onchain shopify with scary URLs isn’t realistic. Instead, the more sensible approach is to empower the merchant to enable web3 payments by integrating supercart directly to their existing payment flow.
I have a proof-of-concept of this type of integration running on wordpress and shopify. A task for my next release is to get working examples of live “web2” integrations working with the IC through supercart.
I see this as the end game - where every online store, whether its shopify or magento, woocommerce or bigcommerce - can ‘plug’ supercart into their payment flow and easily accept crypto as an option for checkout (IMO credit cards are not going anywhere despite what any crypto maxi may claim).
You can do crypto checkouts today with coinbase, bitpay etc, but these providers are rent seeking and take custody of funds, take a % of the transaction and are really no different then a credit card processor when you think about it.
Anyhow, please explore the app, I’ll be iterating on it heavily over the next few weeks and would love any / all honest feedback.
Open source
I will be open sourcing the code soon (this weekend?) Im just doing a final pass to make sure I didn’t put my phone number or home address in the code somewhere during testing
If you want to see the code before you try the app thats totally fair I respect that - most crypto people are paranoid about security and this is a good thing IMO when it comes to online commerce.
Cheers
-d