Challenge 🏆
- 🏆 Track 1: Build the next neobank on the Bitcoin Bankathon
What is MNext? 💛
💎 MNext is a token community platform for banks and end users with online and offline payment solutions and coin multiplication techniques to provide a cutting edge monetary system. Tokens are unified and bitcoin-bonded with all characteristics of a fiat currency. This is a brand new idea made for this Bitcoin Bankathon.
Inspiration 💡
❓ The available challenges were really inspiring. Choosing from them was quite a hard task. We decided to run on Track 1: Build the next neobank, since it seemed to be a huge challenge due to the problems and barriers.
🇸🇻 Salvadorans have weak connections with the banking sector. Most of them do not have bank accounts or debit cards. Using cash mostly can be a real barrier for introducing new technologies. Bitcoin is a legal tender from september 2021. Providing financial services in cryptocurrency is hard for an old-fashioned bank. Communicating directly with blockchains from the bank’s server means a high security risk. El Salvador does not have its own money, the legal tenders are USD and bitcoin.
🤑 Any country without monetary politics has a great challenge to provide enough money to their own economy. Most of the time the demand for foreign currency is higher than the available supply. Commercial companies and citizens, who work abroad, get money in the desired currency. This is the case in El Salvador as it can be seen on GDP and GNI data.
What it does ⚙
💵 We provide MNext tokens for banks based on four factors. All of the multiplicated tokens are bitcoin-bonded with all characteristics of a fiat currency. Banks can allocate these coins as deposits or as loans to their own customers. MNext handles the whole process, related to coins, from creating coins through transaction management till burning coins. There are different forms for tokens from paper based till electronic based form to fit for the users need as much as possible. MNext coins satisfy the demand for spendable currency.
💶 The idea comes from the old Bretton Woods system and the golden standard. Using something worthy as a background is necessary, since it provides value to the new coin. In history people used precious metal, other currency or goods to provide the necessary inner value to a new money. Creating tokens is relatively easy, so there would be a step in the creation process that makes the new money a valuable commodity.
💷 There are 3 different phases in the system. The first is the registration process where the bank can register itself and its own bitcoin accounts. Our system watches bitcoin amounts only on the registered accounts. When a new amount of bitcoin appears on the account, we begin the MNext coin making process on our master account. After that we transfer the tokens to the bank’s account. It can distribute those tokens to its users as a deposit or a loan. When the tokens arrive at the user’s account, they are spendable. Spending means making transactions between the users’ accounts. We provide different forms for tokens. When the bank wants to burn coins, it transfers those coins to our master account. We burn them and make the bitcoin deposit free.
Available amount of tokens ↔
The available amount of MNext coins is based on four factors:
🟩 bitcoin deposit by banks on the verified accounts or on our deposit account
🟩 base unit
🟩 reserve ratio
🟩 multiplication factor
Base unit, reserve ratio and multiplication factor can be determined by banks, government or a chamber with chosen members based on the final real-world implementation.
Example:
🟧 bitcoin deposit: 1000 satoshi
🟧 base unit (5 satoshi): 200 satoshi
🟧 reserve ratio (10%): 180 satoshi
🟧 multiplication factor (10x): 1800 satoshi
🟪 amount of MNext coins: 1800 coins
Forms of coins ♠♣♥♦
Coins exist virtually, but they can be represented in paper forms.
paper based 📃
🧾 printed-out cash-like format
📗 checkbook
electronic based 🔌
💻 web app
📱 mobile app
Money characteristics 🏷
🟦 Fungibility: All of our tokens are unique but replaceable. Uniqueness means each of them has a unique ID to provide transparency, but their values are the same.
🟦 Durability: Tokens can be traded any time for a really long time without any damage.
🟦 Divisibility: Each token is bonded with Bitcoin at satoshi level. Since the lowest value of the MNext token is lower than 1% of a cent (USD), it provides more flexibility during pricing and transactions.
🟦 Portability: Tokens exist in a virtual world that provides easy portability. However, it is possible to create a paper-based version of any token.
🟦 Homogeneity: Different forms of tokens are equivalents.
🟦 Cognizability: Tokens can be easily recognized. Since the value of each token is the same, there is no place for misrecognition.
🟦 Noncounterfeitability: Blockchain solution grants the invariability. Each user has unique credentials to provide security.
🟦 Limited supply: The available amount of tokens is based on 4 factors. bitcoin deposit by banks on the verified accounts or on our deposit account, base unit, reserve ratio and multiplication factor. Base unit, reserve ratio and multiplication factor can be determined by banks, government or a chamber with chosen members based on the final real-world implementation. This method grants the limited supply.
🟦 Stability: Each token is uniquely bonded to its own base-bitcoin. It is stable from the view of bitcoin. The price of bitcoin can be very hectic, but it can be eliminated if the economic operators buy and sell goods for cryptocurrency.
🟦 General acceptability: This factor can come from the El Salvadoran government support. When the idea is purely market-based, this characteristic has its own limitations.
Activities 🏃
🟨 create coins: Automated process based on the four key factors. Bank can initiate the process by depositing bitcoin on its own registered account.
🟨 burn coins: Automated process. This is initiated by the bank to transfer coins into our master account.
🟨 transaction: Core function that consumes various real-life events or workflows for example buying goods, sending coins from one account to another, loaning or investing coins.
🟨 deposit swap: Banks can change the base bitcoin of any coin with a deposit swap. In this case the attributes of related coins will be changed automatically.
🟨 bank swap: Changing the issuer bank of any coin. This process is useful when a merge or fusion happens between banks. The attribute-entry of the old entity will be replaced with the new one.
🟨 register: Banks should register themselves and their own bitcoin accounts. Users should register with any bank.
🟨 invitation: Banks can send invite links to users to push on the user registration process.
🟨 set fee: Banks can set unique transaction fee
Biggest benefits for different target groups ❤
End users (customers of banks) 🧑
🧡 easy-to-use (cash-like usage)
🧡 safer than holding a wallet with fiat currency
Merchants 🏪
💛 instant transactions
💛 cheap transaction fee
Banks 🏦
💚 cheap to create and maintain
💚 no need to build new infrastructure
💚 easy to create
El Salvador 🇸🇻
💙 stable token
💙 can satisfy the demand for spendable currencies
💙 boost economy
Business Model Canvas 🈺
Key Partners 🧑💼
🟩 Bitcoin Headquarter
🟩 RSK
🟩 API3
🟩 Internet Service Provider
🟩 El Salvadoran Government
🟩 Ministry of Finance
🟩 Ministry of Economy
Key Activities 🏃
🟩 create coins
🟩 burn coins
🟩 transaction
🟩 deposit swap
🟩 bank swap
🟩 register
🟩 invitation
🟩 set fee
Key Resources ⛏
🟩 bitcoin blockchain
🟩 host blockchain
🟩 smart contracts
🟩 servers
Value Propositions ❤
🟩 cheap to establish and maintain
🟩 having all characteristics of money
🟩 coin creation process is highly customizable
🟩 can cooperate with the El Salvadoran government
Customer Relationships 🛎
🟩 self-service
🟩 automated services
🟩 assistance
Channels 🏧
🟩 printed-out cash-like format
🟩 checkbook
🟩 web app
🟩 mobile app
Customer Segments 💠
🟩 old-fashioned banks
🟩 neobanks
🟩 end-users
🟩 merchants
Cost Structure ➖
🟩 deploying and maintaining smart contracts
🟩 server costs
🟩 transaction cost of creating and burning coins
🟩 internet service
🟩 salary
Revenue Streams ➕
🟩 registration fee
🟩 transaction fee
🟩 swap fees
🟩 assistance
Value Proposition Canvas ❤
Customer Profile 🧑
Customer Jobs 💪
🏦 A bank provides financial services like debit card, money transfer, money changing, loans, investments for the end users.
Pains 😭
💲 The available market for banks is narrow since 70% of Salvadorans are unbanked. A lot of people rely on money from abroad. Bitcoin is a legal tender from september 2021. Providing financial services in cryptocurrency is hard for an old-fashioned bank. Communicating directly with blockchains from the bank’s server means a high security risk. El Salvador does not have its own money, the legal tenders are USD and bitcoin.
Gains 🙂
🏧 Banks get new, bitcoin-bonded coins with all characteristics of a fiat currency. They can allocate these coins as deposits or as loans. MNext coins are made by a multiplication process. Banks do not have to build expensive infrastructure, like POS terminals and ATM machines since transactions are validated by the MNext servers. There is no security issue or risks on the bank side, because they do not have to communicate directly with blockchains.
Value Proposition ❤
Our Product/Service 💎
✅ MNext is a token community platform for banks and end users with online and offline payment solutions and coin multiplication techniques to provide a cutting edge monetary system. Tokens are unified and bitcoin-bonded with all characteristics of a fiat currency.
Gain Creators 🌞
🏗 New tokens satisfy the demand for spendable currency. MNext provides the necessary infrastructure for handling transactions. There are different forms for tokens from paper based till electronic based form to fit for the users need as much as possible.
Pain relievers 💡
🧑🏭 MNext handles the whole process from creating coins through transaction management till burning coins to save money for banks. Banks can get new resources by using our MNext coins.
How we built it 👣
The building process of MNext consists of the following steps:
Create data model to satisfy the needs
Create constants to help state and entity handling
Create master contract to ensure the maintenance of the system
Create non-master base contract as collection of top level user functions
Implement infrastructure inversion: in fact it means to implement functions that covers the key use cases
🧠 The steps above are made on two levels. We discussed what to realize and we made different documentations and plans about the implementation. We implemented our decisions into solidity code. Some of our decisions are already implemented, some others still need to get implemented.
⌛ There are some key functions which can be implemented only at the moment when we can finalize the infrastructure to maintain MNext. One of the most important functions are the bitcoin gateway related ones.
Challenges we ran into 🤔
❎ The most important challenge of our smart contract is the limitation of the solidity stack in case of commonly configured EVM services. However we tried to build an optimized code, there are a lot of security checks to ensure the highest level of security especially against parallel calls and the use of non-existing accounts. At the end we decreased the number of checks. This light version of the MNextMaster contract is still very secure however we had to keep up some of the desirable level of security. In the production ready version of the system a hard calculation and further optimization should happen to decide about the process of different checks and lockings.
Accomplishments that we're proud of 🤩
🛸 We built this idea from zero during this Bitcoin Bankathon.
💣 We succeeded in an infrastructure inversion from old-world to cutting-edge.
What we learned 🤓
🔨 We learned how to build bitcoin-based smart contracts.
🧲 We learned a lot from the concepts and solution designs of the RSK network.
🔗 We got further inspiration from the Open Bank Data project to implement more data handling, data collection and data sharing to make a firm ground for future-proof, advanced solutions. We implemented the use of API links. Though we didn’t have enough time to describe the expected API standards, we can use their concepts to step forward in this field.
What's next for MNext 🚀
💕 We have a lot of ideas on how to build our project further. Our biggest goal is to realize this project. We are technically capable of that, but we need to make cooperation with Salvadoran banks or the Salvadoran government. So the first steps will be looking for potential partners and cooperation or maybe an incubation program.
🪙 In the short term we want to add new features like ContainerToken and SpecialToken. First one is a special container that collects unique tokens to help to handle coins easier. SpecialToken is like a gift-card. It contains a note attribute that can fill in with a personalized message.
📐 Since our project can work not only in El Salvador but in other countries as well, there may occur a need to merge coins from different countries. To have the ability to achieve this task, we implement a token swap function into our code in the long term.
How to use 📜
🔦 There are two ways to try out MNext.
If you have RSK Testnet tokens you can use the address
0x3Ad64B7087e39ffa18a9B27ad4dd1B61b7c283d1to try out the smart contract.If you want to try out root functions as well you can deploy the contract from the GitHub repository. For the RSK network you have to deploy
MNextMasterfrom the fileMNextMasterLight.solto avoid errors about stack depth. You also need the fileMNextDataModel.solfor structures and constants.
Once you have deployed the smart contract you can test its functions.
There are some mock functions to fuel up the contrac.
🟩 mockCreateCoins(uint256 amount)
With this function you can activate yourself and you can get some coins to test the contract.
🟩 mockCreateUserWithBalance(address user, uint256 amount)
With this function you can activate imaginary users and you can give some coins to them.
🟩 mockTransact(address sender, address target, uint256 amount)
With this function you can transact between two foreign users. If you want to send your coins to other users you can use the non-mock version of transact as well.
😊 If you already activated yourself you can do non-mock transactions with your coins. If you deployed the contract to your own address you can try out root (admin) functions as well.
🧾 To try check functions you have to have two accounts with some coins at least on the account which creates a check.
About the mock UI 🔖
📱 Our User Interface is just a mock at the moment. It shows key concepts of our idea and it also has some additional information like an introduction for an imaginary future user. The mock UI contains the 3 most basic screens and potential forward to functional screens. It is important to mention that this mock UI is just a potential version of the in-production service. There are a lot of possibilities to add functions and design depending on the end-user needs.
💹 Since our smart contracts can be easily subclassed there is endless potential for additional smart services.


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