altaga / EffiSend-OPOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EffiSend-OPOS

License: MIT

Welcome, this is our project for Solana OPOS Hackathon.

Applications:

Main App APK: LINK

POS App APK: LINK

Here is our main demo video:

Demo

Introduction and Problem

This application is a completely new code and application rebuild and idea we have had using previous designs and name. This, incorporating Jupiter and a new take on NFTs through Crossmint as discount coupons for retail payments.

The concept for this project is "Only Possible on Solana".

Banking the unbanked has always been a paradigm in the Web3 world.

Our team is based in Mexico, within a region with several challenges, an estimated 70% of economic transactions in Latin America are all cash. And just 50% have bank accounts. But, in contrast 78% has a cell phone with an internet connection.

These numbers are close and very similar to the APAC region. In Asia Pacific cash accounts for 57% of the transactions and just 76% has bank accounts. Of course in terms of mobile connections they boast much higher numbers reaching 98%!

Traditional Finance has proven itself unable to solve the great Chasm in both regions that comes from not having any kind of banking, and overusing cash not to mention a digital one. We think that both regions are set to jump this chasm and generate new economies based on these technologies, which they already are doing. Despite this the crypto world has seldom focused on these regions and not really reached the retail or final consumer, until now.

Of course, as the numbers show us that Digital Wallets are projected to overtake credit cards by 2024, we want to capitalize on that opportunity with Fintech and Web3 tools.

Our goal for this project is to actually enable and get crypto at the point of sale.

Solution

Effisend is a Mobile-First wallet, cash out ramp and Point of Sale Superapp. We combine TradFi through Stripe with Web3 to improve Financial Inclusion in Mexico and LATAM

System's Architecture:

Crossmint:

All the NFTs used in the project were minted and delivered through Crossmint, this platform was used since it allows the massive mint of NFTs, which allows large companies to carry out this type of campaign. This process is much easier than using a project such as CandyMachine.

The process to mint an NFT collection only requires 3 easy steps.

Jupiter:

The entire swap process in our app is carried out by Jupiter and it is essential that users are able to make these changes from SOL to USD (stablecoins) quickly since traditional businesses still need to make payments in stablecoins attached to the dollar as they are USDC.

  • Swapping through Jupiter Swap (Solana) is very easy thanks to its APIs and a simple and intuitive UI.

  • Swaps can be done natively from the app or using the seedvault if you have one.

  • All the code to generate the quote and obtain the transaction for the swap is the following and its implementation in code is the following LINK.

    • Quote:

      const myHeaders = new Headers();
      const params = new URLSearchParams();
      const solContract = "So11111111111111111111111111111111111111112";
      const inputMint =
        tokenFrom.contract === "" ? solContract : tokenFrom.contract;
      const outputMint =
        tokenTo.contract === "" ? solContract : tokenTo.contract;
      const mult =
        tokenFrom.contract === ""
          ? LAMPORTS_PER_SOL
          : Math.pow(10, tokenFrom.decimals);
      const amountIn = parseFloat(amount) * mult;
      myHeaders.append("accept", "application/json");
      params.set("inputMint", inputMint);
      params.set("outputMint", outputMint);
      params.set("amount", `${amountIn}`);  
      params.set("swapMode", "ExactIn");  // Exact In Mode
      params.set("slippageBps", "50");    // Set slippage 0.5%
      params.set("feeBps", "30");         // Set 0.3% effisend extra commision fee
      //params.set("onlyDirectRoutes", "false");
      //params.set("asLegacyTransaction", "false");
      
      const requestOptions = {
        method: "GET",
        headers: myHeaders,
        redirect: "follow",
      };
      
      fetch(`https://quote-api.jup.ag/v4/quote?${params}`, requestOptions)
        .then((response) => response.json())
      
    • Get Transaction:

      const myHeaders = new Headers();
      myHeaders.append("accept", "application/json");
      myHeaders.append("Content-Type", "application/json");
      
      const raw = JSON.stringify({
        route: data,
        userPublicKey: this.context.value.publicKey.toString(),
        wrapUnwrapSOL: true,
        feeAccount: tokenTo.feePubKey, 
      });
      
      const requestOptions = {
        method: "POST",
        headers: myHeaders,
        body: raw,
        redirect: "follow",
      };
      
      fetch("https://quote-api.jup.ag/v4/swap", requestOptions)
        .then((response) => response.json())
      

