⚡ CASHOUT ⚡
Cashout is a crypto off-ramping solution for Sub-Saharan Africa .We have built an easily interactable website to allow users to cashout their crypto currency for their local fiat currency instantly.
Cashout also has is also developing an API as a Service platform that provices an API to allow other developers connect to their site for easily offramping crypto to the end users.
with the increased adoption of cryptocurrency in subsaharan africa as per this chainalysis report that also indicates that 80% of micro crypto payment transactions (transactions less that $1000) happens in subsaharan Africa. This provides an opportunity and market for an offramping solution as our daily lives still heavily revolve around fait currency for payment of goods and services.
The project leverages the power of the polygon blockchain and smart contracts to allow users deposit funds into the cashout smartcontract built on the polygon Mumbai testnet network, Upon confirmation of the transaction. It Intiates the flutterwave payment aggregator to make a fiat mobile money payment to the account number/phone number provided.
Flutterwave was chosen as a payment aggregator because it gives us access to the entire sub-saharan africa countries and currencies and thus was the most scalable payment aggregator we could use. It also charges a 1% fee on transactions allowing us to also charge and extra 1% - 1.5% fee. At 2% - 2.5% we are the cheapest available crypto off-ramping solution available in the market currently.
To provide Liquidity, Cashout hopes to raise capital for the initial fiat liquidity, After the first couple of transactions, The deposited crypto funds can then be withdrawn and liquidated from exchanges or otherwise then re-employed to the fiat account that is debited for making fiat payments. This way, the project iwill be self-sustaining.
CashOut Team
- Elias Hezron solidity engineer and Project Lead
- Sash solidity frontend engineer and UI designer
Region location
Kampala - Uganda, AFRICA
Using ChainLink
We implemented chainlink priceFeeds here to implement minimum and maximum price deposits allowed in the contract. We also use chainlink pricefeeds to return the lastest token prices in USD which is further converted down to the local native currency in the frontend.
We also used chainlink keepers compartible contract implementation here to check up keep for when the contract balance exceeds the minimum balance as show here we want the contract to hold. After that, it sets the tokenTrigger amount and then we use autotask to automatically withdraw the funds from the wallet after the upkeep. You can check the autotask function here You can also checkout the upkept contract here
built on polygon
The project only supports USDT, USDC and DAI funds in the cashout contract. Used for the demo project transactions. the rationale behind this is so as to have a more predictable price pattern and also its safer this way. Its also presumed on the basis that if people expect the value of an asset to go up, They will most probally choose to hoard it and so stable coins would be the best crypto currency they would offramp. We are open to intergrating other tokens in the future.
We are also minting the cashout puppies NFTS that are only 100 and minted to the first 100 users who use the flatform. This is a way to create a community and use of NFTs as soulbound identification with a community.
Using IPFS and FILECOIN
We implemented NFT.Storage IPFS storage for our NFT images here and metadata files here
Checkout our NFT IPFS IMAGE DIRECTORY and MetaData DIRECTORY
Bounty Technologies Used
- QuickNode rpc Nodes :QuickNode rpc endpoints were used for rpc connection to the polygon Mumbai testnet blockchain both on the backend hardhat file here and the frontend react application file here
Other Technologies Used
- openzeppelin Defender We used the openZeppelin defender to automate transactions through using of the defender autotasks and sentinels. We also used Defender relayers to take ownership of the smart contract and store our private keys. this allows for openzepplin to manage that and prevents us exposing senstive data in the cloud. We also use defender admin to manage smartcontract methods.
- useDapps we implemented useDapps as rapid framework for Dapp development. And access to contract events, readMore
- ethers for interacting with the ethereum blockchain and its ecosystem.
- flutterwave as a fiat payment aggregator
Project Description
currently, the only available mechanisms for cashing out include Binance's peer to peer trading. however this does not support some tokens and not intergradeable and OTP trading which is expensive interms of finding a merchant and the actual fee/charge at 5-10% of the actual price. Cashout will operate at a meer charge of 2% -2.5% which is the lowest in the market, and with our web-based UI system and simply implementable API we are easily intergrateable to any platform or wallet making it instant and convenient.
Cashout was built with polygon social Impact such as impact plus in mind to easily allow the beneficiaries to cashout the crypto tokens their recieve for fiat to their mobile money contacts as this the currency and means of exchange they interact with on a daily basics while purchasing of goods and services.
The intended users of the platform is the general public, Impact markets, corporations, international remitances info of cryto currency and NGOs providing relief through crypto currency.
usecases of cashout
These are the core reasons and motivations behind the cashout project.
Social Impact projects Cashout hopes to intergrate with impact markets projects that provide Universal basic income to locals in the subsaharan region allowing the end beneficiaries be able to easily cashout the crypto they recieve to fait inform of mobile money to their cellphones
crypto Remittance With the increased adoption of crypto currency all over the world, we are seeing increasing cases of remittances to subsaharan africa inform of crypto currency. this also was a tenet of the bitcoin founder satoshi Nakamoto. Cashout wants to enable this reality to allow the end users to simply convert their crypto for fiat
Crytopayments. One of the major hinderance to the adoption of cryptocurrency as a form of payment is the complexity involved to liquidate your crypto for fiat. Cashout hopes to solve this by allowing the user to easily connect their wallet and liquidate their cryto currency. And with the API being rapidily developed, cashout would allow companies and bussiness simply intergrate this solutions in their products.
Summary
Main feature of offRamping has been successful implemented as illustrated in the demo
here is our it works
The user connects their wallet to the web based UI, selects a network this wish to interact with, the token on the supported networks that are supported and how much they wish to withdraw and the country they are from. The application automatically gets for them the exchange rates in their local currency. They Input their mobile money number where funds should be sent and initaites the transaction. After ERC20 approval of the allowance. the user signs an EIP712 type message containing all the details of the transaction. For DAI tokens, the user just needs to sign the transaction to permit a transferfrom method call.
The transaction is transmitted to the relayer through the EIP2771 context contract and the forwarder contract that executes the transaction on behalf of the user. The gasfees are relayed to a relay hotwallet hosted on openZeppelin Defender. We make a post request to a webHook url is connected to openzeppelin defender autotask to Automate the transaction. You can see the actual code implentation here. Upon confirmation of the transaction, A mobile money payment is intiated to transfer funds to the user and a react toastify notification sent notifying the user on the progress of the transaction.
For the API, the developer transmits the parameters to the API and then it works as descriped above.
The minting of the NFTS to the users is through openZeppelin sentinel which monitors the smart contract events emitted when a user deposits their crypto into the smart contract and then triggers the autotask transaction to min t an NFT to that specific user. You can see the implementation here
Next Steps
Further development of the API to make it market ready
License
This repository includes an unlicensed statement though you may want to choose a different license.
Built With
- chainlink
- ipfs
- nft.storage
- openzeppelin
- solidity
- usedapps
- web3

Log in or sign up for Devpost to join the conversation.