CapitalOne-based Cryptocurrency Exchange
This is a design for an open source, fully automated cryptocurrency exchange.
It uses a CapitalOne bank account to automate the transfer of US Dollars to another customer's CapitalOne bank account after cryptocurrency is recieved or sent.
Actors
- Bank Account (CapitalOne) - A CapitalOne bank account that we have API access to, allowing us to transfer money to and from customers with a wholly automated application.
- Exchange - The authority in control of the exchange's own Bank Account.
- Buyer - The user who wants to trade one currency for another, either Cryptocurrency to USD, or USD to Cryptocurrency.
- Bounced - When people say that a check has "bounced", they mean that the amount written exceeds the amount of money actually in the buyer's bank account.
- Pegged Exchange Rate - The cryptocurrency is sold at an arbitrary value that is not tracking current market rates. (e.g. $1000 when the current market price is fluctuating around $960 and $1100)
Systems
- Exchange Server - The Exchange server performs all communications with the CapitalOne API, and any transfers of cryptocurrency. It also handles user accounts.
- Client-side App - The Client side app allows the user to enter their information, then conduct sale or purchase actions with the exchange server.
USD to Cryptocurrency
- The Exchange offers cryptocurrency for sale at current market rates (obtained from a cryptocurrency price tracker), or a pegged exchange rate.
- The Buyer registers an account on the Exchange and adds their bank transfer information and cryptocurrency wallet address.
- The Buyer then decides to purchase a certain amount of cryptocurrency at the stated rates.
- The Buyer initiates the purchase and initiates a transfer of the requested amount of USD from their bank account. The CapitalOne API is used by our app to accomplish this.
- The bank transfer may take 2-3 days to confirm. We use the CapitalOne API see whether the transfer has either cleared or bounced.
- Once the requested amount of USD has been delivered as verified by the CapitalOne API, the Exchange sends the corresponding amount of Cryptocurrency to the Buyer's address.
- The buyer receives the cryptocurrency after 3 confirmations. Thus the sale is complete.
Cryptocurrency to USD
- The Exchange offers USD for Cryptocurrency exchange at current market rates (obtained from a cryptocurrency price tracker), or a pegged exchange rate.
- The Buyer registers an account on the Exchange and adds their bank transfer information.
- The Buyer then decides to exchange a certain amount of cryptocurrency for USD at the stated rates.
- The Buyer initiates the purchase and sends the requested amount of cryptocurrency to our address.
- The cryptocurrency is sent and the Exchange awaits 3 confirmations.
- Once the requested amount of cryptocurrency arrives with 3 confirmations, the Exchange uses the CapitalOne API to transfer the requested amount of USD from our bank account to the Buyer's.
- The bank transfer then clears within 2-3 days. Thus the sale is complete.
Built With
- api
- capital
- capital-one
- nessie
- one
- python
Log in or sign up for Devpost to join the conversation.