I’m a software dev and founder of Hotels.ng and HNG Internship. I also dabble in embedded systems and hardware projects.

Decentralized, global Fiat Transfers using Crypto

Finishing a Project

One of the best things crypto could achieve is this:

I go on a website in Nigeria, and I specify that I want to send 100€ to Germany. The price is displayed - ₦450,000. I pay, specify the bank target account, and within 30 minutes, the money has arrived in a German bank account. The entire process is mostly decentralised, and uses crypto.

This does not work right now for all country pairs in the world. There are various regulatory and technical challenges that make this very difficult to work everywhere.

This proposal is to explain how this could be possible using crypto, while staying fully compliant with the law in all countries.

We have two users: Kunle in Nigeria (with a Nigerian bank account) and Helmut in Germany (with a German bank account). We want seamless transfer of money between them using crypto, but they should not need to know anything about crypto.

We have two exchanges: NigeriaExchange and GermanyExchange, both locally registered companies, and both of which have legal bank accounts (with which to settle customers). Both fulfill all local KYC requirements.

Ideal Situation

Helmut wants to send money to Kunle.

  1. GermanyExchange displays the exchange rate, and receives Euro into its bank account from Helmut. This amount is worth 10 Crypto.
  2. It sends 10 Crypto to NigeriaExchange. NigeriaExchange, immediately it confirms, pays Kunle in Naira, and the transaction is done.

Fiat Transfer with Crypto


What if Nigeria exchange does not send the Naira to the the end user? It could receive money, and then vanish one day. It is not feasible that every single exchange vets every other exchange in the world to be sure they are trustworthy.


NigeriaExchange capitalises itself by buying Crypto on the open market. It then sends this Crypto to a Custodian as a deposit. The Custodian can confirm to GermanyExchange that NigeriaExchange has 300 Crypto in deposit. GermanyExchange can securely send 10 Crypto to the NigeriaExchange, and while the recipient has not confirmed, 10 of the Crypto NigeriaExchange is holding with the Custodian are frozen.


Fiat Transfer with Crypto

(Both NigeriaExchange and GermanyExchange have both previously applied for a ‘license’ from the Custodian, and are ‘known’ companies. Both companies have purchased and deposited Crypto with the Custodian.)

  • GermanyExchange sends a notification to the Custodian that it will send 10 Crypto to NigeriaExchange
  • The Custodian gives it the go-ahead, telling it the current balance of Crypto that NigeriaExchange has with it. The Custodian then freezes 10 Crypto out of the deposit that NigeriaExchange has with it. The Custodian sends a key that GermanExchange can use to retrieve those coins if they are not unfrozen within a certain time-out
  • GermanyExchange sends 10 Crypto to NigeriaExchange
  • GermanyExchange sends a notification to NigeriaExchange that 10 Crypto are on the way, and specifies final recipient bank account
  • NigeriaExchange polls for the Crypto. At some point, it receives the Crypto. It informs GermanyExchange and the Custodian that it is with the Crypto
  • GermanyExchange waits for confirmation from the user that the funds have arrived. When this happens it informs the Custodian that the transaction was successful, and the 10 Crypto are unfrozen. They are now available again to NigeriaExchange to transact with
  • If there is no user confirmation or no reaction from GermanyExchange, after the time-out expires, the funds automatically get unfrozen and can be used by NigeriaExchange again
  • GermanyExchange can also notify the Custodian that the transaction was not fulfilled by NigeriaExchange. In this case, the funds remain frozen, and an arbitrator is brought in to resolve the dispute. The arbitrator is paid from the frozen funds
  • Any exchange which crosses a certain threshhold of arbitrations is detrusted by the custodian and cannot transact anymore

Setup of the Custodian:

The Custodian is a trusted entity (like the Coin Network itself) that has the ability to freeze and unfreeze Crypto, but it does not have the ability to transfer Crypto. It stores the Crypto it has under management in a public wallet, so they can be independently verified.


  • If any of the local exchanges receives local money but does not send the Crypto, this is sorted out in the local courts. Because both parties are local, this is easy to do. A German can easily take a German Exchange to court, but will find it very difficult to take a Nigerian Exchange to court
  • KYC and regulatory compliance is set up by each local exchange independently, and the custodian does not care about this

Last Modified: Jan 1, 2021