Integrating Traditional Banking with Blockchain: A Journey

Over the past two years, MultiPayer has been tirelessly innovating to create financial tools for web3 organizations. The most recent development on this journey is the introduction of Fiat EUR accounts, marking a significant leap in merging traditional banking structures with Decentralized Finance.

Making the switch from cryptocurrencies to fiat currencies, particularly EUR, has been a complicated process, often spanning weeks or even months. While our team at MultiPayer has been fortunate enough to have some fiat in a bank account, we understand the struggle that bootstrapped projects face, especially those generating income primarily in crypto.

We’ve spoken to countless organizations about their strategies for integrating fiat and crypto funds. Some have described complex technical procedures for managing crypto transactions, which prompted us to wonder if there was a more straightforward, secure, and user-friendly approach. Thus, we decided to share our solution for this complex issue.

1/ Developing a Business App Incorporating Smart Contract Wallets

We designed a business application with multi-signature wallets to secure users’ assets. These wallets are essentially smart contracts that lock crypto assets on-chain. They operate based on a predefined majority of “owners” approving a transaction before it is dispatched. There is also an option to encode spending limits and other restrictions into the wallet’s approval rules.

Security and convenience were our main priorities while building this application. Multi-signature wallets, in our opinion, strike the perfect balance:

  • They are based on smart contracts, facilitating seamless integration with Decentralized Finance.
  • They are software-based, requiring only a stable internet connection and a laptop for usage.
  • They can be effortlessly integrated into a front-end.
  • They offer self-custodial benefits, meaning users can exercise shared ownership and control over a company’s funds.

To avoid intimidating users with complex terms like key management or gas fees, we aimed to simplify the user experience as much as possible. For instance, we chose to manage network fees and allowed users to pay in whatever cryptocurrency they were using for their transactions.

However, our journey was not without challenges. The lack of standard signing methods in the web3 space meant we had to support numerous browser wallets to enable users to make or approve payments. Another issue we faced was nonce management, which turned out to be very intricate and bug-prone due to the open-source nature of smart contract wallets.

2/ Consolidating On-Chain and Off-Chain Data

For our application to function effectively, we needed data from various sources, both on-chain (like transaction status from multiple blockchain networks) and off-chain (like spot prices). It was crucial that this data be presented in a way that was easily digestible for both crypto-savvy users and accountants. Hence, we created a DB pattern that could manage various types of transactions, ranging from debit card transactions to complex DeFi transactions.

However, collecting data was a task fraught with difficulties, such as handling wallet transaction rate limits due to API request restrictions from partners and third parties. To tackle this, we developed a throttling mechanism to manage the application’s throughput to downstream services and synchronize data efficiently.

3/ Bridging Decentralized and Traditional Finances

The process of converting cryptocurrencies into fiat currencies, particularly EUR, is quite strenuous and can take a long time. The step-by-step process generally involves:

  • Getting approval to open a business account on an exchange (up to 6 months).
  • Transferring funds from a company wallet to the exchange wallet.
  • Converting crypto into EUR.
  • Withdrawing funds to an external bank account approved by the exchange compliance team (this can take 1-5 days).
  • Spending the funds via corporate cards, bank transfers, etc.