# Exchange or Remittance Service
### Description and scope
We will build a bitcoin remittance service that with the following features:
- Authentication: Users will signup with their email and usernames
- Wallet: Users will be able to create HD wallets that allow them to
- create addresses,
- transactions,
- send and receive bitcoins.
- The wallet will also display the total BTC owned by the user and
- the various addresses.
- Convertion rates: Display the BTC to local fiat rates that are updated
- Trading: Users should be able to BTC with supported fiat currency
- Fiat Withdrawal: Users should be able to withdraw supported fiat
> [name=Enigbe OS ]
> How do we intend to address the CBN policy regarding cryptocurrencies? Should we consider a P2P exchange?
### Things that won't be covered
- User interface: The app will be purely `API` without a user interface
### Components
- Rust programming language
- Bitcoin core
- Third party APIs such as Blockstream for fetching address balance, rates, and a banking API for fiat withdrawal
- Exchange API (binance or coinbase) for selling `BTC to fiat`
### MVP Status
- We will consider the service an MVP when users can be able to signup and perform all of the above stated functionalities.