Main App Screens:

Our application is made in order to be a simple wallet for new users in crypto and to be able to offer even complex services such as swap and payments through solana pay, just with a couple of clicks, some main functions that we have are the following.

  • Management of crypto assets on the solana network or some of the most important EVMs.

  • Easy receipt of payments through QR, either direct transfer or through services such as SolanaPay and Wallet Connect.

  • Connectivity to Dapps (EVM) and payments with Solana Pay either natively with the wallet or using the wallet mobile adapter and seedvault.

  • The Swap section of our app uses the DeFi services of Jupiter Swap (Solana) and Uniswap (EVMs).

  • Management of NFTs and in this case coupons to obtain great discounts with companies.

Point of Sale application:

  • The Point of Sale application is more focused on the simple reception of payments and an interface focused on generating payment orders through QR or NFC.

  • The POS allows us to see the Crypto and Fiat balances received along with the list of transactions just like the Main App.

  • One of the most important processes is being able to make payments at the POS through Solana Pay and get a discount if you own an NFT coupon. Being this the pillar of our device. (At this point the data at Label, Message and Memo are fillable fields, although you can scan the information using the POS Barcode Scanner and fill in any field with it, in the future these will be with data of the establishment or person receiving the payment)

  • Automatically if the wallet that makes the payment has the NFT corresponding to the discount, the POS will automatically discount the percentage.

  • Once the reference payment has been made, we will be able to see the confirmed and verified messages.

  • In addition, we provide a printed receipt with the URL where you can check your transaction.

  • Let's print!

Current state and what's next

This application is directed at those who cannot benefit directly from cryptocurrency. It has the usual, both crypto and fiat wallets, transfers between crypto and fiat, transfers between crypto accounts and it gives a spin on the cash in - cash out portion of the equation as no other project provides it. It is very important if this application is going to benefit and bank people to be very agile and compatible with FIAT at least until crypto reaches mass market. Most of the developed world has not even incorporated to legacy electronic systems. In addition to that the incorporation of a Point of Sale thought mainly for SMEs is something that can be key in augmenting the change for further adoption.

I think we can make the jump from those systems almost directly to self-banking, such as the jump that was made in some parts of Africa and even here in Latin America from skipping telephone landlines directly to Mobile phones. If that jump was made from that type of technology this one can be analogous and possible.

Thus, the need for Decentralized solutions.

Security and identity verification of the clients who use the app is paramount for us, and to thrive in this market we need this to emulate incumbents such as Bitso. We think our technology is mature enough if we compare with these incumbents and much safer.

Regarding the application we are launching in amonth approximatelly and raising Capital perhaps in Q1-Q2 2024.

Hopefully you liked the Mobile DApp and Point of Sale.

Team

3 Engineers with experience developing IoT and hardware solutions. We have been working together now for 5 years since University.

References:

https://egade.tec.mx/es/egade-ideas/opinion/la-inclusion-financiera-en-mexico-retos-y-oportunidades

https://www.cnbv.gob.mx/Inclusi%C3%B3n/Anexos%20Inclusin%20Financiera/Panorama_IF_2021.pdf?utm_source=Panorama&utm_medium=email

https://www.inegi.org.mx/contenidos/saladeprensa/boletines/2021/OtrTemEcon/ENDUTIH_2020.pdf

https://www.cnbv.gob.mx/Inclusi%C3%B3n/Anexos%20Inclusin%20Financiera/Panorama_IF_2021.pdf?utm_source=Panorama&utm_medium=email

https://www.rappi.com

https://www.rapyd.net/

https://www.pointer.gg/tutorials/solana-pay-irl-payments/944eba7e-82c6-4527-b55c-5411cdf63b23#heads-up:-you're-super-early

https://worldpay.globalpaymentsreport.com/en/market-guides/mexico

https://www.sipa.columbia.edu/academics/capstone-projects/cryptocurrency-and-unbankedunderbanked-world

About

License:MIT License


Languages

Language:JavaScript 95.5%Language:Java 2.5%Language:Ruby 0.8%Language:Objective-C 0.8%Language:Objective-C++ 0.4%Language:TypeScript 0.0%