US10255600B2 — Cryptocurrency offline vault storage system (Part 1 of 2)
Document text
Research, not advice. Part of the Bitcoin research archive (October 2026). Claims labelled unverified, contested or fringe are reported, not endorsed; statuses of bills and rules are as of the date checked. Government, court and patent records are public domain; the research notes are CC BY 4.0.
US010255600B2
(12) United States Patent (10) Patent No.: US 10 ,255 ,600 B2
Ronca et al. (45) Date of Patent: Apr . 9 , 2019
(54) CRYPTOCURRENCY OFFLINE VAULT (2013 .01); H04L 41/0816 (2013.01); H04L
STORAGE SYSTEM 63 /0428 (2013 .01 ); H04L 67/ 12 (2013.01) ;
H04L 2463/ 102 (2013 .01)
(71 ) Applicant: Bank of America Corporation , (58 ) Field of Classification Search
Charlotte , NC (US) None
See application file for complete search history.
(72 ) Inventors: James G . Ronca , Decatur , GA (US); ( 56 ) References Cited
Joseph B . Castinado , Northglenn , CO
(US ); Heather Dolan , Sarasota , FL U .S . PATENT DOCUMENTS
(US ); Thomas E . Durbin , Waynesville ,
NC (US) 6 ,950 ,523 B1* 9 /2005 Brickell ................ H04L 9 /3226
380 /277
(73 ) Assignee : Bank of America Corporation , 2009/0106561 A1 * 4 / 2009 G06F 21/62
713 / 193
Charlotte , NC (US)
(Continued )
( * ) Notice: Subject to any disclaimer, the term of this
patent is extended or adjusted under 35 OTHER PUBLICATIONS
U .S . C . 154 (b ) by 1111 days .
U .S . Appl. No. 14 /305,579 , filed Jun. 16 , 2014 , Ronca , et al.
(21) Appl. No.: 14/306,158 (Continued )
(22 ) Filed : Jun. 16 , 2014 Primary Examiner — John W Hayes
Assistant Examiner — Jason B Fenstermacher
(65 ) Prior Publication Data (74 ) Attorney, Agent, or Firm — Baker Botts L .L .P.
US 2015 /0365283 A1 Dec . 17, 2015 (57) ABSTRACT
(51) Int . Cl. A system includes a memory that may store a customer
G06Q 20 / 36 ( 2012 . 01) account associated with a customer and a processor com
G060 20 /38 (2012.01) municatively coupled to the memory . The processor is able
H04L 12 /24 ( 2006 . 01) to receive a request to deposit a quantity of cryptocurrency
G06Q 20 / 06 ( 2012 .01 ) into the customer account and associate the quantity of
G060 20 / 10 (2012 .01) cryptocurrency with the customer account. The processor is
H04L 29/08 ( 2006 .01 ) also able to deposit the quantity of cryptocurrency into a
G060 20 /40 ( 2012 .01 ) vault connected to a network and determine a total quantity
H04L 29 /06 (2006 .01 ) of cryptocurrency deposited into the vault. The processor
(52 ) U .S . CI. may also , in response to determining the total quantity of
CPC ....... GO6Q 20 / 3829 (2013.01 ); G06Q 20 /065 cryptocurrency deposited into the vault exceeds a threshold ,
(2013 . 01 ); G060 20/ 10 (2013.01); G060 facilitate the disconnection of the vault from the network .
20 /36 (2013 .01); G06Q 20/381 ( 2013 .01) ;
G06Q 20 /4016 ( 2013 .01 ); G06Q 20 /4037 15 Claims, 16 Drawing Sheets
Start
1202
Receive a request to
deposit a quantity of
Cryptocurrency into
a user account
_ 1204
Associate the
quantity of
cryptocurrency with
the user account
1206
Deposit the quantity
of cryptocurrency
into a vault comected
to a network
Does the 1208
total quantity of
cryptocurrency in the No End
Vault exceed a
threshold ?
Ves
c1210
Disconnect
the vault 1200
US 10 ,Page
255,2600 B2
(56) References Cited
U . S . PATENT DOCUMENTS
2015 /0271183 A1 * 9/ 2015 MacGregor ........... H04L 63/ 102
726 /4
2015/0287026 A1* 10/2015 Yang ............... G06Q 20 / 3678
705 /69
2015/0310424 A1 * 10/2015 Myers ............. G06Q 20 /3678
705 /69
2015 /0332256 A1 * 11/ 2015 Minor ................ G06Q 20 / 3678
705 /69
2015/0356555 A1* 12/2015 Pennanen ............. GO6Q70520//7106
OTHER PUBLICATIONS
U .S . Appl. No. 14 / 305 ,783 , filed Jun . 16 , 2014 , Ronca , et al.
U .S . Appl. No. 14 / 305,797, filed Jun . 16 , 2014 , Ronca , et al .
U .S . Appl. No. 14 /305, 916 , filed Jun . 16 , 2014 , Ronca , et al.
U . S . Appl. No . 14 / 305 ,893 , filed Jun . 16 , 2014 , Ronca, et al.
U . S . Appl. No . 14 /305 ,054 , filed Jun . 16 , 2014 , Ronca , et al.
U .S . Appl. No. 14 /305 ,981, filed Jun . 16 , 2014 , Ronca , et al.
U . S . Appl. No . 14 /305 ,928 , filed Jun . 16 , 2014 , Ronca , et al.
U . S . Appl. No. 14 / 306 , 110 , filed Jun. 16 , 2014 , Ronca , et al.
* cited by examiner
U.S.Patent moramo ometal
U . S . Patent Apr. 9 , 2019
-
1405
Sheet 1 of 16 US 10 , 255,600 B2
140a Exchange P a y m
7170e n t V i r t u a l a c o u n t s 172
(
1600
-
Exchange -
116
Data Center 160a
116
-
(
116 Data Center
116
150
<
Enterprise 1 620
TPhairtdy Server
Network 120
1 60 E n t e r p r i s e C r y p t o c u r e n c y server FIG
1
.
f176
GUI 114
110
Dev110ice EECnrytpetrocpurriesnecyn1viro0nment
111
Customer 102
U . S . Patent Apr. 9 , 2019 Sheet 2 of 16 US 10 ,255 ,600 B2
- 201 - 202
wwwwwwwwwwwwwww Transformation
Engine 214
Conversion Customer Online
Engine 216 Accounts Vault
203 210
Encoding
Engine 218 Float
Account
204
Transaction
Engine 220
Aggregation
Engine 222
Calculation Transactions
Engine 224 208
Cryptocurrency P2P
Risk Detection Engine 238
Engine 232
Exchange Validation Offline
Engine 328 Engine 234 Vault 212
Alert Vault
Engine 230 Engine 236
Enterprise Cryptocurrency Server 130
FIG . 2
U . S . Patent Apr . 9, 2019 Sheet 3 of 16 US 10 ,255 ,600 B2
300
COMPUTER SYSTEM - - - -
COMPUTER SYSTEM
312 -
302
PROCESSOR
MEMORY 2 * 304
306
STORAGE
I/O INTERFACE
COMMUNICATION t - 310
INTERFACE
FIG . 3
U . S . Patent Apr. 9 , 2019 Sheet 4 of 16 US 10 ,255 ,600 B2
START
c402
RECEIVE CUSTOMER REQUEST FOR CURRENCY EXCHANGE
( 404
DETERMINE CURRENT EXCHANGE RATES
7406
DETERMINE OPTIMAL EXCHANGE RATE
7408
SELECT OPTIMAL EXCHANGE RATE
7410
DETERMINE FIRST AMOUNT OF FIRST CURRENCY
7412
ASSOCIATE FIRST AMOUNT OF FIRST CURRENCY
WITH CUSTOMER ACCOUNT
= 414
TRANSFER FIRST AMOUNT OF FIRST CURRENCY INTO
FIRST FLOAT ACCOUNT ASSOCIATED WITH FIRST CURRENCY
416
DETERMINE SECOND AMOUNT OF SECOND CURRENCY
7 418
ASSOCIATE SECOND AMOUNT OF SECOND CURRENCYWITH
SECOND FLOAT ACCOUNT ASSOCIATED WITH SECOND CURRENCY
.
AMOUNT OF r 420
NO FUNDS IN SECOND FLOAT ACCOUNT BELOW
A THRESHOLD ?
[ 422
INITIATE PURCHASE OF A QUANTITY OF SECOND CURRENCY LYON
FROM A CURRENCY EXCHANGE
DOFAIL
< 424
TRANSFER QUANTITY OF SECOND CURRENCY INTO SECOND
VO 1
MILIVU
.
FLOAT ACCOUNT
426
TRANSFER SECOND AMOUNT OF SECOND CURRENCY TO CUSTOMER
C END FIG.4
U . S . Patent Apr. 9 , 2019 Sheet 5 of 16 US 10 ,255,600 B2
START
< 502
RECEIVE ELECTRONIC REQUEST FOR CRYPTOCURRENCY
CONVERSION
7504
RETRIEVE PRICE DATA ASSOCIATED WITH FIRST AND SECOND CURRENCIES
?? c506
CONVERSION OPTIMAL ?
YEST
DETERMINE EXCHANGE RATES ASSOCIATED WITH CONVERTING
5508
FIRST CURRENCY INTO SECOND CURRENCY
510
DETERMINE OPTIMAL EXCHANGE RATE
512
INITIATE CONVERTING FIRST CURRENCY INTO SECOND
CURRENCY
END
FIG . 5
U . S . Patent Apr. 9 , 2019 Sheet 6 of 16 US 10 , 255 ,600 B2
START
5602
RECEIVE REQUEST TO DEPOSIT AMOUNT OF CRYPTOCURRENCY
2604
DETERMINE PUBLIC KEY ASSOCIATED WITH CUSTOMER ACCOUNT
7606
RECEIVE AMOUNT OF CRYPTOCURRENCY
608
ATELY EQUIVALENT TO AMOUNT
DETERMINE VALUE APPROXIMATELY EQUIVALENT TO AMOUNT OF
CRYPTOCURRENCY
-
7610
ASSOCIATE VALUE WITH CUSTOMER ACCOUNT
5612
AGGREGATE AMOUNT OF CRYPTOCURRENCY WITH
CRYPTOCURRENCY IN ENTERPRISE ACCOUNT
- 614
FACILITATE SECURING PUBLIC KEY IN ENTERPRISE ACCOUNT
NO 7616
PUBLIC KEY SECURE ?
YES
YES, COMMUNICATE CONFIRMATION CONFIRMING PUBLIC
KEY SECURE TO CUSTOMER
NO, END
END
FIG . 6
U . S . Patent Apr. 9 , 2019 Sheet 7 of 16 US 10 , 255 ,600 B2
START
[ 702
ENCODE CRYPTOCURRENCY INFORMATION ASSOCIATED
WITH CUSTOMER ACCOUNT ONTO PAYMENT INSTRUMENT
( 704
RECEIVE REQUEST FOR CRYPTOCURRENCY TRANSACTION
706
DETERMINE CRYPTOCURRENCY INFORMATION ASSOCIATED
WITH CUSTOMER ACCOUNT
< 708
|DETERMINE CRYPTOCURRENCY INFORMATION ASSOCIATED
WITH RECIPIENT
CUSTOMER ACCOUNT C10
YES COMPRISE MINIMUM AMOUNT OF
CRYPTOCURRENCY FOR CRYPTOCURRENCY
TRANSACTION ?
NO 712
INITIATE PURCHASE OF A QUANTITY OF CRYPTOCURRENCY
NDIV
FROM CRYPTOCURRENCY EXCHANGE
- 714
TRANSFER AT LEAST A PORTION OF THE QUANTITY OF
CRYPTOCURRENCY TO CUSTOMER ACCOUNT
716
ASSOCIATE FIRST AMOUNT OF CRYPTOCURRENCYWITH
CUSTOMER ACCOUNT
- 718
INITIATETRANSFER OF FIRST
NITIATI
VIAL
AMOUNT OF CRYPTOCURRENCY
TO RECIPIENT
VD
C END D
FIG . 7
U . S . Patent Apr. 9 , 2019 Sheet 8 of 16 US 10 ,255 ,600 B2
Start
( 802
Store a plurality of user profiles
7804
Receive request from user to perform cryptocurrency transaction
with third party
C 806
Retrieve block chain information associated with cryptocurrency
transaction
( 808
Determine at least one block chain cryptoidentifier from the
block chain information
10
Compare the block chain cryptoidentifier and the stored
cryptoidentifier from user profile
Determine 812
No whether the block chain cryptoidentifier
and the stored cryptoidentifier associated with one
of the plurality of user profiles
match
Yes
- 814
No Determine
whether one of the plurality of user profiles is
associated with user or
third party
Yes ( 816
Calculate a first factor score based at least in part upon the
transaction history of the user
7818
Calculate a second factor score based at least in par
UULII al UDOTI
the user IP address
FIG . 8
U . S . Patent Apr . 9, 2019 Sheet 9 of 16 US 10 ,255 ,600 B2
-
820
Calculate a risk score for the user profile
Determine 822
NO whether cryptocurrency transaction
is suspicious based at least in part
upon the user profile
Yes 824
Communicate an alert to the enterprise that the cryptocurrency
transaction is suspicious
[ 826
Communicate an alert to the user that cryptocurrency
transaction is suspicious
End
FIG . 8
(Cont'd)
U . S . Patent Apr. 9 , 2019 Sheet 10 of 16 US 10 ,255 ,600 B2
Start
Receive request from customer to perform cryptocurrency
6902
transaction with third party
C904
Retrieve block chain information associated with cryptocurrency transaction
7906
Identify block chain factor based on block chain information
Determine - 908
NO whether block chain factor includes customer
IP address ?
Yes 6910
Determine location associated with customer IP address
- 7912
Calculate factor score for customer IP address
Determine ( 914 No
whether block chain factors include third party
Yes
Determine location associated with third party IP address
( 918
Calculate factor score for third party IP address based on location
associated with third party IP address
Determine r920
whether block chain factors
key ?
include third party public
Yes 922
Retrieve transaction history associated with third party public key
r924
Review transaction history associated with third party public key
7926
Calculate factor score for third party public key
FIG . 9
U . S . Patent Apr. 9 , 2019 Sheet 11 of 16 US 10 ,255 ,600 B2
928
Determine a factor score for other block chain factors
7930
Determine amount of cryptocurrency associated with cryptocurrency transaction
r932
Calculate risk score for performing cryptocurrency transaction
Determine 934
No - whether the transaction is approved based on the risk
score ?
Yes 936
Communicate to customer and third party that transaction is approved
7938
Communicate to customer and third party that transaction is not approved
Determine ( 940
No whether the risk score indicates suspicious activity by the
third party ?
Yes 942
Communicate a notification to the customer that the risk score indicates
suspicious activity by the third party
End
FIG . 9
(Cont'd )
U . S . Patent Apr. 9 , 2019 Sheet 12 of 16 US 10 , 255 ,600 B2
C Start c1002
Store customer profile
< 1004
Receive request to perform cryptocurrency transaction
C1006
Determine amount of cryptocurrency involved in cryptocurrency
transaction
< 1008
Determine type of cryptocurrency involved in cryptocurrency transaction
< 1010
Calculate a first factor score based at least in part upon the transaction
history of the customer
< 1012
Calculate a second factor score based at least in part upon the
customer IP address
r1014
Determine trustworthiness of customer based on customer profile
< 1016
Calculate risk score for cryptocurrency transaction
( 1018
Compare risk score to at least one threshold
< 1020
Determine number of required validations to confirm cryptocurrency
transaction
7 1022
Receive number of validations from plurality ofminers
1024
Compare number of received validations to number ofrequired validations|
FIG . 10
U . S . Patent Apr. 9 , 2019 Sheet 13 of 16 US 10 , 255 ,600 B2
Determine 1026
whether number of received validations complies with number
of required validations?
Yes c 1028
Send notification to third party that cryptocurrency transaction
is confirmed
< 1030
Send notification to customer and third party that cryptocurrency
transaction is not confirmed
( 1032
Communicate request to customer to retransmit cryptocurrency
End
FIG . 10
(Cont'd )
U .S . Patent Apr. 9 , 2019 Sheet 14 of 16 US 10 , 255,600 B2
Start
C1102
Receive an
electronic request to
store a private key
71104 1108
Generate a first Apply a r 1106 Apply hash
vault key based at hash algorithm Yes algorithm to first
least in part upon to the first vault vault key
the private key
71110 - 1114
Generate a second Apply a r1112
hash algorithm to Yes Apply hash
vault key based at algorithm to second
least in part upon the second vault vault key
the private key key?
1116
Facilitate the
storage of the first
vault key at a first
data center
1118
Facilitate the
storage of the End
second vault key at
a second data center 1100
FIG . 11
U . S . Patent Apr. 9 , 2019 Sheet 15 of 16 | US 10,255 ,600 B2
Start
1202
Receive a request to
deposit a quantity of
cryptocurrency into
a useraccount
F1204
Associate the
quantity of
cryptocurrency with
the user account
r1206
Deposit the quantity
ofcryptocurrency
into a vault connected
to a network
(Doesthe \ 1208
total quantity of No
cryptocurrency in the
vault exceed a
threshold ?
Yes
- 1210
Disconnect
1200
=
.
FIG . 2
U . S . Patent Apr. 9 , 2019 Sheet 16 of 16 US 10 , 255 ,600 B2
Start
( 1302
Receive
communication
from an electronic
payment service
71304
Determine that the
user initiated a
request for a
financial transaction
configured to
transfer an amount
of currency
71306
Validate the
financial transaction
based atleast upon
data received from 1300
the electronic
payment service End
1308
Determine the user
account is - 1316
associated with the Transfer the
virtual account quantity of
based at least upon cryptocurrency
data received from
the electronic
paymentservice
1310
Doesthe V 1312 ( 1314
Determine a quantity quantity of Cryplocurrency Purchase the deficit
of cryptocurrency exceed a totalquantity Yes of cryptocurrency
equivalent to the associated with the user from a cryptocurrency
amount ofcurrency exchange
account?
FIG . 13
US 10 , 255 ,600 B2
CRYPTOCURRENCY OFFLINE VAULT sor is also operable to determine whether one of the plurality
STORAGE SYSTEM of user profiles is associated with the user based at least in
part upon the retrieved block chain information and at least
TECHNICAL FIELD one stored cryptoidentifier associated with one of the plu
5 rality of user profiles . The process may be further operable
stocurrency stor
This invention relates generally to cryptocurrency stor to determine whether one of the plurality of user profiles is
age, and more specifically, to a cryptocurrency offline vault associated with the third party based at least in part upon the
storage system . retrieved block chain information and the at least one stored
cryptoidentifier associated with one of the plurality of user
BACKGROUND 10 profiles and determine whether the cryptocurrency transac
tion is suspicious based at least in part upon the associated
Enterprisesmay handle a large number of financial trans user profile . Finally , the processor is operable to communi
actions on a daily basis. As technology advances , financial cate an alert to the enterprise regarding whether the cryp
transactions involving cryptocurrency have become more tocurrency transaction is suspicious.
common . For some enterprises, it may be desirable to 15 In some embodiments , a system may include a memory
securely store cryptocurrency .
request from a customer to perform a cryptocurrency trans
SUMMARY action with a third party and retrieve block chain informa
tion associated with the cryptocurrency transaction . The
According to embodiments of the present disclosure, 20 processor is also operable to determine the amount of
disadvantages and problems associated with previous enter - cryptocurrency associated with the cryptocurrency transac
prise environments . tion and calculate a risk score for performing the crypto
In at least one embodiment, a system may include a currency transaction based at least in part upon the block
memory and processor. The processor may be configured to chain information and the amount of cryptocurrency . The
receive an electronic request to store a private key associated 25 processor may be further operable to determine whether the
with a cryptocurrency . The processor may also be configured transaction is approved based at least in part on the risk score
to generate a first vault key based at least in part upon the and communicate to the customer and the third party
private key and generate a second vault key based at least in whether the transaction is approved . Finally , the processor
part upon the private key . The processor may also be able to may be operable to determine whether the risk score indi
facilitate the storage of the first vault key at a first data center 30 cates suspicious activity by the third party and communicate
and facilitate the storage of the second vault key at a second a notification to the customer that the risk score indicates
data center. suspicious activity by the third party .
According to some embodiments , a system includes a According to certain embodiments, a system may include
memory that may store a customer account associated with a memory and a processor. The processor is operable to
a customer and a processor communicatively coupled to the 35 receive a request from the customer to perform a crypto
memory . The processor is able to receive a request to deposit currency transaction with a third party and calculate a risk
a quantity of cryptocurrency into the customer account and score for the cryptocurrency transaction . The processor is
associate the quantity of cryptocurrency with the customer also operable to determine a number of required validations
account. The processor is also able to deposit the quantity of to confirm the cryptocurrency transaction based at least in
cryptocurrency into a vault connected to a network and 40 part upon the risk score . The process may be further operable
determine a total quantity of cryptocurrency deposited into to receive a number of validations from a plurality ofminers
the vault. The processor may also , in response to determin - and compare the number of received validations to the
ing the total quantity of cryptocurrency deposited into the number of required validations. The processor may be
vault exceeds a threshold , facilitate the disconnection of the further operable to determine whether the number of
vault from the network . 45 received validations complies with the number of required
In some embodiments, a system includes a memory and validations . Finally , the processor is operable to send a
a processor coupled to the memory . The processor may notification to the third party that the cryptocurrency trans
communicate with an electronic payment service , the elec action is confirmed or send a notification to the customer and
tronic payment service providing a virtual account associ- the third party that the cryptocurrency transaction is not
ated with the customer and determine that the customer 50 confirmed and communicate a request to the customer to
initiated a request for a financial transaction , the financial retransmit the cryptocurrency associated with the cryptocur
transaction configured to transfer an amount of currency rency transaction .
from the virtual account to a destination . The processor is In certain embodiments, a system includes a memory and
also able to validate the financial transaction based at least a processor. The memory may store a customer account
upon data received from the electronic payment service and 55 associated with a customer, a first float account associated
determine the customer account is associated with the virtual with an enterprise, and a second float account associated
account based at least upon data received from the electronic with the enterprise . The processor may be communicatively
payment service . The processor also may determine a quan - coupled to the memory and may cause the system to receive
tity of cryptocurrency equivalent to the amount of currency, an electronic request for a currency exchange from the
the quantity of cryptocurrency associated with the customer 60 customer and determine a plurality of exchange rates for
account and transfer the quantity of cryptocurrency to the exchanging a first currency for a second currency . The
electronic payment service. processormay also cause the system to determine an optimal
In certain embodiments , a system may include a memory exchange rate . In response to determining the optimal
and a processor. The processor is operable to receive a exchange rate , the processor may cause the system to
request from a user to perform a cryptocurrency transaction 65 determine a first amount of the first currency and associate
with a third party and retrieve block chain information the first amount of the first currency with the customer
associated with the cryptocurrency transaction . The proces account. The processormay also cause the system to transfer
US 10 ,255 ,600 B2
the first amount of the first currency into the first float tion resources consumed by correcting erroneous cryptocur
account and determine a second amount of the second rency transaction after completion .
currency . The processor is further able to associate the Furthermore , in some embodiments, the system is able to
second amount of the second currency with the second float conserve network and computing resources by securely
account and transfer the second amount of the second 5 storing information associated with cryptocurrency and pre
currency to the customer. venting potentialmalicious activity involving such informa
In a further embodiment, a system comprises a memory tion , conserving bandwidth , memory , and computation
operable to store a set of conversion rules. The system also resources .
As another example , in at least one embodiment , energy
comprises a processor that may be communicatively coupled
to the memory and may cause the system to receive onan 10 and power consumption is conserved and security is
increased as certain information may be stored in a crypto
electronic request for a cryptocurrency conversion request currency vault that is eventually taken offline . A further
ing a conversion of a first currency into a second currency, example in some embodiments may be that a system may be
wherein the second currency is a cryptocurrency . The pro put in place that allows the use of a virtual account by a user
cessor may also cause the system to retrieve price data 1515 associated with a customer account at a financial institution
associated with the first and second currencies and deter conserving time, bandwidth , memory, and computational
mine whether the conversion is optimal. In response to resources.
determining the conversion is optimal, the processor may As another example , in certain embodiments , a system is
cause the system to determine a plurality of exchange rates operable to reduce transaction time associated with the
associated with converting the first currency into the second 20 cryptocurrency transaction by determining a number of
currency and determine an optimal exchange rate of the required validations, which may be fewer than the number
plurality of exchange rates. The processor is further able to of validations required by a third party, to confirm the
initiate , essentially simultaneously as the determination that cryptocurrency transaction based at least in part upon the
the conversion is optimal, converting the first currency into risk score , thereby reducing the computational resources and
the second currency. 25 bandwidth consumed by receiving more validations than
In another embodiment, a system includes a memory and necessary . Another technical advantage includes improved
a processor. The memory may store a customer account customer satisfaction by eliminating the need for a customer
associated with a customer and an enterprise account asso - to wait for a third party or third party system to validate a
ciated with an enterprise . The processor may be communi - transaction before completing the transaction .
catively coupled to the memory and may cause the system 30 Additionally , in certain embodiments, the system is able
to receive a request to deposit a first amount of a crypto - to determine whether the cryptocurrency transaction is sus
currency in the customer account from the customer. The picious based on an associated user profile , containing
processor may also cause the system to determine a public information that the system has previous aggregated ,
key associated with the customer account and receive the thereby conserving the bandwidth and computational
first amount of the cryptocurrency . The processor may 35 resources consumed by aggregating the information about
further cause the system to determine a first value approxi the user each time the user request to perform a cryptocur
mately equivalent to the first amount of cryptocurrency and rency transaction . As another example , in certain embodi
associate the first value with the customer account. The ments, the system communicates an alert to the enterprise ,
processor is further able to aggregate the first amount of thereby conserving the computational resources necessary to
cryptocurrency with an aggregated amount of the crypto - 40 perform the cryptocurrency transaction that would be con
currency in the enterprise account and facilitate securing the sumed obtaining enterprise review using less efficient con
public key in the enterprise account. tactmethods. Furthermore, security may be increased for the
In yet another embodiment, a system comprises a memory enterprise because the system automatically alerts the enter
operable to store a customer account associated with a prise of any suspicious transactions, allowing the enterprise
customer and a processor communicatively coupled to the 45 to take preventative action before letting the transaction
memory that may cause the system to encode cryptocur - move forward . Another technical advantage of one embodi
rency information associated with the customer account onto ment includes aggregating information regarding a user' s
a payment instrument. The processor may also cause the past behavior in cryptocurrency transactions in order to
system to receive a request, from the customer using the mitigate the risk of fraud .
payment instrument, for a cryptocurrency transaction , the 50 As another example , in certain embodiments , security
request indicating a first amount of cryptocurrency associ- may be increased for a customer because the customer may
ated with the cryptocurrency transaction . In response to be alerted of suspicious activity of a third party and therefore
receiving the request, the processor may cause the system to choose to not participate in the transaction . Furthermore ,
determine cryptocurrency information associated with the security may be increased for the enterprise because it uses
customer account and determine cryptocurrency information 55 past information about a customer or third party to mitigate
associated with a recipient. The processor may also cause fraud and determine whether to approve the current trans
the system to associate the first amount of cryptocurrency action .
with the customer account. The processor is further able to In certain embodiments , components of the system may
initiate a transfer of the first amount of cryptocurrency to an provide currency exchange rates for converting a currency
account associated with the recipient . 60 into a cryptocurrency (or vice versa ) or one cryptocurrency
Particular embodiments of the present disclosure may into another cryptocurrency, thereby bridging the gap
provide some, none , or all of the following technical advan - between cryptocurrency and fiat currency .
tages. For example, in certain embodiments, the system is In another embodiment, compiling and analyzing infor
able to identify that the number of validations from a mation from various sources of financial data to provide
plurality ofminers is insufficient to confirm the transaction 65 quotes for currency exchange rates reduces the dependency
before completing the requested cryptocurrency transaction , on third party systems and services such as third party
thereby conserving the bandwidth , memory , and computa exchanges .
US 10 , 255 ,600 B2
In yet another embodiment, executing a currency rency exchanges are used by customers, such as customers
exchange may simplify cryptocurrency transactions for cus of financial institutions, to exchange one currency for
tomers of an enterprise by simplifying the purchase and another currency. Some currency exchanges may involve
exchange of currencies and cryptocurrencies and reducing converting one currency into a cryptocurrency such as
the fees associated with doing so . 5 Bitcoin , Litecoin , Ripple , Peercoin , or Dogecoin . To execute
In a further embodiment, executing a requested currency such an exchange , an enterprise may receive payment from
exchange essentially simultaneously as a determination that a customer in a quantity of one currency to exchange for an
the conversion is optimal guarantees a currency exchange at amount of a cryptocurrency equivalent to the received
the current optimal exchange rate .
In some embodiments , storing and monitoring float 10 paymentshortly
from the customer. Essentially simultaneously or
thereafter, the enterprise may convert the first cur
accounts associated with various currencies and cryptocur rency into the cryptocurrency . Alternatively, the enterprise
rencies internally owned by an enterprise negates the need
for customers of the enterprise to use a third - party currency may to convert the first currency into the cryptocurrency
exchange to execute a desired currency exchange , within a window of time.
In another embodiment, components of the system may As another example, deposit accounts at an enterprise ,
aggregate cryptocurrency deposited by customers into an 15 such as a financial institution , are used by customers of the
enterprise account associated with an enterprise , thereby financial institution to deposit funds for safekeeping . Upon
securely storing the customer 's cryptocurrency funds. In deposit, the funds become an asset of the enterprise and thus
such an embodiment, this may allow the enterprise to utilize the risk of holding those funds transfers from the customer
amounts of cryptocurrency equivalent to the value of its to the enterprise . An enterprise may desire to securely store
customers ' cryptocurrency deposits stored in the enterprise 20 funds that may be in the form of cryptocurrency . For
account to conduct transactions on the behalf of those example , an enterprise might apply a security function to
customers that may want to utilize such cryptocurrency and one or more private keys associated with the cryptocurrency
debit or credit the particular customer accounts as appropri and store the result in one ormore data centers . An enterprise
ate . may even disconnect the storage device holding such private
In certain embodiments , encoding cryptocurrency infor- 25 keys and subsequently physically secure such storage
mation associated with a customer account onto a payment device .
instrument provides a customer with electronic access to the Some deposit accounts may be used to deposit funds of
customer' s account, thereby allowing a customer to execute cryptocurrency . As a result , the enterprise may decide to
a transaction using cryptocurrency in the customer account collect and aggregate cryptocurrency deposited by custom
associated with the customer. 30 ers into a cryptocurrency account owned by the enterprise
BRIEF DESCRIPTION OF THE DRAWINGS where the aggregated cryptocurrency may be securely
stored . To aggregate deposits of cryptocurrency, an enter
For a more complete understanding of the present disclo prise may receive a request to deposit an amount of cryp
sure and its advantages, reference is made to the following tocurrency in a customer account and determine a public key
descriptions , taken in conjunction with the accompanying 35 associated with the customer account. The enterprise may
drawings in which : use the public key to receive the amount of cryptocurrency
FIG . 1 illustrates an example enterprise cryptocurrency and credit the customer account in the amount of crypto
environment; currency . The enterprise may then aggregate the amount of
FIG . 2 illustrates an example enterprise cryptocurrency cryptocurrency with an aggregated amount of cryptocur
server ; 40 rency in an enterprise account and facilitate securing the
FIG . 3 illustrates an example computer system ; public key in the enterprise account.
FIG . 4 illustrates an example flowchart for facilitating the Additionally, customers use payment instruments issued
exchange of funds involving cryptocurrency ; by enterprises, financial institutions, or other entities to
FIG . 5 illustrates an example flowchart for facilitating a execute various financial transactions . These payment
real-time cryptocurrency conversion ; 45 instruments may provide customers electronic access to
FIG . 6 illustrates an example flowchart for collecting and customer accounts , including customer accounts associated
aggregating cryptocurrency deposited by customers ; with cryptocurrency. As a result, a customer may make a
FIG . 7 illustrates an example flowchart for facilitating transaction with cryptocurrency in a customer account by
execution of a transaction with cryptocurrency using a using a payment instrument encoded with cryptocurrency
payment instrument;
owchart for
FIG . 8 illustrates an example flowchart for facilitating
facilitating 3050 information associated with the customer account. To
identification and alerting of suspicious activity associated execute a transaction with cryptocurrency , an enterprise may
with a cryptocurrency transaction ; receive a request from a customer using a payment instru
FIG . 9 illustrates an example flowchart for facilitating ment authorizing a payment of an amount of cryptocurrency .
cryptocurrency risk detection ; Essentially simultaneously or shortly thereafter , the enter
FIG . 10 illustrates an example flowchart for facilitating 55 prise may transfer the amount of cryptocurrency from a
cryptocurrency validation ; customer account to a recipient of the payment.
FIG . 11 illustrates an example flowchart for facilitating Customers may also use a peer -to -peer payment service to
cryptocurrency storage in an online vault ; create a virtual account and associate such virtual account
FIG . 12 illustrates an example flowchart for facilitating with an account at a financial institution . Such account may
cryptocurrency storage in an offline vault; and 60 be associated with cryptocurrency. Using the peer - to -peer
FIG . 13 illustrates an example flowchart for facilitating payment system , the customer may conduct transactions
peer-to -peer cryptocurrency transactions. using the virtual account without the need to share their
account information at the financial institution.
DETAILED DESCRIPTION In particular, enterprise cryptocurrency environment 100
65 comprises customer device 110 , network 120 , enterprise
In general, an enterprise may offer a variety of financial cryptocurrency server 130 , exchange servers 140, third party
services thatmay utilize cryptocurrency. For example , cur enterprise servers 150 , data center servers 160, and payment
US 10 ,255 ,600 B2
service server 170 . Customer device 110 is any device one or more portions of network 120 may include an ad hoc
customer 102 may use to utilize any functionality or service network , an intranet , an extranet, a virtual private network
offered by an enterprise. In some embodiments, customer (VPN ), a local area network (LAN ), a wireless LAN
device 110 may be operated by customer 102 . In other (WLAN ), a wide area network (WAN ), a wireless WAN
embodiments, customer device 110 may be operated by an 5 (WWAN ), a metropolitan area network (MAN ) , a portion of
employee of an enterprise on the behalf of customer 102. the Internet, a portion of the Public Switched Telephone
Customer device 110 is a device operable to communicate Network (PSTN ), a cellular telephone network , or a com
with network 120 , enterprise cryptocurrency server 130 , bination of two or more of these . Network 120 may include
payment service server 170 , or any other suitable compo - one or more networks 120 . For example , one or more
nents of enterprise cryptocurrency environment 100 . For 10 networks 120 may be a network 120 local to enterprise
example , customer device 110 may be a laptop computer , cryptocurrency server 130 , while yet another one or more
personal digital assistant (PDA ), cellular phone, tablet, por networks 120 may be local to third party enterprise server
table media player, smart device , or any other device capable 150 , exchange server 140 , payment service server 170 , data
of wireless or wired communication . In certain embodi- center servers 160 and/ or any other suitable component of
ments , customer device 110 may include one or more 15 enterprise cryptocurrency environment 100 . The current
processors 111 , one or more memories 112 , one or more disclosure contemplates any number of networks 120 suit
displays, one or more interfaces, one or more components able for a particular purpose . Any component of enterprise
capable of inputting data , one or more components capable cryptocurrency environment 100 may communicate to
of outputting data , one or more components capable of another component of enterprise cryptocurrency environ
communicating with any other component of enterprise 20 ment 100 via network 120 .
cryptocurrency environment 100 , or any other component In some embodiments, components of enterprise crypto
suitable for a particular purpose . currency environment 100 may be configured to communi
Processor 111 may include one or more microprocessors , cate over links 116 . Communication over links 116 may
controllers, or any other suitable computing devices or request and /or send information about any suitable compo
resources . Processor 111 may work , either alone or with 25 nent of enterprise cryptocurrency environment 100 . Links
components of enterprise cryptocurrency environment 100 , 116 may connect components of enterprise cryptocurrency
to provide a portion or all of the functionality of enterprise environment 100 to network 120 or to each other. This
cryptocurrency environment 100 described herein . disclosure contemplates any suitable links 116 . In particular
Processor 111 communicatively couples to memory 112. embodiments , one or more links 116 include one or more
Memory 112 may take the form of volatile or non - volatile 30 wireline (such as for example Digital Subscriber Line (DSL )
memory including, without limitation ,magnetic media , opti- or Data Over Cable Service Interface Specification (DOC
cal media , Random Access Memory (RAM ), Read Only SIS )), wireless ( such as for example Wi-Fi or Worldwide
Memory (ROM ), removable media , or any other suitable Interoperability for Microwave Access (WiMAX )), or opti
memory component. In certain embodiments, a portion or all cal (such as for example Synchronous Optical Network
of memory 112 may store one or more database data 35 (SONET ) or Synchronous Digital Hierarchy (SDH )) links .
structures , such as one or more structured query language In particular embodiments, one or more links 116 each
(SQL ) servers or relational databases.
In certain embodiments, memory 112 may be internal or a LAN , a WLAN , a WAN , a WWAN , a MAN , a portion of
external to processor 111 and may include one or more the Internet, a portion of the PSTN , a cellular technology
instruction caches or one or more data caches. Instructions 40 based network , a satellite communications technology
in the instruction caches may be copies of instructions in based network , another link 116 , or a combination of two or
memory 112 , and the instruction caches may speed up more such links 116 . Links 116 need not necessarily be the
retrieval of those instructions by processor 111 . Data in the same throughout enterprise cryptocurrency environment
data caches may include any suitable combination of copies 100 . One or more first links 116 may differ in one or more
of data in memory 112 for instructions executing at proces- 45 respects from one or more second links 116 .
sor 111 to operate on , the results of previous instructions Customer device 110 may communicate over network 120
executed at processor 111 for access by subsequent instruc - with enterprise cryptocurrency server 130 . Generally , enter
tions executing at processor 111 , or for writing to memory p rise cryptocurrency server 130 may be used by an enter
112 , and/ or any other suitable data . The data caches may prise to initiate and execute actions and transactions that
speed up read or write operations by processor 111 . 50 allow the enterprise to provide various functionality and
In some embodiments, customer device 110 also may services to customers 102 . Enterprise cryptocurrency server
comprise graphical user interface (GUI) 114 . GUI 114 is 130 will be discussed in more detail in the discussion
generally operable to tailor and filter data presented to regarding FIG . 2 below .
customer 102. GUI 114 may provide customer 102 with an Enterprise cryptocurrency server 130 may communicate
efficient and user - friendly presentation of information 55 over network 120 with one or more exchange servers 140 .
regarding the functionality of customer device 110 . GUI 114 Generally , exchange servers 140 may be associated with any
may comprise a plurality of displays having interactive cryptocurrency exchange that allows for the purchasing ,
fields, pull- down lists , and buttons operated by customer selling , or transferring of cryptocurrency . Cryptocurrencies
102 . GUI 114 may include multiple levels of abstraction may be sold or purchased for other currencies or cryptocur
including groups and boundaries. In certain embodiments , 60 rencies at a cryptocurrency exchange. Examples of crypto
GUI 114 may comprise a web browser . In another embodi- currency exchanges are OKCoin , BitStamp, BTCChina ,
ment, GUI 114 may comprise a graphical representation of Cryptsy , CoinMarket, and Justcoin . This disclosure contem
a mobile application . plates any cryptocurrency exchange can be associated with
Customer device 110 may communicate with any other exchange server 140 as suitable for a particular purpose . In
component of enterprise cryptocurrency environment 100 65 certain embodiments , exchange server 140 may be operated
over network 120 . This disclosure contemplates any suitable by an enterprise that also operates enterprise cryptocurrency
network 120 . As an example and not by way of limitation , server 130 . The cryptocurrency exchange that is associated
US 10 ,255 ,600 B2
10
with exchange server 140 may be associated with the same server 170 by enterprise cryptocurrency server 130 . In some
jurisdiction or a different jurisdiction (e. g., country, eco embodiments , payment service server 170 may be associ
nomic union , political union , etc .) with which a particular ated with an enterprise associated with enterprise crypto
customer 102 may be associated . currency server 130 or payment service server 170 may be
Exchange servers 140 may receive requests to purchase, 5 associated with a third party enterprise not associated with
sell, or transfer cryptocurrency or to transfer funds via links enterprise cryptocurrency server 130 .
116 . Exchange servers 140 may fulfill such requests either FIG . 2 is a block diagram illustrating an example embodi
directly to any other component of enterprise cryptocurrency ment of enterprise cryptocurrency server 130 used in FIG . 1 .
environment 100 via links 116 , or utilize an automated More specifically, enterprise cryptocurrency server 130 may
clearing house to fulfill such requests, or utilize any other 10 include processor 201 , memory 202 , customer accounts 203 ,
method to fulfill such requests as suitable for a particular float accounts 204 , transactions 208 , online vault 210 , offline
purpose . Although exchange servers 140a and exchange vault 212 , transformation engine 214 , conversion engine
servers 140b are depicted as two example distinct exchange 216 , encoding engine 218 , transaction engine 220 , aggrega
servers 140 in FIG . 1 , this disclosure contemplates any tion engine 222 , calculation engine 224 ,management engine
number of exchange servers 140 interacting with enterprise 15 226 , exchange engine 228 , alert engine 230 , risk detection
cryptocurrency server 130 via links 116 or any other com - engine 232 , validation engine 234 , vault engine 236 , and
ponent of enterprise cryptocurrency environment 100. peer-to -peer engine 238 . Processor 201 may include one or
In certain instances enterprise cryptocurrency server 130 more microprocessors, controllers, or any other suitable
may interact with third party enterprise server 150. For computing devices or resources. Processor 201 may work ,
example, enterprise cryptocurrency server 130 may facilitate 20 either alone or with components of enterprise cryptocur
transactions with third party enterprise server 150 . Third rency environment 100 , to provide a portion or all of the
party enterprise server 150 may have accounts associated functionality of enterprise cryptocurrency environment 100
with customers 102 and /or enterprises . Third party enter described herein . Processor 201 communicatively couples to
prise server 150 is capable of receiving , transferring , or memory 202 . Memory 202 may take the form of volatile or
otherwise interacting with funds, cryptocurrencies , any suit- 25 non - volatile memory including , without limitation , mag
able payment instrument, and /or any suitable information netic media , opticalmedia , RAM , ROM , removable media ,
associated with the aforementioned . Although a single third or any other suitable memory component .
party enterprise server 150 is depicted in FIG . 1, enterprise In certain embodiments , memory 202 may be internal or
cryptocurrency environment 100 is capable of supporting external to processor 201 and may include one or more
one or more third party enterprise servers 150 as suitable for 30 instruction caches or one or more data caches. Instructions
a particular purpose .
Enterprise cryptocurrency server 130 may store informa- memory 202 , and the instruction caches may speed up
tion at one or more data center servers 160 at a data center. retrieval of those instructions by processor 201. Data in the
Data center servers 160 may be any software , hardware , data caches may include any suitable combination of copies
firmware, and /or combination thereof capable of storing 35 of data in memory 202 for instructions executing at proces
information . In certain embodiments, data center servers 160 sor 201 to operate on , the results of previous instructions
may securely store information regarding cryptocurrency executed at processor 201 for access by subsequent instruc
such as public keys, private keys, or any other suitable tions executing at processor 201, or for writing to memory
cryptocurrency information . In certain embodiments, one or 202 , and other suitable data . The data caches may speed up
more particular encryption , hashing, tokenizing functions or 40 read or write operations by processor 201.
algorithmsmay be applied to information stored in a data Enterprise cryptocurrency server 130 may store and
center server 160 . According to some embodiments, one or retrieve customer information from customer accounts 203.
more encryption , hashing , tokenizing functions or algo - For example, enterprise cryptocurrency server 130 may use
rithmsmay be applied to information stored in a data center a unique identifier of customer 102 to retrieve a particular
server 160 based on the location of data center server 160 . 45 customer account 203. In certain embodiments , customer
Data center servers 160 may be locally located or remotely accounts 203 may be stored in memory 202 . According to
located to enterprise cryptocurrency server 130 . In certain some embodiments , customer accounts 203 may be stored in
embodiments , each data center server 160 may be located at one or more text files , tables in a relational database , or any
a different geographic location . For example , data center other suitable data structure capable of storing information .
server 160a may be located at a first geographic location 50 Each customer account 203 may be associated with a
while data center server 160b may be located at a second customer 102 . In certain embodiments, customer account
geographic location . 203 may include information that can be used by enterprise
Enterprise cryptocurrency server 130 may also interact cryptocurrency server 130 to perform various transactions
with payment service server 170 to provide various trans - involving cryptocurrencies . For example , customer account
action functionality to customers 102. Customers 102 may 55 203 may include information such as an account number,
use payment service server 170 to transact online electronic account balance , routing number, location information , or
payments using virtual accounts 172 . In certain embodi- any other information suitable for a particular purpose
ments, links 116 communicatively coupling payment service associated with one or more accounts that customer 102 may
server 170 to enterprise cryptocurrency server 130 may be a have associated with a particular enterprise .
dedicated interface in addition to being coupled to network 60 Enterprise cryptocurrency server 130 may include trans
120 . A financial institution may facilitate the transferring of formation engine 214 . Generally, transformation engine 214
funds to and from virtual accounts 172 associated with may initiate the execution of transactions that facilitate an
customers 102. In some embodiments , funds may be trans - exchange of one currency for another currency , such as an
ferred from accounts associated with customers 102 in exchange of a fiat currency for a cryptocurrency (or vice
enterprise cryptocurrency server 130 to virtual accounts 172 65 versa ) or an exchange of one cryptocurrency for another
or vice versa . In certain embodiments , a quantity of cryp - cryptocurrency , according to any one of a variety of embodi
tocurrency may be transferred to or from payment service ments suitable for a particular purpose . More specifically,
US 10 , 255 ,600 B2
transformation engine 214 may be any software , hardware , a cryptocurrency exchange, such as exchange 140a or
firmware , or combination thereof capable of initiating or exchange 140b . According to some embodiments , the sale of
performing a transaction to facilitate an exchange of funds the quantity of the certain currency results in a quantity of
involving cryptocurrency. According to some embodiments, another currency, such as a quantity of a particular crypto
transformation engine 214 may be a set of instructions 5 currency .
stored in memory 202 that may be executed by processor As another example , transformation engine 214 may
201. determine whether an amount of funds in a float account 204
Using information received over links 116 , transformation associated with a certain currency (e . g ., the first currency or
engine 214 may initiate or perform various functions involv - the second currency ) is below a certain threshold . In
ing the exchange , storage , and retrieval of currencies and 10 response to determining the amount of funds is below the
cryptocurrencies. For example , customer 102 may request a certain threshold , transformation engine 214 may initiate the
certain amount of funds in a particular customer account 203 purchase of a quantity of the certain currency . In some
in a first currency be exchanged for an approximately embodiments , transformation engine 214 may purchase the
equivalent amount of funds in a second currency , such as a certain currency at exchange 140 , which allows transforma
cryptocurrency . In response to the request, transformation 15 tion engine 214 to use currencies or cryptocurrencies to
engine 214 may directly execute the exchange or initiate purchase other cryptocurrencies. Upon purchasing the quan
various transactions to facilitate the execution of the tity of the certain currency , transformation engine 214 may
exchange by utilizing various components of enterprise transfer the quantity of the certain currency to the particular
cryptocurrency environment 100 such as float accounts 204, float account 204 over 11nza
links 116
116 .
conversion engine 216 , calculation engine 224 , and /or 20 Transformation engine 214 may utilize conversion engine
exchange engine 228 . 216 to facilitate a real- time currency conversion when a
Transformation engine 214 generally utilizes various float requested conversion is optimal. In general , conversion
accounts 204 associated with an enterprise to execute engine 216 determines current values, exchange rates, and/
exchanges involving cryptocurrency . For example , an enter - or advantages associated with converting the first currency
prise may maintain repositories ( e . g ., float accounts 204 ) of 25 into a variety of cryptocurrencies and initiates the execution
currencies and cryptocurrencies allowing transformation of the exchange essentially simultaneously as a determina
engine 214 to exchange one currency for another currency , tion that a requested exchange is optimal. Conversion engine
such as a fiat currency for a cryptocurrency, in an efficient 216 may be any software, hardware, firmware , or combina
manner with minimal delay. Float accounts 204 may be tion thereof capable of initiating or performing a transaction
stored in memory 202 . According to some embodiments , 30 to facilitate an exchange of funds involving cryptocurrency .
float accounts 204 may be stored in one or more text files, In certain embodiments , conversion engine 216 may be a set
tables in a relational database , or any other suitable data of instructions stored in memory 202 thatmay be executed
structure capable of storing information . by processor 201 .
Each float account 204 may be associated with an enter Conversion engine 216 generally retrieves price data
prise , financial institution , or other entity that may have an 35 associated with currencies and cryptocurrencies. For
account associated with a particular currency or cryptocur - example , a customer 102 may request an exchange of a first
rency . In certain embodiments , float account 204 may currency for a particular cryptocurrency if the exchange is
include information that can be used by transformation optimal. In response , transformation engine 214 may com
engine 214 to exchange, store , and /or retrieve various cur municate a request to conversion engine 216 to determine
rencies and cryptocurrencies. For example, float account 204 40 whether converting the first currency into a particular cryp
may include information such as an account number, type of tocurrency is optimal.
currency or cryptocurrency stored in float account 204 , As a result, conversion engine 216 may retrieve data
currency or cryptocurrency account balance , routing infor - associated with the conversion . For example , conversion
mation , location information , or any other information suit- engine 216 may retrieve price data associated with the first
able for a particular purpose associated with one or more 45 currency and price data associated with the particular cryp
accounts that an enterprise may have associated with a tocurrency . Conversion engine 216 may also retrieve price
particular currency or cryptocurrency . In certain embodi- data associated with a plurality of cryptocurrencies , price
ments , transformation engine 214 may retrieve any infor- data associated with a plurality of currencies , market data
mation associated with float accounts 204 or the enterprise . associated with a plurality of cryptocurrencies , market data
Transformation engine 214 may also monitor or otherwise 50 associated with a plurality of currencies, volatility data
manage float accounts 204 . Monitoring a float account 204 associated with a plurality of cryptocurrencies, volatility
may include monitoring an amount of funds in float account data associated with a plurality of currencies, current cur
204 , depositing funds in float account 204 , withdrawing rency exchange rate data , economic risk data , or any other
funds from float account 204 , requesting a quantity of funds data that may be suitable for a particular purpose.
in float account 204 be sold , requesting a quantity of funds 55 Conversion engine 216 may also determine whether the
be purchased for float account 204 , or any other suitable conversion is optimal. According to some embodiments ,
operation for a particular purpose . For example, transfor - conversion engine 216 may do so based at least in part upon
mation engine 214 may determine whether an amount of analyzing the data associated with the conversion . In such an
funds in a float account 204 associated with a certain embodiment, conversion engine 216 may consider time
currency ( e . g ., the first currency or the second currency ) is 60 factors , price factors associated with particular currencies
above a certain threshold . (such as the value of various currencies ), price factors
In response to determining the amount of funds is above associated with particular cryptocurrencies ( such as the
the certain threshold , transformation engine 214 may initiate value of various cryptocurrencies), volume of particular
the sale of a quantity of the certain currency in float accountcurrencies , volume of particular cryptocurrencies , availabil
204 . In certain embodiments, the quantity of the certain 65 ity of particular currencies, availability of particular cryp
currency may be sold at a cryptocurrency exchange . Various tocurrencies , popularity of particular currencies , popularity
currencies may be sold or purchased for cryptocurrencies at of particular cryptocurrencies , volatility of particular cur
US 10 ,255,600 B2
13 14
rencies, volatility of particular cryptocurrencies , economic for example, acceptance of the fiat currency to be used ,
risk factors , current currency exchange rates , or any other availability of the desired cryptocurrency, acceptance of the
factors that may facilitate determining whether the conver desired exchange rate, optimal speed of proof-of-work vali
sion is optimal. For example, conversion engine 216 may dation , and /or average time to hold prior to confirming the
determine that the conversion is optimal based on financial 5 conversion ) . Conversion engine 216 may also take into
advantages that may be gained by the enterprise and/ or account any fees associated with fiat currency exchanges ,
customer 102. In this example , conversion engine 216 may any fees associated with cryptocurrency exchanges, and /or
consider financial factors such as currency exchange rates, any fees associated with the processing of the potential
transaction fees , and/ or cryptocurrency prices to determine conversion to determine whether the conversion is optimal.
that the conversion will generate a financial advantage for 10 In certain embodiments , conversion engine 216 may per
the enterprise and /or customer 102 . form multiple fiat currency conversions if conversion engine
As another example , conversion engine 216 may deter - 216 determines the specific fiat currency is not optimal to
mine whether the conversion is optimalbased at least in part exchange for the cryptocurrency and the cost of exchanging
upon comparing price data of a particular cryptocurrency the specific fiat currency for the optimal fiat currency is less
( requested by customer 102 ) to price data of other crypto - 15 than exchange rate differences .
currencies . For example , conversion engine 216 may com - In some embodiments, determining whether the conver
pare a value of the particular cryptocurrency to a value of sion is optimal is based at least in part upon a date threshold
various other cryptocurrencies . If the value of at least one of associated with the request and /or a benefit threshold asso
the other cryptocurrencies is greater than the value of the ciated with the request. For example , customer 102 may
particular cryptocurrency , conversion engine 216 may deter - 20 communicate a request for a cryptocurrency conversion that
mine that the requested conversion is not optimal. comprises a date threshold ( e .g ., a date for which the request
In certain embodiments , conversion engine 216 may for the cryptocurrency conversion expires ) and a benefit
determine whether the conversion is optimal based at least threshold ( e.g ., a financial advantage , time advantage, etc .).
in part upon a set of conversion rules . Conversion rules may As a result, conversion engine 216 may execute the cryp
include any number of internal algorithms that may weigh 25 tocurrency conversion if the conversion exceeds the benefit
various factors associated with exchanges 140 , such as threshold before the date threshold . More specifically, if
acceptance of various currencies and cryptocurrencies , conversion engine 216 calculates the conversion at a first
speed of proof-of-work validation , reliability , consistency, time before the date threshold and determines that the
average time to hold prior to confirming the conversion , conversion is less than the benefit threshold , conversion
and / or any other factor suitable for a particular purpose . For 30 engine 216 may calculate the conversion at a second time
example , customer 102 may request to receive a quote for before the date threshold ( e . g ., any other timebefore the date
purchasing a certain amount of a specific cryptocurrency threshold ). If the conversion at the second time is greater
using a fiat currency. In response , conversion engine 216 than the benefit threshold , then conversion engine 216 may
may leverage an internal algorithm to determine the number determine the conversion is optimal and thereby communi
of exchanges 140 to reference in order to determine a 35 cate a request to execute the exchange .
reliable and consistent exchange 140 (based on , for example , Conversion engine 216 may also communicate a message
acceptance of the fiat currency to be used , availability of the to a customer 102 . For example , in response to determining
desired cryptocurrency , optimal speed of proof-of-work the requested conversion is not optimal, conversion engine
validation , and /or average time to hold prior to confirming 216 may communicate a message indicating that the con
the conversion ). After determining the quote , conversion 40 version is not optimal to customer 102 via links 116 . As a
engine 216 may communicate the quote to customer 102 result, customer 102 may communicate a new request for a
Customer 102 may then confirm the exchange or deny the different cryptocurrency conversion . In certain embodi
exchange. ments , conversion engine 216 may include data indicating a
Conversion rules may also include any number ofmoni more favorable cryptocurrency to exchange the first cur
toring frequency rules that may weigh various factors to 45 rency for in the message to customer 102 .
determine a monitoring frequency, such as whether a cryp - Transformation engine 214 may utilize calculation engine
tocurrency has maintained a consistent value price for a 224 to determine an optimal exchange rate for executing the
particular amount of days, hours , minutes or whether there cryptocurrency exchange according to any one of a variety
has been a large increase or decrease in the value of a of embodiments suitable for a particular purpose . More
cryptocurrency . For example , customer 102 may request that 50 specifically , calculation engine 224 may be any software ,
an exchange only be executed at a specific exchange rate . hardware , firmware , or combination thereof capable of ini
Customer 102 may also request to be notified when the tiating or performing a calculation to facilitate an exchange
desired exchange rate has been met for the potential con - involving cryptocurrency. According to some embodiments ,
version . In response , conversion engine 216 may leverage calculation engine 224 may be a set of instructions stored in
the monitoring frequency rules to determine a frequency for 55 memory 202 that may be executed by processor 201.
which to monitor cryptocurrency values , fiat currency val- Calculation engine 224 may facilitate an exchange of a
ues, and/ or exchange rates . Conversion engine 216 may then certain currency for a cryptocurrency by performing various
monitor exchange rates at the determined frequency , which calculations. For example , transformation engine 214 may
may allow conversion engine 216 to more accurately and communicate ( in response to customer 102 requesting a
timely notify customer 102 of when the desired exchange 60 currency be exchanged for a cryptocurrency ) a request for
rate has been met . In such an example , upon being notified current exchange rates associated with currencies and cryp
of the desired exchange rate , customer 102 may request to tocurrencies to calculation engine 224 via links 116 . In
immediately purchase a certain amount of a specific cryp - response to this request, calculation engine 224 may deter
tocurrency using a specific fiat currency . In response , con - mine a plurality of exchange rates for exchanging the first
version engine 216 may leverage an internal algorithm to 65 currency for cryptocurrency . Calculation engine 224 may
determine the number of exchanges to reference in order to determine such rates either directly or utilize any other
determine a reliable and consistent exchange 140 (based on , component of enterprise cryptocurrency server 130 , such as
US 10 ,255 ,600 B2
15 16
conversion engine 216 , or utilize any other method to for the potential exchange. Calculation engine 224 may
determine such rates as suitable for a particular purpose . consider any fees associated with fiat currency exchanges ,
In certain embodiments , calculation engine 224 may any fees associated with cryptocurrency exchanges, and /or
determine exchange rates for exchanging the first currency any fees associated with the processing of the potential
for various cryptocurrencies or for exchanging the first 5 conversion to determine whether the desired exchange rate
currency for a particular cryptocurrency ( e .g ., a customer has been met and thus determine the conversion is optimal.
102 requested an exchange for a particular cryptocurrency ). According to some embodiments, determining the opti
Additionally , calculation engine 224 may monitor exchange mal exchange rate includes determining which particular
rates for exchanging funds involving cryptocurrency . For cryptocurrency the first currency should be exchanged for. In
example , transformation engine 214 may instruct calculation 10 such embodiments , calculation engine 224 may determine
engine 224 to monitor exchange rates for exchanging a first which cryptocurrency to use based on cryptocurrency price ,
currency for a particular cryptocurrency for a time threshold volatility of the cryptocurrency , popularity of the cryptocur
( e. g ., monitor the exchange rates for the next hour, day, rency , availability of the cryptocurrency , or any potential
week , month , etc.). In some embodiments , calculation risk factor thatmay be associated with a particular crypto
engine 224 may communicate the exchange rates to cus- 15 currency . For example , calculation engine 224 may deter
tomer device 110 via links 116 . mine a particular cryptocurrency based on financial advan
Calculation engine 224 may also determine the optimal tages that may be gained by customer 102 . In this example ,
exchange rate for performing a requested currency calculation engine 224 may consider financial factors such
exchange . In certain embodiments , calculation engine 224 as currency exchange rates, transaction fees , and / or crypto
may determine the optimal exchange rate based at least in 20 currency prices to determine that exchanging the first cur
part upon the current exchange rates . Calculation engine 224 rency for the particular cryptocurrency will generate finan
may also consider other factors , such as time factors, price cial advantages for customer 102 as compared to exchanging
factors associated with currency exchanges ( such as the the first currency for any other cryptocurrency .
value of particular currencies and cryptocurrencies ), fees Calculation engine 224 may use information received
charged by third parties, volatility of particular currencies, 25 over links 116 to determine a first amount of a first currency.
volatility of particular cryptocurrencies, economic risk fac - For example, a request from a customer 102 may indicate a
tors, or any other information that may facilitate determining first amount in a particular customer account 203 in a first
that one exchange rate should be used over another currency be exchanged for a quantity of a second currency
exchange rate . In certain embodiments, calculation engine worth approximately the same amount as the first currency .
224 may determine the optimal exchange rate based upon a 30 Calculation engine 224 may then determine a second
selection by customer 102 . For example , in response to amount of a second currency, such as a second amount of
receiving the exchange rates via device 110 , customer 102 cryptocurrency, based at least in part upon the optimal
may be prompted to select an exchange rate from the exchange rate . For example , if customer 102 requests that a
plurality of exchange rates . Customer 102 may then utilize certain amount of a first currency be exchanged for a second
device 110 to input and communicate the selected exchange 35 currency (e . g ., be exchanged for a cryptocurrency ) , calcu
rate to enterprise cryptocurrency server 130 via links 116 . lation engine 224 may apply the optimal exchange rate to the
In certain embodiments, calculation engine 224 may certain amount of the first currency to calculate a quantity of
determine whether the exchange is optimal based at least in the desired cryptocurrency worth approximately the certain
part upon a set of conversion rules. Conversion rules may amount of the first currency. In some embodiments, calcu
include any number of internal algorithms that may weigh 40 lation engine 224 may determine any fees or other costs
various factors associated with exchanges 140 performing associated with exchanging the first currency for the cryp
various conversions, such as acceptance of various curren - tocurrency, such as any transaction fees and /or service fees.
cies and cryptocurrencies , speed of proof-of-work valida - In such an example , calculation engine 224 determines a
tion , reliability, consistency , average time to hold prior to second amount of the cryptocurrency based at least in part
confirming the conversion , and /or any other factor suitable 45 upon the quantity of the cryptocurrency and any fees ( e . g .,
for a particular purpose . Conversion rules may also include the second amount of the cryptocurrency is equivalent to the
any number of monitoring frequency rules that may weigh quantity of the cryptocurrency less any fees ) .
various factors to determine a frequency at which to monitor Calculation engine 224 may communicate the optimal
exchange rates , such as whether a cryptocurrency has main - exchange rate , the first amount, the second amount, and /or
tained a consistent value price for a particular amount of 50 any other suitable information for a particular purpose to
days, hours, minutes or whether there has been a large transformation engine 214 . In response to receiving such
increase or decrease in the value of a cryptocurrency . As an information from calculation engine 224 , transformation
example , customer 102 may request to receive a quote for engine 214 may associate the first amount of the first
purchasing a certain amount of a specific cryptocurrency currency with customer account 203 . For example, trans
using a fiat currency . In response , calculation engine 224 55 formation engine 214 may initiate a debit to the particular
may determine a number of exchanges 140 to reference in customer account 203 in the first amount (plus any fees and
order to determine a reliable and consistent exchange 140 other costs ) in the first currency. Transformation engine 214
(based on , for example , acceptance of the fiat currency to be may then transfer the first amount of the first currency into
used , availability of the desired cryptocurrency , optimal a first float account 204 associated with the first currency via
speed of proof-of-work validation , and / or average time to 60 links 116 .
hold prior to confirming a conversion ). By determining a Transformation engine 214 may also associate the second
reliable and consistent exchange 140 , calculation engine 224 amount of the cryptocurrency with a second float account
may quote the optimal exchange rate and communicate such 204 associated with the second currency (e.g ., the crypto
to customer 102 . As another example , customer 102 may currency ). For example , transformation engine 214 may
request that an exchange only be executed at a specific 65 withdraw (or otherwise debit) the second amount of the
exchange rate . In response , calculation engine 224 may cryptocurrency from the second float account 204 . Trans
determine a frequency for which to monitor exchange rates formation engine 214 may then transfer the second amount
US 10 , 255 ,600 B2
17 18
of the cryptocurrency to customer 102 . For example , trans According to certain embodiments , enterprise cryptocur
formation engine 214 may deposit ( or otherwise credit ) the rency server 130 may communicate a message to customer
second amount of the cryptocurrency in the particular cus - 102 if the requested exchange is not optimal. For example ,
tomer account 203 . In certain embodiments , transferring the enterprise cryptocurrency server 130 may use conversion
second amount of the cryptocurrency may include initiating 5 engine 216 to communicate a message to customer 102 over
a deposit of the second amount of the cryptocurrency in the network 120 via links 116 indicating that the exchange is not
particular customer account 203 . optimal.
The operation of enterprise cryptocurrency server 130 , After determining that the requested exchange is optimal,
with respect to transformation engine 214 , will now be enterprise cryptocurrency server 130 may determine a plu
discussed ( as well as conversion engine 216 , calculation 10 rality of exchange rates for exchanging the first currency for
engine 224 , and exchange engine 228 ). Generally, customer the second currency . For example , enterprise cryptocurrency
102 may use the services provided by enterprise cryptocur- server 130 may use calculation engine 224 to determine a
rency environment 100 to exchange one currency for plurality of exchange rates by retrieving information asso
another currency . More specifically, customer 102 may use ciated with exchanging various currencies, such as exchang
device 110 to request a currency exchange. In certain 15 ing a fiat currency for cryptocurrency (or vice versa ), over
embodiments , customer 102 may request to exchange a first network 120 via links 116 .
amount of a first currency ( e. g ., an input currency ) in a After determining the exchange rates, enterprise crypto
customer account 203 for a second currency ( e . g ., an output currency server 130 may determine the optimal exchange
currency ), such as for a cryptocurrency. According to some rate for performing the currency exchange . For example ,
embodiments , the first currency and /or the second currency 20 calculation engine 224 may determine the optimal exchange
may be a type of cryptocurrency . Device 110 may commu- rate by considering various factors such as current exchange
nicate this request to enterprise cryptocurrency server 130 rates, time factors , price factors associated with particular
over network 120 via links 116 . In response to receiving the currencies , price factors associated with particular crypto
request for a currency exchange, enterprise cryptocurrency currencies , economic risk factors, or any other information .
server 130 may retrieve data associated with exchanging the 25 As another example , calculation engine 224 may determine
first currency for the second currency. In certain embodi- the optimal exchange rate by selecting a particular crypto
ments, this data may be used to determine whether the currency the first currency should be exchanged , based on ,
requested exchange is optimal. For example , a customer 102 for example , financial advantages that may be gained by
may request to execute a currency exchange if the exchange customer 102.
is optimal. As a result, enterprise cryptocurrency server 130 30 After determining the optimal exchange rate , enterprise
may use conversion engine 216 to retrieve current data cryptocurrency server 130 may determine a first amount of
associated with the requested exchange , such as current the first currency to be exchanged . For example, calculation
price data , market data , volatility data , exchange rate data , engine 224 may use information (e . g ., information included
economic risk data , or any other data that may be suitable for in the request ) received over network 120 via links 116 to
a particular purpose over network 120 via links 116 . 35 determine the first amount of the first currency . Enterprise
After retrieving current data associated with the requested cryptocurrency server 130 may then transfer the first amount
exchange , enterprise cryptocurrency server 130 may deter - of the first currency into a first float account 204 associated
mine whether the conversion is optimal. Enterprise crypto - with the first currency . Enterprise cryptocurrency server 130
currency server 130 may do so by using conversion engine may do this by using transformation engine 214 to associate
216 to compare and analyze the current data associated with 40 the first amount of the first currency with the particular
the exchange . Conversion engine 216 may compare and customer account 203, which may initiate a debit to the
analyze time factors, price factors associated with currencies particular customer account 203 in the first amount (plus any
( such as the value of various currencies) , price factors fees and other costs ) in the first currency . The first amount
associated with cryptocurrencies (such as the value of vari of the first currency may then be transferred to the first float
ous cryptocurrencies ), volume of currencies , volume of 45 account 204 associated with the first currency over network
cryptocurrencies, availability of currencies, availability of 120 via links 116 .
cryptocurrencies, popularity of currencies, popularity of Enterprise cryptocurrency server 130 may also determine
cryptocurrencies, volatility of currencies , volatility of cryp - the second amount of the cryptocurrency . For example ,
tocurrencies, economic risk factors , current currency calculation engine 224 may use the optimal exchange rate to
exchange rates, or any other factors that may facilitate 50 determine a quantity of the cryptocurrency approximately
determining the conversion is optimal. For example , con - equivalent to the first amount of the first currency . The
version engine 216 may determine that the conversion is quantity of the cryptocurrency may then be used to deter
optimal based on financial advantages that may be gained by mine the second amount of the cryptocurrency less any fees
the enterprise and/ or customer 102 . As another example, or costs associated with the requested exchange . In certain
conversion engine 216 may determine that the conversion is 55 embodiments , equivalence may be determined at the time
optimal based on a value of a particular cryptocurrency as the request was made ( e .g ., determined in real- time) or
compared to a value of various other cryptocurrencies . As within a window of time (e . g ., determined in batch time).
yet another example , conversion engine 216 may determine After determining the second amount of the cryptocur
the conversion is optimal based at least in part upon a set of rency, enterprise cryptocurrency server 130 may associate
conversion rules . In certain embodiments , if conversion 60 the second amount of the cryptocurrency with a second float
engine 216 calculates the conversion at a first time before a account 204 associated with the cryptocurrency. Enterprise
date threshold and determines that the conversion is not cryptocurrency server 130 may do so utilizing transforma
optimal ( e . g . the conversion at the first time is less than a tion engine 214 . Associating the second amount of the
benefit threshold ), conversion engine 216 may calculate the cryptocurrency with the second float account 204 may result
conversion at a second time before the date threshold and 65 in a credit to the second float account 204 in the second
determine that the conversion is optimal ( e. g ., the conver - amount of the cryptocurrency . In certain embodiments , once
sion at the second time is greater than the benefit threshold ). the second amount of the cryptocurrency is associated with
US 10 , 255 ,600 B2
19 20
second float account 204 , enterprise cryptocurrency some embodiments , aggregation engine 222 may determine
exchange server 130 may determine whether an amount of a public key associated with a customer account 203 . For
funds in second float account 204 is below a threshold . For example, customer 102 may request to deposit a certain
example, transformation engine 214 may monitor an amount amount of cryptocurrency in a particular customer account
of funds in second float account 204 , and in response to the 5 203 . As another example , customer 102 may request to
amount of funds in second float account 204 being below a withdraw a certain amount of cryptocurrency from a par
certain threshold , initiate the purchase of a quantity of the ticular customer account 203 . In response to the request,
cryptocurrency. Transformation engine 214 may initiate the aggregation engine 222 may determine the public key asso
purchase by communicating a request over network 120 via ciated with the particular customer account 203 . To deter
links 116 to an exchange 140 to purchase the quantity of the 10 mine the public key , aggregation engine 222 may retrieve
cryptocurrency . Payment for the purchase may be made by information included in customer account 203.
deducting the appropriate funds from another float account In certain embodiments, aggregation engine 222 may
204 associated with the enterprise . Upon payment, enter - determine that a customer 102 authorized a request. For
prise cryptocurrency server 130 may transfer the quantity of example , a customer 102 may be prompted to input user
the cryptocurrency to second float account 204 . 15 credentials before sending a request . User credentials may
After determining that the amount of funds in second float be the user ' s name, a username, a password , an account
account 204 is above the certain threshold or after transfer - name, a personal identification number, a private key , a
ring the purchased quantity of the cryptocurrency to second social security number , a credit card number, any combina
float account 204 , enterprise cryptocurrency server 130 may tion thereof, or any other information that can authenticate
transfer the second amount of the cryptocurrency to cus - 20 a customer 102 . In such an example , user credentials may be
tomer 102 . More specifically , enterprise cryptocurrency included in the request . Aggregation engine 222 may utilize
server 130 may use transformation engine 214 to transfer the enterprise cryptocurrency server 130 to retrieve information
second amount of the cryptocurrency to customer 102 over associated with the request, such as user credentials . Aggre
network 120 via links 116 . In certain embodiments, the gation engine 222 may then compare the user credentials
second amount of the cryptocurrency may be transferred 25 included in the request against the user credentials contained
directly to a particular customer account 203 associated with i n the particular customer account 203 to determine whether
the particular customer 102 . customer 102 authorized the request.
In certain embodiments, enterprise cryptocurrency server Aggregation engine 222 may also determine a value
130 may use exchange engine 228 (in addition to transfor - approximately equivalent to the amount of cryptocurrency
mation engine 214 ) to execute the exchange of a first 30 requested to be deposited (or withdrawn ) by customer 102 .
currency in a customer account 203 for a cryptocurrency. In certain embodiments , aggregation engine 222 may deter
Exchange engine 228 may be any software , hardware , mine the value based on various factors associated with the
firmware , or combination thereof capable of withdrawing or particular cryptocurrency to be deposited , such as crypto
depositing currency or cryptocurrency . According to some currency price , volatility of the cryptocurrency, popularity of
embodiments , exchange engine 228 may be a set of instruc - 35 the cryptocurrency, availability of the cryptocurrency , any
tions stored in memory 202 that may be executed by potential risk factor that may be associated with the particu
processor 201 . Exchange engine 228 may facilitate the debit lar cryptocurrency , any fees or other costs associated with
of an amount of a first currency requested to be exchanged . depositing an amount of the particular cryptocurrency , any
For example , transformation engine 214 may initiate the other factors associated with the particular cryptocurrency ,
debit of a particular customer account 203 in a certain 40 or any combination of the preceding . In other words, if
amount ( e . g ., a first amount ) in a first currency by commu- customer 102 requests the deposit of a certain amount of
nicating a message to exchange engine 228 . In response , funds to customer account 203 , then aggregation engine 222
exchange engine 228 may execute withdrawing the certain may determine a value of the cryptocurrency worth approxi
amount of the first currency from the particular customer mately the certain amount of funds . Equivalence may be
account 203 , thereby providing funds for the exchange to 45 determined at the time of the request ( e . g ., real-time) or
transformation engine 214 . Exchange engine 228 may also within a window of time ( e . g ., the end of the day ) .
facilitate the transfer of the second amount of the crypto In response to determining the value, aggregation engine
currency to customer 102 . For example , transformation 222 may associate the value with customer account 203 . For
engine 214 may initiate a deposit of a certain amount (e .g ., example , in response to a request to deposit a certain amount
a second amount) of a cryptocurrency in a particular cus - 50 of cryptocurrency, aggregation engine 222 may credit the
tomer account 203 . In response , exchange engine 228 may value of the certain amount of cryptocurrency to the par
execute depositing the certain amount of the cryptocurrency ticular customer account 203 . Alternatively , in response to a
in the particular customer account 203 , thereby providing request to withdraw a certain amount of cryptocurrency ,
customer 102 with the desired currency . aggregation engine 222 may debit the value of the certain
Enterprise cryptocurrency server 130 may include aggre - 55 amount of cryptocurrency to the particular customer account
gation engine 222. Generally , aggregation engine 222 may 203 . In certain embodiments , the value may refer to a virtual
facilitate aggregating and storing cryptocurrency, such as representation of the amount of cryptocurrency that is asso
aggregating certain quantities of cryptocurrency deposited ciated with customer account 203.
by customers in a cryptocurrency account.More specifically , Aggregation engine 222 generally collects and aggregates
aggregation engine 222 may be any software , hardware , 60 cryptocurrency deposited by customers 102 in an account at
firmware , or combination thereof capable of initiating or a financial institution ( e. g ., a bank ). For example , aggrega
performing a transaction to facilitate collecting and aggre - tion engine 222 may transfer an amount of cryptocurrency
gating cryptocurrency . According to some embodiments, associated with customer 102 to an enterprise account, such
aggregation engine 222 may be a set of instructions stored as a float account 204 , over network 120 via links 116 and
in memory 202 that may be executed by processor 201 . 65 aggregate the amount of cryptocurrency with an aggregated
Using information received over links 116 , aggregation amount of cryptocurrency in float account 204 . By doing so ,
engine 222 may perform various transactions . According to enterprise cryptocurrency server 130 may utilize equivalent
US 10 ,255 ,600 B2
21 22
amounts/values of cryptocurrency stored in float account is secure , a message (e .g ., a confirmation ) confirming the
204 and /or aggregation account 206 to conduct transactions public key is secure to customer 102 associated with cus
on the behalf of customer 102 that may want to utilize such tomer account 203.
cryptocurrency and debit/credit customer accounts 203 as The operation of enterprise cryptocurrency server 130 ,
appropriate. In certain embodiments, enterprise accounts 5 with respect to aggregation engine 222 , will now be dis
(e. g., float accounts 204 ) may be stored in memory 202. cussed . Generally , customer 102 may use the services pro
According to some embodiments, float accounts 204 may be vided by enterprise cryptocurrency environment 100 to
stored in one or more text files, tables in a relational deposit or withdraw cryptocurrency from a customer
database , or any other suitable data structure capable of 10 device 110203to. request
account More specifically , customer 102 may use
that an amount of cryptocurrency be
storing information . deposited to customer account 203 associated with an insti
Each float account 204 may be associated with an enter
prise , financial institution , or any other entity that may have tution operated by an enterprise . As a result, an amount of
cryptocurrency may be deposited to a float account 204
an account at a financial institution ( e . g ., a bank ). In certain associated with the institution operated by the enterprise .
embodiments , float account 204 may include information normation 15 Device 110 may cocommunicate this request to enterprise
that can be used by aggregation engine 222 to retrieve , store , cryptocurrency server 130 over network 120 via links 116 .
aggregate, deposit, withdraw , or otherwise transfer an In response to receiving the request for a deposit of an
amount of cryptocurrency to or from float account 204 . For amount of cryptocurrency , enterprise cryptocurrency server
example , a float account 204 may include information such 130 may determine a public key associated with customer
as an account number, cryptocurrency account balance (in 20 account 203 . To do so , enterprise cryptocurrency server 130
one or more cryptocurrencies ), routing information (e .g ., a may use aggregation engine 222 to retrieve information
unique identifier , private key associated with a float account included in customer account 203 that may be used to
204, public key associated with a float account 204 , and /or determine the public key.
any other suitable quantifiable information associated with Enterprise cryptocurrency server 130 may use the public
depositing and / or withdrawing cryptocurrencies in a float 25 key to receive the amount of cryptocurrency to be deposited
account 204 ), location information , or any other information over network 120 via links 116 . After receiving the amount
suitable for a particular purpose that an enterprise may have of cryptocurrency , enterprise cryptocurrency server 130 may
associated with a float account 204 , such as a cryptocurrency determine a value of the cryptocurrency approximately
account. equivalent to the amount of cryptocurrency to be deposited .
04 includes
In some embodiments, a float account 204 includes aa total
total 3030 approximately
For example , aggregation engine 222 may determine an
amount of cryptocurrency (in one or more cryptocurrencies ) equivalent value of the amount of cryptocur
rency based on a price associated with the particular cryp
aggregated and currently stored in the particular float tocurrency . Enterprise cryptocurrency server 130 may then
account 204 . Specifically, the aggregated amount of cryp associate the value of the amount of cryptocurrency with
tocurrency may include at least a portion of funds from41 35 customer account 203. For example , aggregation engine 222
previous customer deposits of cryptocurrency aggregated may credit customer account 203 based on the value of the
and stored in float account 204 . For example , aggregation
engine 222 may collect and aggregate any number of After associating the value of the amount of cryptocur
customer deposits (by one or more customers 102 of an rency with customer account 203, enterprise cryptocurrency
enterprise , financial institution , or other entity ) in float 40 server 130 may aggregate the amount of cryptocurrency
account 204 . In such an example , the funds may then be with an aggregated amount of cryptocurrency in float
available to the enterprise , financial institution , or other account 204 . For example , aggregation engine 222 may
entity for particular purposes . transfer the amount of cryptocurrency over network 120 via
According to certain embodiments, aggregation engine links 116 to float account 204. In some embodiments, the
222 may also deduct a certain amount of funds from a float 45 amount of cryptocurrency may be transferred over network
account 204. As an example , in response to a customer 102 120 via links 116 to float account 204 based at least in part
requesting to withdraw a certain amount of funds from a on a public key associated with float account 204. After
particular customer account 203 , aggregation engine 222 transferring the amount of cryptocurrency , enterprise cryp
may debit float account 204 in the certain amount of tocurrency server 130 may deposit the amount to crypto
cryptocurrency ( e . g ., deduct the certain amount of crypto - 50 currency in float account 204 . For example , aggregation
currency from the aggregated amount of cryptocurrency in engine 222 may add the amount of cryptocurrency to the
float account 204 ). Aggregation engine 222 may then with aggregated amount of cryptocurrency in float account 204 to
draw the amount of cryptocurrency from float account 204 yield an updated aggregated amount of cryptocurrency in
and transfer those funds to customer 102 or another recipi- float account 204.
ent. In such an example , aggregation engine 222 may 55 After aggregating the cryptocurrency, enterprise crypto
determine a value approximately equivalent to the amount of currency server 130 may facilitate securing a public key
cryptocurrency and associate that value with customer associated with customer account 203 in float account 204 .
account 203 (e . g ., credit the value of the amount of cryp - For example, enterprise cryptocurrency server 130 may use
tocurrency to customer account 203 ). aggregation engine 222 to communicate a request to secure
Aggregation engine 222 may also facilitate securing a 60 the public key to online vault 210 or offline vault 212 . As a
public key associated with a customer account 203. In result, the public key may be secured in float account 204 .
certain embodiments, aggregation engine 222 may commu- In certain embodiments , enterprise cryptocurrency server
nicate a message over network 120 via links 116 requesting 130 may use aggregation engine 222 to determine whether
that a public key be secured . In some embodiments , aggre - online vault 210 or offline vault 212 secured the public key .
gation engine 222 may determine whether the public key is 65 In response to determining online vault 210 or offline vault
secure . In such an embodiment, aggregation engine 222 may 212 secured the public key, enterprise cryptocurrency server
communicate , in response to determining that the public key 130 may utilize aggregation engine 222 to communicate a
US 10 ,255 ,600 B2
23 24
message ( e. g., a confirmation ) confirming the public key is accounts that customer 102 may have associated with a
secure over network 120 via links 116 to device 110 . particular enterprise . In some embodiments , encoding
In certain embodiments , customer 102 may use device engine 218 may associate a payment instrument with one or
110 to withdraw a certain amount of cryptocurrency from more cryptocurrency addresses associated with a customer
customer account 203 . In response to receiving a request to 5 account 203 associated with the particular customer 102 .
withdraw an amount of cryptocurrency , enterprise crypto - To provide a customer 102 with electronic access to
currency server 130 may withdraw the amount of crypto - cryptocurrency in a customer account 203 , encoding engine
currency from float account 204 . For example , aggregation 218 generally encodes, onto the payment instrument, such
engine 222 may debit the amount of cryptocurrency from cryptocurrency information that may be used to identify the
float account 204 , thereby deducting that amount of cryp - 10 particular customer account 203. For example , encoding
tocurrency from the aggregated amount of cryptocurrency to engine 218 may encode a customer public key associated
yield an updated aggregated amount of cryptocurrency in with customer account 203 onto the payment instrument. As
float account 204 . another example , encoding engine 218 may encode a cryp
After debiting float account 204 , enterprise cryptocur - tocurrency address associated with customer account 203
rency server 130 may determine a value approximately 15 onto the payment instrument. According to some embodi
equivalent to the certain amount of cryptocurrency requested ments , the public key or cryptocurrency address may be a
to be withdrawn . Enterprise cryptocurrency server 130 may sequence of letters and numbers associated with customer
do so by using aggregation engine 222 . Enterprise crypto - account 203 and may refer to an account number to which
currency server 130 may then associate the value of the funds of cryptocurrency may be received and / or stored .
amount of cryptocurrency with customer account 203. For 20 In certain embodiments, encoding engine 218 may encode
example, aggregation engine 222 may debit customer a token onto a payment instrument. For example, encoding
account 203 based on the value of the amount of crypto - engine 218 may generate a token that represents cryptocur
currency . After associating the value of the amount of rency information , such as a public key, and encode the
cryptocurrency with customer account 203 , enterprise cryp - generated token onto the payment instrument. In other
tocurrency server 130 may transfer the amount of crypto - 25 words, encoding engine 218 may create a new alias for the
currency to customer 102 or another recipient. As an cryptocurrency information using a unique token (e . g ., a
example ,aggregation engine 222 may transfer the amount of tokenized representation ofthe public key ), thereby securing
cryptocurrency over network 120 via links 116 to customer the cryptocurrency information .
102 or another recipient, such as a recipient associated with Enterprise cryptocurrency server 130 may also include
third party enterprise server 150 . 30 transaction engine 220 . In general, transaction engine 220
Enterprise cryptocurrency server 130 may be used by an may initiate the execution of financial transactions that
enterprise to initiate and execute actions and transactions involve cryptocurrency according to any one of a variety of
that allow the enterprise to complete a cryptocurrency embodiments suitable for a particular purpose . More spe
transaction request. Enterprise cryptocurrency server 130 cifically , transaction engine 220 may be any software , hard
may include encoding engine 218 . Generally , encoding 35 ware, firmware , or combination thereof capable of executing
engine 218 facilitates encoding cryptocurrency information a cryptocurrency transaction . In certain embodiments,
associated with a customer account 203 onto a payment encoding engine 218 may be a set of instructions stored in
instrument. More specifically , encoding engine 218 may be memory 202 that may be executed by processor 201.
any software , hardware, firmware , or combination thereof Using information received over links 116 , transaction
capable of encoding cryptocurrency information onto a 40 engine 220 may perform various transactions. According to
payment instrument. In certain embodiments , encoding some embodiments, transaction engine 220 may facilitate
engine 218 may be a set of instructions stored in memory the execution of a cryptocurrency transaction using a pay
202 that may be executed by processor 201 . ment instrument . For example , a customer 102 may use a
Encoding engine 218 may encode various cryptocurrency payment instrument to request to make a transaction for a
information associated with a customer account 203 onto a 45 certain amount of funds of cryptocurrency in a particular
payment instrument. Examples of a payment instrument customer account 203. In response to the request, transaction
may include a credit card , debit card , ATM card , charge card , engine 220 may determine cryptocurrency information
stored - value card , fleet card , gift card , electronic purse ( such encoded on the payment instrument that may be used to
as a mobile wallet), or any other suitable payment instru - execute the cryptocurrency transaction , such as cryptocur
ment thatmay be used by a customer 102 to make a payment 50 rency information associated with the particular customer
in cryptocurrency for a purchase or other obligation . Each account 203 .
payment instrument may be associated with one or more In certain embodiments , a customer 102 may request to
customer accounts 203 . For example , encoding cryptocur - execute a cryptocurrency transaction in response to a recipi
rency information onto a payment instrument may refer to ent, such as a merchant, requesting a payment be made in
electronically linking one or more customer accounts 203 55 cryptocurrency . As an example , a customer 102 may be
associated with customer 102 to the payment instrument. prompted for a payment in an amount of cryptocurrency at
Such customer accounts 203 may be associated with cryp - a payment terminal associated with the recipient of which
tocurrency . may be associated with a third party enterprise server 150
In certain embodiments, cryptocurrency information (e. g ., a point-of-sale device in a store or any other device that
encoded onto a payment instrument may include informa- 60 can receive payment from a payment instrument ). In
tion that can be used by enterprise cryptocurrency server 130 response , customer 102 may use a payment instrument at the
to execute a transaction involving cryptocurrency. For payment terminal to request a cryptocurrency transaction .
example , cryptocurrency information may include informa Upon initiating the payment, third party enterprise server
tion such as an account number (e . g ., a cryptocurrency 150 may communicate a request for the cryptocurrency
address ), account balance , customer public key , customer 65 payment over network 120 via links 116 .
private key , location information , or any other information Transaction engine 220 may determine cryptocurrency
suitable for a particular purpose associated with one or more information associated with customer account 203 that may
US 10 , 255 ,600 B2
25 26
be used to execute the cryptocurrency transaction . For action engine 220 may initiate a purchase of a quantity of
example , the request may indicate a payment instrument cryptocurrency from a cryptocurrency exchange , such as
encoded with cryptocurrency information , such as a public exchange 140a or exchange 140b . Upon purchasing the
key . The public key may be used to identify the particular quantity of cryptocurrency, transaction engine 220 may
customer account 203 associated with customer 102 . As 5 transfer the quantity of cryptocurrency to the particular
another example , the requestmay indicate a payment instru - customer account 203 over network 120 via links 116 . In
ment encoded with a token . In such an example , transaction certain embodiments , payment for the purchase may be
engine 220 may translate the token to the public key ( e . g ., made by deducting the appropriate funds from a customer
convert the token back to the public key ) identifying the account 203 associated with customer 102 in a different
particular customer account 203 . In certain embodiments , 10 currency .
transaction engine 220 may determine cryptocurrency infor - According to some embodiments , if a customer account
mation associated with customer account 203 based on any 203 does not comprise the minimum amount of cryptocur
other cryptocurrency information encoded on the payment rency , transaction engine 220 may determine whether cus
instrument and /or indicated by the request. tomer account 203 comprises a quantity of a second cur
Transaction engine 220 may also determine cryptocur- 15 rency ( such as a fiat currency or a different cryptocurrency ) .
rency information associated with a recipient of funds of If customer account 203 comprises a quantity of a second
cryptocurrency . For example , the request may include cryp currency , transaction engine 220 may associate that quantity
tocurrency information that may be used to transfer the with customer account 203 . Transaction engine 220 may do
amount of cryptocurrency to the recipient. Cryptocurrency so by debiting customer account 203 in the quantity of the
information associated with a recipient thatmay be included 20 second currency . Transaction engine 220 may then utilize
in the request may be information such as a recipient public transformation engine 214 to transfer the quantity of the
key (which may be associated with a third -party account or second currency to a first float account 204 associated with
a customer account 203 ), a recipient cryptocurrency address , the second currency .
or any other cryptocurrency information thatmay be used to Once the quantity of the second currency has been trans
execute a cryptocurrency transaction . For example , a request 25 ferred to first float account 204 , transaction engine 220 may
communicated by a payment terminal associated with third determine a second amount of cryptocurrency approxi
party enterprise server 150 , such as a request communicated mately equivalent to the quantity of the second currency .
in response to a merchant prompting customer 102 to make Transaction engine 220 may utilize transformation engine
a payment in cryptocurrency, may include a recipient cryp 214 to associate the second amount of cryptocurrency with
tocurrency address . In certain embodiments, the recipient 30 a second float account 204 associated with the cryptocur
may be another customer 102 of the enterprise . For example , rency . As a result, second float account 204 may be debited
the request may include a recipient public key associated in the second amount of cryptocurrency . Transaction engine
with another customer account 203 . 220 may then transfer the second amount of cryptocurrency
Using cryptocurrency information associated with a cus - to customer account 203 over network 120 via links 116 .
tomer account 203 , transaction engine 220 may associate an 35 Transaction engine 220 may store or retrieve information
amount of cryptocurrency with customer account 203 . For about any transaction in transactions 208 . Transactions 208
example , in response to a request to make a transaction in a may be any information associated with any transaction
certain amount of cryptocurrency, transaction engine 220 associated with enterprise cryptocurrency server 130 . In
may debit the particular customer account 203 in the certain certain embodiments , transactions 208 may be stored in one
amount (as well as any fees and other costs ) of cryptocur- 40 or more text files, tables in a relational database , or any other
rency . suitable data structure capable of storing information .
Transaction engine 220 may also initiate the transfer ofan The operation of enterprise cryptocurrency server 130 ,
amount of cryptocurrency to a recipient. For example , with respect to encoding engine 218 and transaction engine
transaction engine 220 may communicate a request to trans - 220 , will now be discussed . In operation, customer 102 may
fer the certain amount of cryptocurrency to the recipient 45 use the services provided by enterprise cryptocurrency
over network 120 via links 116 . Transaction engine 220 may server 130 to execute a transaction with cryptocurrency .
do so using a recipient cryptocurrency address , recipient More specifically , customer 102 may wish to use a payment
public key, or any other suitable cryptocurrency information instrument to execute transactions with cryptocurrency . As a
associated with the recipient. In certain embodiments , trans - result, enterprise cryptocurrency server 130 may encode
action engine 220 may directly transfer the certain amount 50 cryptocurrency information associated with customer
of cryptocurrency to the recipient. For example, if the account 203 onto a payment instrument. For example ,
recipient is another customer 102 , transaction engine 220 encoding engine 218 may encode various cryptocurrency
may transfer the certain amount of cryptocurrency to a information associated with a customer account 203 , such as
particular customer account 203 associated with that cus a cryptocurrency address or a public key, onto a payment
tomer 102 .
In certain embodiments, transaction engine 220 may cryptocurrency in customer account 203 .
provide overdraft protection for a customer 102. For After encoding cryptocurrency information onto a pay
example , before debiting a particular customer account 203 , ment instrument, customer 102 may use the payment instru
transaction engine 220 may determine whether a customer ment to request a certain amount of cryptocurrency be
account 203 comprises a minimum amount of cryptocur- 60 transferred to a recipient as payment for a purchase or other
rency to execute the requested cryptocurrency transaction obligation . As a result , the amount of cryptocurrency may be
In certain embodiments , if a customer account 203 does not deposited into an account associated with the recipient. In
comprise the minimum amount of cryptocurrency , transac certain embodiments , the request may be communicated to
tion engine 220 may not execute the cryptocurrency trans - enterprise cryptocurrency server 130 from device 110 , third
action . 65 party enterprise server 150, or any other device that may be
In alternative embodiments, if customer account 203 does associated with a payment terminal, over network 120 via
not comprise the minimum amount of cryptocurrency, trans - links 116 .
US 10 ,255 ,600 B2
28
In response to receiving the request, enterprise cryptocur over network 120 via links 116 . In such an example ,
rency server 130 may determine cryptocurrency information transformation engine 214 may then debit second float
associated with customer account 203 . For example, the account 204 associated with the cryptocurrency in a quantity
request may indicate a payment instrument encoded with of cryptocurrency approximately equivalent to the quantity
cryptocurrency information , such as a payment instrument 5 of the second currency . After debiting second float account
encoded with a public key or a token . Enterprise cryptocur 204 , transformation engine 214 may transfer the quantity of
rency server 130 may use transaction engine 220 to deter - cryptocurrency over network 120 via links 116 to customer
mine the cryptocurrency information encoded on the pay - account 203 . As a result, customer account 203 may com
ment instrument to thereby identify the particular customer prise a sufficient amount of cryptocurrency to execute the
account 203 to be debited in the certain amount of crypto - 10 requested cryptocurrency transaction .
currency . Enterprise cryptocurrency server 130 may also After determining customer account 203 comprises a
determine cryptocurrency information associated with the minimum amount of cryptocurrency, enterprise cryptocur
recipient. To do so , enterprise cryptocurrency server 130 rency server 130 may associate the amount of cryptocur
may use transaction engine 220 to determine cryptocurrency rency with customer account 203 . To do so , enterprise
information included in the request that may be used to 15 cryptocurrency server 130 may use transaction engine 220 to
transfer the amount of cryptocurrency to the recipient, such debit customer account 203 in the certain amount of cryp
as a recipient cryptocurrency address or recipient public key tocurrency . Enterprise cryptocurrency server 130 may then
associated with a third -party account or another customer initiate a transfer of the certain amount of cryptocurrency to
account 203 . the recipient. For example , transaction engine 220 may
After determining cryptocurrency information associated 20 communicate a request over network 120 via links 116 to
with customer account 203 and cryptocurrency information third party enterprise server 150 to transfer the certain
associated with the recipient, enterprise cryptocurrency amount of cryptocurrency to the recipient. As another
server 130 may determine whether customer account 203 example , transaction engine 220 may communicate a
comprises a minimum amount of cryptocurrency to execute request over network 120 via links 116 to a recipient
the cryptocurrency transaction . For example , transaction 25 cryptocurrency address associated with the recipient to
engine 220 may determine a quantity of cryptocurrency transfer the certain amount of cryptocurrency to the recipi
equivalent to the amount of cryptocurrency to be used in the ent. Communicating such a requestmay result in the certain
requested cryptocurrency transaction . Transaction engine amount of cryptocurrency being deposited into a recipient
220 may then determine whether the quantity of cryptocur - account, thereby confirming the requested cryptocurrency
rency exceeds the quantity of cryptocurrency associated 30 transaction for a payment or other obligation associated with
with customer account 203 . According to some embodi- customer 102 .
ments, the requested cryptocurrency transaction may not be Enterprise cryptocurrency server 130 may include alert
executed if customer account 203 does not comprise the engine 230 . In general, alert engine 230 may alert an
equivalent quantity of cryptocurrency (i.e., if customer enterprise or a customer of potentially suspicious activity
account 203 does not comprise sufficient funds ). 35 associated with a cryptocurrency transaction . More specifi
In certain embodiments, if customer account 203 does not cally, alert engine 230 may be any software , firmware , or
comprise sufficient funds, enterprise cryptocurrency server combination thereof capable of identifying a party to a
130 is capable of determining the difference between the cryptocurrency transaction as a known user and providing an
amount of cryptocurrency to be used in the requested alert if there is suspicious activity associated with a cryp
transaction and the quantity of cryptocurrency associated 40 tocurrency transaction based on the information regarding
with customer account 203 and facilitate the purchase of the the known user. In some embodiments, alert engine 230 may
difference . In such an embodiment, enterprise cryptocur - be a set of instructions stored in memory 202 that may be
rency server 130 may initiate the purchase of the difference executed by processor 201.
in quantity of cryptocurrency from an exchange 140 , such as Alert engine 230 may communicate various types of
exchange 140a or 140b . Enterprise cryptocurrency server 45 alerts . According to some embodiments , if alert engine 230
130 may do this by using transaction engine 220 to com - determines that the cryptocurrency transaction is suspicious
municate a request over network 120 via links 116 to based at least in part on a user profile, then it may commu
exchange 140a or exchange 140b to purchase the difference nicate an alert to the enterprise that the cryptocurrency
in quantity of cryptocurrency . Transaction engine 220 may transaction is suspicious . For example , if the user profile of
then transfer at least a portion of the difference in quantity 50 the user requesting to perform the transaction contains a
of cryptocurrency ( e .g ., the difference in quantity of cryp - public key associated with previous transactions that are
tocurrency less any fees or other costs ) over network 120 via suspicious, then alert engine 230 may inform the enterprise .
links 116 to customer account 203. Payment for the purchase In some embodiments , alert engine 230 may communicate
may be made by deducting the appropriate funds from an alert to a user who is a customer of the enterprise if the
customer account 203 in a second currency . 55 user profile of the third party indicates suspicious activity .
Alternatively , if customer account 203 does not comprise For example , if the third party user profile contains an IP
sufficient funds, enterprise cryptocurrency server 130 may address from an untrustworthy country , alert engine 230 may
determine whether customer account 203 comprises a quan inform the user of the suspicious IP address specifically or
tity of a second currency. Upon determining customer may generally inform the user that the third party to the
account 203 does comprise the quantity of the second 60 requested transaction is suspicious .
currency , enterprise cryptocurrency server 130 may use float Alert engine 230 may also retrieve block chain informa
accounts 204 to exchange the quantity of the second cur - tion associated with the cryptocurrency transaction to deter
currency (less any fees or other costs ) thatmay be deposited alert engine 230 may identify various public keys , IP
into customer account 203. For example , transformation 65 addresses , or cryptocurrency wallets associated with either
engine 214 may transfer the quantity of the second currency the sender or the receiver of the cryptocurrency transaction .
to first float account 204 associated with the second currency Using these identified block chain cryptoidentifiers, alert
US 10 ,255 ,600 B2
29 30
engine 230 may determine whether a block chain cryptoi may be a customer of the enterprise, a transactor of the
dentifier matches a stored cryptoidentifier associated with enterprise , a party unknown to the enterprise , or a known
one of the plurality of user profiles . In certain embodiments , party to the enterprise . In some embodiments , the request
alert engine 230 also determines that one of the plurality of may be initiated by a user through an enterprise application
user profiles is associated with either the user or the third 5 on device 110 . For example , a user may request to transfer
party of the requested cryptocurrency transaction based on funds from a cryptocurrency account to a third party on
the determined match . For example , if alert engine 230 device 110 . In some embodiments , the request may be
identifies a public key of the third party to the cryptocur- initiated by user utilizing a bank card , such as a debit card
rency transaction from the block chain information and or credit card , when making a purchase .
matches that to a public key from a stored user profile, then 10 Next, alert engine 230 may retrieve block chain informa
alert engine 230 may associate the third party to the user tion associated with the cryptocurrency transaction and
profile . determine at least one block chain cryptoidentifier from the
Alert engine 230 may also determine whether the block chain information . In some embodiments, a block
requested cryptocurrency transaction is potentially suspi- chain cryptoidentifier may comprise a public key, an IP
cious based at least in part upon the associated user profile . 15 address , and one or more cryptocurrency wallets . In some
In certain embodiments , alert engine 230 may calculate a embodiments , the block chain cryptoidentifier may be from
risk score ( for example, based on customer history , account either the user or the third party associated with the
balance , and type of potentially suspicious activity ) for the requested transaction . For example, block chain information
user profile. In some embodiments, alert engine 230 may m ay include a user public key, a third party public key, and
calculate separate factor scores based on individual pieces of 20 a user IP address , but not a third party IP address . Thus , in
information in the user profile to calculate the risk score for this example , alert engine 230 determines three block chain
the user profile . For example, alert engine 230 may calculate identifiers: the user public key , a third party public key , and
a first factor score based on the transaction history of the a user IP address.
user profile and calculate a second factor score based on the Alert engine 230 may then compare the block chain
IP address associated with the user profile . Alert engine 230 25 cryptoidentifier and the stored cryptoidentifier associated
may use the risk score and factor scores to determine with one of the plurality of user profiles . In some embodi
whether the requested cryptocurrency transaction is suspi ments , alert engine 230 may compare the block chain
cious. cryptoidentifier and the stored cryptoidentifier by perform
The operation of enterprise cryptocurrency server 130 , ing a search through all of the stored customer cryptoiden
with respect to alert engine 230 will now be discussed . 30 tifiers associated with the user profiles. For example, if the
Generally, enterprise cryptocurrency server 130 may use block chain cryptoidentifier comprises a public key of
alert engine 230 to facilitate identification of a party to a " examplepublickey1," then alert engine 230 will search
transaction as a known user and alerting of suspicious through all of the user profiles and compare this public key
activity associated with a cryptocurrency transaction based to any of the stored public keys in the user profiles .
on the information regarding the known user. More specifi- 35 Then , alert engine 230 may determine whether the block
cally , alert engine 230 may store a plurality of user profiles. chain cryptoidentifier and the stored cryptoidentifier asso
In some embodiments the user profile is associated with a ciated with one of the plurality of user profiles match . In
customer 102 of the enterprise (e. g., a person who has at some embodiments , the block chain cryptoidentifier must be
least one account with the enterprise ). In some embodi- identical to the stored cryptoidentifier associated with one of
ments, the user profile is associated with a known party, but 40 the plurality of user profiles. For example, alert engine 230
that known party does not have at least one account with the may determine that the block chain public key of “ example
enterprise . For example, there may be a user profile for a publickeyl ” matches the public key in a user profile of
beneficiary of an account, a power of attorney for an “ examplepublickey1," but will determine that the block
account, a third party the enterprise knows is suspicious or chain public key of “ examplepublickeyl” does not match
untrustworthy , or a transactor, which is a party who deposits 45 the public key in a user profile of " examplepublickey2 .” In
money to an account. An example of a transactor is the night some embodiments , alert engine determines a match when
manager of a restaurant who deposits money into the res - the block chain cryptoidentifier and stored cryptoidentifier
taurant' s account. Thus, the restaurant would have a user associated with one of the plurality of user profiles comprise
profile and the night manager would also have a user profile a certain number of similar characters. For example , alert
even though the user does not have an account with the 50 engine 230 may determine that the block chain public key of
enterprise . In some embodiments , the plurality of user " examplepublickeyl” matches the public key in a user
profiles are stored in memory 202 or customer accounts 203. profile of “ examplepublickey2 .”
In some embodiments , a user profile comprises information If alert engine 230 determines that the block chain cryp
associated with the user, such as , but not limited to , a user toidentifier and the stored cryptoidentifier associated with
name, a user address, one or more user public cryptocur- 55 one of the plurality of user profiles do not match , then the
rency keys, one or more user IP addresses , one or more user method ends. If alert engine 230 determines that the block
cryptocurrency wallets , and a financial transaction history, chain cryptoidentifier and the stored cryptoidentifier asso
which may include both fiat and cryptocurrency transac - ciated with one of the plurality of user profiles match , then
tions . According to some embodiments , such transactions alert engine 230 may determine whether one of the plurality
may be stored in transactions 208 . In some embodiments , 60 of user profiles is associated with the user or the third party
not every possible user or third party has a stored user based on the retrieved block information and stored cryp
profile . toidentifiers associated with one of the plurality of user
Alert engine 230 may receive a request from a user to profiles. In certain embodiments, alert engine 230 may
perform a cryptocurrency transaction with a third party . determine that the user is a customer of the enterprise based
Examples of cryptocurrency transactions include making a 65 at least in part upon determining a block chain cryptoiden
purchase , transferring money from an account, and trans - tifier and a stored cryptoidentifier associated with one of the
ferring money to an account. In some embodiments , the user plurality of user profiles are a match . In certain embodi
US 10 ,255 ,600 B2
31 32
ments, alert engine 230 determines that the third party is a associated with this user profile ) utilizes an IP address that
transactor of the enterprise . For example, alert engine 230 reflects a location in another state or country , then the second
may determine that the third party receiving the cryptocur- factor score may increase because the requesting user IP
rency transaction is the night manager at a restaurant address does not match the user profile IP address .
because the third party utilizes public key " examplepub - 5 Alert engine 230 may also calculate a risk score for the
lickeyl” and the nightmanager at a restaurant utilizes public user profile based at least in part upon the first factor score
key " examplepublickeyn." As another example, a customer and the second factor score . In certain embodiments , alert
of the enterprise may request the cryptocurrency transaction engine 230 calculates a risk score for the user profile based
without logging into the customer ' s enterprise account. at least in part upon the first factor score and / or the second
Thus , the enterprise may not initially recognize who the 10 factor score . For example , if alert engine 230 determines a
customer is. However, once determining the public key of high second factor score because of a suspicious IP address ,
the user , alert engine 230 may determine the user is a then alert engine 230 may determine a high risk score . As
specific customer, transactor, or known party of the enter another example , if alert engine 230 determines a low first
prise . factor score because there are no or very few large transac
If alert engine 230 determines that one of the plurality of 15 tions in the transaction history of the user profile , then alert
user profiles is not associated with the user or the third party engine 230 may calculate a low risk score .
based on the retrieved block information and stored cryp Next, alert engine 230 may determine whether a crypto
toidentifiers associated with one of the plurality of user currency transaction is suspicious based at least in part upon
profiles, then the method ends . If alert engine 230 deter - the user profile . In some embodiments, alert engine 230
mines that one of the plurality of user profiles is associated 20 determines the cryptocurrency transaction is suspicious
with the user or the third party based on the retrieved block based on at least one of the first factor score , second factor
information and stored cryptoidentifiers associated with one score , and risk score . For example, if the risk score is high ,
of the plurality of user profiles, then alert engine 230 may it may indicate the user or third party associated with the
calculate a first factor score based at least in part upon the user profile has engaged in potentially fraudulent transac
transaction history of the user profile associated with either 25 tions and thus makes it more likely that the current requested
the user requesting the transaction or the third party in the transaction may also be suspicious. Alert engine 230 may
transaction . In some embodiments, the transaction history compare the risk score to one or more thresholds to deter
may include the entire transaction history of a user or may mine whether the transaction is suspicious . For example , if
include only certain transactions . For example, the transac the risk score is 50 , alert engine 230 may determine it is
tion history may include only transactions over a certain 30 higher than the threshold of 20 and thus alert engine 230
amount of cryptocurrency. As another example , the trans - determines the transaction is suspicious.
action history may include only transactions within a certain If alert engine 230 , determines the cryptocurrency trans
timeperiod , such as transactions that occurred within the last action is not suspicious based at least in part upon the user
one month , the last one year, or the last five years . profile , then the operation of alert engine 230 may conclude .
The first factor score may be associated with the poten - 35 If, however, alert engine 230 determines the cryptocurrency
tially suspicious or seemingly fraudulent past transactions transaction is suspicious based at least in part upon the user
associated with the user profile . In some embodiments , profile , then alert engine 230 may communicate an alert to
suspicious transactions, such as a high value transaction of the enterprise that the cryptocurrency transaction is suspi
1000 units of cryptocurrency , may indicate a higher risk of cious . In some embodiments, alert engine 230 communi
fraudulent activity and thus increase the first factor score . In 40 cates an alert whether the cryptocurrency transaction is
some embodiments, alert engine 230 determines the pattern suspicious based on the third party ' s association with a
of spending based on the transaction history and is able to suspicious user profile or the requesting user 's association
determine if the current transaction is a common transaction with a suspicious user profile . In certain embodiments , the
or an abnormal one compared to the transaction history . For alert may include a notification that the cryptocurrency
example , if the user associated with the user profile regularly 45 transaction may not be completed based on the suspicious
transmits 1000 units of cryptocurrency on a weekly basis, ness of the cryptocurrency transaction . Alert engine 230 may
then alert engine 230 may determine the requested transac - also allow the transaction to be completed , but associate a
tion of 1000 units of cryptocurrency indicates a lower risk of " flag " or other warning with the user profile associated with
fraudulent activity and thus decreases the first factor score . either the third party or the requesting user in certain
Next, alert engine 230 may calculate a second factor score 50 embodiments .
based at least in part upon the user profile IP address . In Alert engine 230 may then communicate an alert to the
some embodiments , alert engine 230 determines a location requesting user that cryptocurrency transaction is suspicious
associated with the user profile IP address. In some embodi- based on the user profile associated with the third party . In
ments, the determined location may be a physical address, certain embodiments, the requesting user may be a trusted
GPS coordinates , a city , a state , or a country . In some 55 customer 102 of the enterprise and alert engine 230 may
embodiments, the second factor score may increase for a warn customer 102 of the risk in transaction with this third
location associated with high risk and decrease for a location party.
associated with low risk , depending on the circumstances Enterprise cryptocurrency server 130 may include cryp
associated with customer 102 . For example , if alert engine tocurrency risk detection engine 232 . Generally , risk detec
230 determines the location is a country , and that country is 60 tion engine 232 determines the amount of risk associated
commonly associated with fraudulent IP addresses, then the with a cryptocurrency transaction . More specifically, alert
second factor score may increase. In some embodiments , engine 230 may be any software , hardware, firmware, or
alert engine 230 may compare the requesting user IP address combination thereof capable of determining the risk asso
from the block chain information and the user profile IP ciated with a cryptocurrency transaction and , based on the
address to calculate the second factor score . For example , if 65 determined risk , determining either that there is potentially
the user profile IP address is associated with a particular suspicious activity by a third party or that the transaction is
state , but requesting user (which was determined to be approved because there is little risk associated with the
US 10 ,255 ,600 B2
33 34
cryptocurrency transaction. In some embodiments, crypto - IP address , a third party IP address , a customer public key ,
currency risk detection engine 232 may be a set of instruc- a third party public key, an age of the customer public key,
tions stored in memory 202 that may be executed by an age of a third party public key , or an age of the
processor 201. cryptocurrency . The block chain information may comprise
Cryptocurrency risk detection engine 232 may detect risk 5 one , some, or all of these block chain factors.
associated with a cryptocurrency transaction and provide Cryptocurrency risk detection engine 232 then determines
various notifications based on the detected risk . In certain whether the at least one block chain factor identified
embodiments , cryptocurrency risk detection engine 232 includes a customer IP address . The customer IP address
calculates a risk score (e . g ., based on customer history , may be associated with customer 102 of the enterprise . If the
account balance , and type of potentially suspicious activity ) 10 at least one block chain factor includes a customer IP
for performing the cryptocurrency transaction and deter - address , then cryptocurrency risk detection engine 232
mines whether the transaction is approved based on that risk determines the location associated with the customer IP
score . An example of a notification that cryptocurrency risk address . In some embodiments , the determined location may
detection engine 232 may communicate is a notification to be a physical address, GPS coordinates, a city, a state , or a
the customer or the third party whether the transaction is 15 country . Next, cryptocurrency risk detection engine 232
approved or not. Cryptocurrency risk detection engine 232 calculates a factor score for the customer IP address based at
may also determine whether the risk score indicates poten - least in part upon the location associated with the customer
tially suspicious activity by the third party and , if so , may IP address. In some embodiments , the factor score may
notify the customer of the potentially suspicious activity. increase for a location associated with high risk and decrease
Cryptocurrency risk detection engine 232 may receive a 20 for a location associated with low risk , depending on the
request from a customer 102 to perform a cryptocurrency circumstances associated with customer 102 . For example , if
transaction with a third party and retrieve block chain cryptocurrency risk detection engine 232 determines the
information associated with the transaction . In certain location is a country, and that country is frequently associ
embodiments, cryptocurrency risk detection engine 232 ated with fraudulent transactions , then the factor score may
identifies block chain factors from the block chain informa- 25 increase . As another example , if it is known that customer
tion and determines whether any block chain factors include, 102 resides in one state , but the IP address reflects a location
for example , a customer IP address , a third party IP address, in another state or country , then the factor score may
or a third party public key . If any block chain factors include increase because customer 102 is not in the normal location .
this information , cryptocurrency risk detection engine 232 Cryptocurrency risk detection engine 232 may then deter
may calculate factor scores for these and any other block 30 mine whether the at least one block chain factor previously
chain factors . For example , cryptocurrency risk detection identified includes a third party IP address . The third party
engine 232 may determine the location associated with the IP address may be associated with third party . If the at least
IP addresses and calculate a factor score for the IP address one block chain factor includes a third party IP address , then
based on the associated location . Also , cryptocurrency risk cryptocurrency risk detection engine 232 determines the
detection engine 232 may retrieve and review any transac - 35 location associated with the third party IP address. In some
tion history (such as transactions 208 ) associated with the embodiments , the determined location may be a physical
third party public key and calculate a factor score for the address , GPS coordinates , a city , a state , or a country.
public key. Cryptocurrency risk detection engine 232 may Cryptocurrency risk detection engine 232 may also calculate
also determine the amount of cryptocurrency associated with a factor score for the third party IP address based at least in
the cryptocurrency transaction . In certain embodiments , 40 part upon the location associated with the third party IP
cryptocurrency risk detection engine 232 calculates the risk address . In some embodiments, the factor score may
score based at least in part upon the factor scores and the increase for a location associated with high risk and decrease
amount of cryptocurrency associated with the cryptocur for a location associated with low risk , depending on the
rency transaction . circumstances. For example, if cryptocurrency risk detection
The operation of enterprise cryptocurrency server 130 , 45 engine 232 determines the location is to a certain restricted
with respect to risk detection engine 232 , will now be country , and the enterprise is subject to restrictions that it
discussed . Enterprise cryptocurrency server 130 may receive cannot receives funds or send funds to the restricted country ,
a request from customer 102 to perform a cryptocurrency then the factor score may increase .
transaction with a third party . To do so , enterprise crypto - Next, cryptocurrency risk detection engine 232 may
currency server 130 may use cryptocurrency risk detection 50 determine whether the at least one block chain factor iden
engine 232 to receive the request over network 120 via links tified previously includes a third party public key . If cryp
116 . In some embodiments , the request may be initiated by tocurrency risk detection engine 232 determines the at least
customer 102 through an enterprise application on device one block chain factor identified in step 906 includes a third
110 . In some embodiments, the request may be initiated by party public key , then it retrieves the transaction history
customer 102 utilizing a bank card , such as a debit card or 55 associated with the third party public key . In some embodi
credit card , when making a purchase . Examples of crypto - ments , cryptocurrency risk detection engine 232 may
currency transactions include making a purchase , transfer - retrieve the transaction history from transactions 208 stored
ring money from an account, and transferring money to an in the enterprise cryptocurrency server 130 . In other embodi
account. In some embodiments, the third party may be a ments , cryptocurrency risk detection engine 232 may
second customer 102 of the enterprise , a merchant, a retailer, 60 retrieve the transaction history from a source outside the
a person outside enterprise , an account outside the enter - enterprise , such as the third party enterprise server 150 or the
prise , or an account with an unknown owner. internet. Cryptocurrency risk detection engine 232 may also
Cryptocurrency risk detection engine 232 may retrieve review the transaction history associated with third party
block chain information associated with the cryptocurrency public key . In some embodiments, the review may include
transaction and identify at least one block chain factor based 65 the transaction history of other public keys located in the
at least in part upon block chain information . In some same wallet as the third party public key . In some embodi
embodiments , a block chain factor may comprise a customer ments, the review includes the entire transaction history or
US 10 , 255 ,600 B2
35 36
detection engine 232 may review only transactions over a the amount of cryptocurrency . The risk score may be cal
certain amount of cryptocurrency. As another example , the culated in a number of suitable ways . In some embodiments ,
review may include only transactions within a certain time the risk score increases as the amount of cryptocurrency
period , such as transactions that occurred within the last one 5 increases assuming that the larger the transaction the higher
month , the last one year, or the last 5 years . the risk of a fraudulent transaction . For example , if the
Next, cryptocurrency risk detection engine 232 calculates transaction is for 2 million units of cryptocurrency , rather
a factor score for the third party public key based at least in than 10 units of cryptocurrency , then the risk score may
part upon the transaction history associated with the third increase . In some embodiments, the risk score will be based
party public key . The factor score may be associated with the 10 at least in part upon the factor scores for the at least one
suspicious or seemingly fraudulent past transactions asso - block chain factor. For example , cryptocurrency risk detec
ciated with the third party public key. In some embodiments , tion engine 232 may add all of the factor scores up to
suspicious transactions, such as a high value transaction of determine the overall risk score . In some embodiments ,
1000 units of cryptocurrency , may indicate a higher risk of cryptocurrency risk detection engine 232 may weight each
fraudulent activity and thus increase the factor score . In 15 of the factor scores depending on the importance to risk of
some embodiments, cryptocurrency risk detection engine fraud . For example , there may be a high concern related
232 determines the pattern of spending based on the trans foreign IP addresses and thus cryptocurrency risk detection
action history and is able to determine if the current trans - engine 232 may weight that factor score by two when
action is a common transaction or an abnormal transaction calculating the risk score . In some embodiments , cryptocur
as compared to the transaction history. For example, if the 20 rency risk detection engine 232 determines the average of all
third party public key regularly transmits 1000 units of of the factor scores in calculating the risk score . In some
cryptocurrency on a weekly basis, then cryptocurrency risk embodiments , cryptocurrency risk detection engine 232
detection engine 232 may determine the requested transac calculates an overall factor score and multiples it by the
tion of 1000 units of cryptocurrency indicates a lower risk of amount of cryptocurrency .
fraudulent activity and thus decreases the factor score . 25 Cryptocurrency risk detection engine 232 may then deter
Cryptocurrency risk detection engine 232 may next deter m ine whether the transaction is approved based at least upon
mine a factor score for the at least one block chain factor. In the risk score . In some embodiments, cryptocurrency risk
some embodiments, the at least one block chain factor only detection engine 232 compares the risk score to a threshold
includes a customer IP address , a third party IP address , and to determine whether the transaction is approved . For
a third party public key , such that there are no other factor 30 example , if the risk score is above the threshold , then it is not
scores to determine . If the at least one block chain factor approved and if the risk score is below the threshold then it
includes other block chain factors , for example , an age of the is approved . In some embodiments, the threshold may
customer public key , an age of the third party public key, or change depending on the customer, the third party , the type
an age of the cryptocurrency, then cryptocurrency risk of cryptocurrency , the amount of cryptocurrency, or another
detection engine 232 determines a factor score for each of 35 factor relating to the transaction . For example , if the cus
these other block chain factors . In some embodiments , the tomer is long -term , important, reliable , or trustworthy, then
factor score for the age of the customer public key and the the threshold may be set higher and allow