US10275772B2 — Cryptocurrency risk detection system (Part 1 of 3)
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.
US010275772B2
(12) United States Patent ( 10) Patent No.: US 10 ,275 ,772 B2
Ronca et al. (45) Date of Patent: Apr. 30 , 2019
(54 ) CRYPTOCURRENCY RISK DETECTION (56 ) References Cited
SYSTEM
U .S . PATENT DOCUMENTS
(71 ) Applicant: Bank of America Corporation , 2011/0184838 Al * 7/2011 Winters ................. G06Q 20 / 10
Charlotte , NC (US) 705 /27 . 1
2012 /0066763 A1* 3/2012 McHugh ............... GO6F 21/577
(72 ) Inventors: James G . Ronca , Decatur, GA (US ); 726 /22
Joseph B . Castinado , Northglenn, CO 2014 /0045456 Al* 2/2014 Ballai ................. H04W 12/ 12
(US); Heather Dolan , Sarasota , FL 455 /410
(US ); Thomas E . Durbin , Waynesville, 2014 /0058949 A1* 2 /2014 Ciurea ................... GO6Q 20 /40
705/ 44
NC (US); Richard H . Thomas , 2015/0287026 A1 * 10/2015 Yang ............... GO6Q 20705
/3678
Charlotte , NC (US ) /69
2015/0310424 A1* 10 /2015 Myers . ............ GO6Q 20/3678
(73 ) Assignee : Bank of America Corporation , 705 /69
Charlotte , NC (US ) (Continued )
( * ) Notice: Subject to any disclaimer, the term of this FOREIGN PATENT DOCUMENTS
patent is extended or adjusted under 35 WO WO 2015085393 A1 * 6 /2015 .........GO6Q 20/ 06
U .S .C . 154 (b ) by 1128 days .
(21) Appl. No .: 14 /305 ,916 OTHER PUBLICATIONS
U .S . Appl. No. 14 /305 ,783 , filed Jun . 16 , 2014 , Ronca , et al.
( 22 ) Filed : Jun . 16 , 2014 (Continued )
(65 ) Prior Publication Data Primary Examiner - John W Hayes
Assistant Examiner — Jason B Fenstermacher
US 2015 /0363783 A1 Dec. 17 , 2015 (74 ) Attorney , Agent, or Firm — Baker Botts L .L .P .
(57) ABSTRACT
(51) Int. Ci. The system includes a processor operable to receive a
G060 20 /40 ( 2012 .01 ) request from a customer to perform a cryptocurrency trans
G060 20 /06 ( 2012 . 01) action with a third party . The processor may also retrieve
G06Q 20 /38 ( 2012 .01) block chain information associated with the cryptocurrency
(52 ) U .S . CI. transaction . The processor may also determine the amount of
CPC ....... GO6Q 20 /4016 (2013 .01 ); G06Q 20 /065 cryptocurrency associated with the cryptocurrency transac
(2013 .01); G06Q 20 /382 (2013.01); G06Q tion . The processor may further calculate a risk score for
performing the cryptocurrency transaction based at least in
20 /3829 (2013.01)
(58 ) Field of Classification Search part upon the block chain information and the amount of
None cryptocurrency .
See application file for complete search history . 17 Claims, 16 Drawing Sheets
Third Party - 150
Enterprise
Server Exchange ( 140a
Exchange
GUI
114 716 170
wwwww Network Payment
120
wahyu Service
16
Virtual
Customer
102 117 P M 1 10 accounts
Device 110 1166 72
Data
Data Center 160b
Enterprise Center
cryptocurrency 160a
Enterprise Cryptocurrency server
Environment 100
US 10 ,Page
275,2772 B2
(56) References Cited
U . S . PATENT DOCUMENTS
2016 /0260102 A1 * 9/2016 Nightengale .......... G06Q 20 /20
OTHER PUBLICATIONS
U .S . Appl. No. 14 /305, 928 , 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 /306 ,110 , filed Jun . 16 , 2014 , Ronca , et al.
U . S . Appl. No. 14 / 305 , 579 , 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 ,981, filed Jun . 16 , 2014 , Ronca , et al.
U . S . Appl. No . 14 /306 ,054 , filed Jun . 16 , 2014 , Ronca , et al.
U .S . Appl. No. 14 / 306 ,158 , filed Jun . 16 , 2014 , Ronca , et al.
* cited by examiner
atent Apr. 30 , 2019 Sheet 1 of 16 US 10 ,275 ,772 B2
P a y m
Exchange accounts
170
por
e
SY
n t S e r v i c e VZUM
We
172
Ex140ac(h nge WY
Data
GOPRO
1
R
116
1
116 Avt
Center .Dec
-
130
NA
TM Oro
120
Enterprisecryptocurency
COR44 EnterpriseServer
**
*
WW
D
110
ev i c e ECnrytpetorcpuriesncey
Env1iro0nmen0t
* *
Customer
U . S . Patent Apr. 30, 2019 Sheet 2 of 16 US 10 ,275 ,772 B2
mm 202
2
Transformation AUD
Engine 214
Conversion Customer
Engine 216 Accounts
203
doo
Encoding
Engine 218 Float
Account
204
Transaction
box be
www
ay
Aggregation KOLA
Engine 222
Calculation Transactions
Engine 224 WOOD
208
Www
Cryptocurrency P2P
Risk Detection Engine 238
Engine 232
95 W
Exchange Validation Offline
OTA Engine 228 Engine 234 Nooddodo
RITE
Vault 212
www
Alert Vault WVAwTTwY
Engine 230
VULASKER
Engine 236
Enterprise Cryptocurrency Server 130
A
U . S . Patent Apr. 30, 2019 Sheet 3 of 16 US 10 , 275 ,772 B2
A te w ww www www * * * * * * www . www ww . www ww me
COMPUTER SYSTEM
wwwww 302
PROCESSOR
W INNANGULY
wykonana 304
w
MEMORY
MEMORY
NANNA
STORAGE
WWW
WV444112LLLLL 11
VO INTERFACE
YYYYYY
COMMUNICATION
ww w ww mm masa tu ** www ww www meer meer en mer
U .S . Patent Apr. 30, 2019 Sheet 4 of 16 US 10,275,772 B2
START
ADA osari
20 0
14YMUXLIV
- 404
900
DETERMINE CURRENT EXCHANGE RATES
DETERMINE OPTIMAL EXCHANGE RATE
1 EXCHANGE RATE TEREZA
wwwwwwwwwwww
DETERMINE CURRENCY
URANTdin dan WWW
AN
* 412
ASSOCIATE FIRST AMOUNT OF FIRST CURRENCY YEH
WITH CUSTOMER ACCOUNT
tand ng
Buluh an
* ** * * * * * * ** www X Y * * * * * www * * * *wwwwwwwww
I th wa Yoga
SUHTE N FB
what
The WONO CH HO
UWEN he
200
AMOUNT OF
FUNDS IN SECOND FLOAT ACCOUNT BELOW
A THRESHOLD ?
YES
WW+*U INITIATE PURCHASE OF A QUANTITY OF SECOND CURRENCY
EXCHANGE
W eetti
TRANSFER QUAN URRENCY INTO COM
WWWW * ** * * * * * * ** *
TRANSFER SECOND AMOUNT OF SECOND CURRENCY TO CUSTOMER
XS
FLOAT ACCOUNT 90550
YAVU
426
Vio
* ** * * ** * * * * ** *
END
U . S . Patent Apr . 30 , 2019 Sheet 5 of 16 US 10 ,275 ,772 B2
NEW
START wwVBULUM
** 14h4yry
502
RECEIVE karabu
PLOWRODU
SY
CONVERSION
RETRIEVE PRICE DATA ASSOCIATED W RRENCIES
www 506
1ERM
YES WEn
RRENCY IN cut
DETERMINE OPTIMAL EXCHANGE RATE
512
INITIAT
CURRENCY Woodrow
vo504160V
WORK
U . S . Patent Apr. 30, 2019 Sheet 6 of 16 US 10 ,275 ,772 B2
C STARTS 20
12W www 4602
RECEIVE REQUEST TO DEPOSIT AMOUNT OF CRYPTOCURRENCY
popcowo
999 $
3 00M
. M
NOK3
w
?
na
604
hahah Wa SA 32
606
LOOD
RECEIVE AMOUNT OF CRYPTOCURRENCY
som
go
608
ERMINE VA MON annen wew AN AN
CRYPTOCURRENCY
610
ASSOCIATE VALUE WITH CUSTOMER ACCOUNT
MATOKEO
LYRIRMWWWWAAAMAAN
prin612
AGGREGATE AMOUNT OF CRYPTOCURRENCY WITH
9 92 93
tout 1 2 3 4 36
0
bos
WWW
yo
SVARASWAMWA
maneno 616
&
PUBLIC KEY SECURE ?
vwVZApywrit
0001
YES
YES , COMMUNICATE CONFIRMATION CONFIRMING PUBLIC room
KEY SECURE TO CUSTOMER
v
NO , END
20oscous podno
C END
WMWANASONIC
SU
FIG . 6
atent Apr. 30 , 2019 Sheet 7 of 16 US 10,275, 772 B2
22
START
1 maneno ya 702
WITH CUSTOMER ACCOUNT ONTO PAYMENT INSTRUMENT Vitit
M
704
RECEIVE REQUEST FOR CRYPTOCURRENCY TRANSACTION 2
bos
4 444
DETERMINE CRYPTOCURRENCY INFORMATION
XoXXX ** *
Bren a
ASSOCIATED
and
WOL 000W
708
DETERMINE U
A ROY CORO
IPIENT
RMATION ASSOCI OCIATES HADOW
CUSTOMER ACCOUNTUNOR 710 3
V
YES mannen COMPRISE MINIMUM AMOUNT OF
CRYPTOCURRENCY FOR CRYPTOCURRENCY
w
TRANSACTION ?
ISHYAVALLARNIYYU 2119
NO LLLLLL
wych INITIATE PURCHASE OF A QUANTITY OF CRYPTOCURRENCY
YY1I2
22
sos
meanza
HAYUELLERY 11: 11
TRANSFER AT LEAST A PORTION OF THE QUANTITY
1 OF
20 9
CRYPTOCURRENCY TO CUSTOMER ACCOUNT
wwwwww W
Www ca
wyu mor
kohanemine :
43
famour
.
2
than
e
INITIATE TRANSFER OF FIRSTAMOUNTOF CRYPTOCURRENCY
4 . ** *
*
3
*
Sunto
C END D
4 VAAK
atent Apr. 30 , 2019 Sheet 8 of 16 US 10,275,772 B2
Start )
802
Store a plurality ofuser profiles
OP
RIVDONO
* * * * *** * * * MULTITKY ** * * * VEN
23 and NE
with third party
RIW
* * ** * ** * ** * ( 806
AW Retrieve block chain information associated with cryptocurrency
2
dusty
transaction
?
Determine at least one block chain cryptoidentifier fromWA the
WS
block chain information
Wood 9 . 90
810
Compare the block chain cryptoidentifier and the stored
cryptoidentifier in XITOY
3
Determine
whether the block chain cryptoidentifier
yht
and the stored cryptoidentifier associated with one
WAHA of the plurality of user profiles
Yes
W
Determine
whether one of the plurality ofuser profiles is
WUWASWCASAWU
W
WEVMA
associated with user or
third party
Calculate a first factor score based at least in part upon the
wenn816 * * * * **
transaction history of the user ST
Calculate a second factor score based at least in part upon ho
w
Wwwwvv the user IP address
U . S . Patent Apr . 30 , 2019 Sheet 9 of 16 US 10,275,772 B2
3 MIVVY
han
WWW
SA
Determine sammensamma 822
Whether cryptocurrency transaction
* * * * ** *
is suspicious based at least in part
upon the user profile
* ** * 4999
Yes
Communicate an alert to the enterprise that the cryptocurrency 38 ?
transaction is suspicious WWW
WANN44 W
Communicate an alert to the user that cryptocurrency
transaction is su U
Y *
BA
U . S . Patent Apr . 30 , 2019 Sheet 10 of 16 US 10 ,275,772 B2
25
Start
woment902
C
transaction with third party
AY
its
12
1 mama
WYWITY * **
Identify block chain factor based on block chain information
AND steun
eneminense on o908
Determine morënmannamm.momsoni
whether block chain factor includes customer
WOOOOOOOOOOO IP address?
wwwwyr Determine location associated with customer IP address
* * ** * * * * * * YYYYYY
WOONY
*
08
Calculate factor score for customer IP address
w
W
wwwwwwwww
Determine nemmenommen 914 Og
v
whether block chain factors include third party
IP address?
Avwwwwww
* * * * 4vYy 44 VYV
Determine location associated with third party IP address
M AMAAN
Calculate factor score for third partyRaument.are IP address based on location
xrWV associated with third party IP address 1
Determine
whether block chain factors
key ?
include third party public and
w
. au
VrywwLNWA 0000
WYSY
ISUU
Yes
associat
??????
Calculate factor score for third party public key
*
ar F
GER
kh
VY
... 922
pm926
U . S . Patent Apr. 30, 2019 Sheet 11 of 16 US 10,275,772 B2
Determine a factor score for other block chain factors 9
930
21
Currency associated withTE
urrencytransaction
D
A
LA
*WWW
*
mm.932
1 1
Determine 934
whetherwion the transaction is approved based on the risk
FU
Score ?
Deboren
VNAVY
936
Communicate to customer and third party that transaction is approved
1987 1264
2 .
COM VE
SS RE
ADOR
Communicate to customerand third party that transaction is not approved
WW
4
AM
X
1
RO
940
whether the risk score indicates suspicious activity by the
third party ? ooooo
W AAR GREY
Communicate a notification to the customer that the risk score indicates
3
An
$ ot
tra
YOO L
FIG . 9
U . S . Patent Apr . 30 , 2019 Sheet 12 of 16 US 10 ,275,772 B2
WWYW NY
( Start )
1002
1 Store customer profile
1
9000W
A
or
WYNWY
Receive request to perform cryptocurrency transaction
transaction S ot S
www 1008
Determine type of cryptocurrency ON
1 931
involved in cryptocurrency transaction
Chei 31
ww * * * * ** * * * * 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 atleast in part upon the 60
customer IP address
WWWWWM WW * V ** Urt *
Determine trustworthiness of customer based on customer profile
21
600W
en
MAX
W !
NO
1 . se yun 1016
Calculate risk score for cryptocurrency transaction
-- 1018
Compare risk score to at leastone threshold
PAIX
1020
Suwa WICART To
*
*
DO
- 1022
Receive number ofvalidations from plurality ofminers XWE
W A44499ULLY
Compare number ofreceived validations to number ofrequired validations w
Roser
U . S . Patent Apr. 30 , 2019 Sheet 13 of 16 US
US 10
10 ,,212
275 ,772 B2
Determine
Whether number of received validations complies with number
of required validations ?
ANALA
Yes 7028
i MA ta SA
TYTT
1 41EW * * * 2
031
Send notification
UMU to customer and third party that cryptocurrency my
VO
transaction is not confirmed som over
1032
Communicate request to customer to retransmit cryptocurrency
W
AS ,
End 0000 ins
FIG . 10
boco(r Contd )
atent Apr. 30 , 2019 Sheet 14 of 16 US 10,275, 772 B2
Receive an
Blectronic requestto
store a private key
www man1108
Generate a first Apply a v 1106
vault key based'at VY
hash algorithm Yes my
algorithm to first
least in part upon
the private key
* RY
71110
1
Generate a second
vault key based at
Apply a 1112
hash algorithm to Yes Apply hash
least in part upon the second vault model moment...non algorithm to second
the private key key?
B
1 Dimanche
Facilitate the
Wind
storage of the first
Vault key ata first
data center >
Facilitate the
VUXENOVA Second vault key at
storage of the
End
a second data center weams
11
U . S . Patent Apr . 30 , 2019 Sheet 15 of 16 US 10 ,275,772 B2
1202
Receive a request to 90000
deposita 2
quantity of
cryptocurrency into
a user account px
-> 1204
Associate the
3
h
FAO elyre UU Wy A
the user account
1206
Deposit the quantity A
of cryptocurrency
into a vault connected
to a network
mm
Does the 1208
totalquantity of No
YURAN
*
1 YAVY
q
Disconnect
n 1210
Wwwwwwwww .1200
U . S . Patent Apr . 30 , 2019 Sheet 16 of 16 US 10 ,275,772 B2
tre
pa 1302
Receive
communication
from an electronic
payment service
... 7304
Determine that the
be
user initiated
Wys a
hh
requestfora
.
.
configured to 2
7 gareth 1
of currency
peu 1306
Validate the
financial transaction
based at least upon
data received from
the electronic p . 7300
payment service
prown 1308
Ende WW
Determine the user
account is
associated with the Transfer the
virtual account
based at least upon cryptocurrenc
data received from
the electronic
payment service cruz
04 3
13121 din 1314
Determine a quantity Does the
of Cryptocurrencytugor Quan DIGINOCUINO TAMAN Y es I Purchase
of
the deficit
cryptocurrency
equivalent to the exceed a tola quantity from a cryptocurrency
amount of currency associated with the user exchange
account? YU
SEK
US 10 ,275,772 B2
CRYPTOCURRENCY RISK DETECTION associated with the cryptocurrency transaction . The proces
SYSTEM sor is also operable to determine whether one of the plurality
of user profiles is associated with the user based at least in
TECHNICAL FIELD part upon the retrieved block chain information and at least
one stored cryptoidentifier associated with one of the plu
This invention relates generally to cryptocurrency trans rality of user profiles . The process may be further operable
action , and more specifically , to a cryptocurrency risk detec to determine whether one of the plurality of user profiles is
tion system . associated with the third party based at least in part upon the
retrieved block chain information and the at least one stored
BACKGROUND 10 cryptoidentifier associated with one of the plurality of user
profiles and determine whether the cryptocurrency transac
Enterprises may handle a large number of financial trans tion is suspicious based at least in part upon the associated
actions on a daily basis. As technology advances , financial user profile. Finally, the processor is operable to communi
transactions involving cryptocurrency have become more cate an alert to the enterprise regarding whether the cryp
common . For some enterprises, it may be desirable to 15 tocurrency transaction is suspicious.
calculate the risk for performing a cryptocurrency transac In some embodiments , a system may include a memory
tion . and a processor. The processor is operable to receive a
request from a customer to perform a cryptocurrency trans
SUMMARY action with a third party and retrieve block chain informa
20 tion associated with the cryptocurrency transaction . The
According to embodiments of the present disclosure , 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 25 chain information and the amount of cryptocurrency . The
receive an electronic request to store a private key associated 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 30 may be operable to determine whether the risk score indi
facilitate the storage of the first vault key at a first data center 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 35 a memory and a processor. The processor is operable to
a customer and a processor communicatively coupled to the 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 40 to confirm the cryptocurrency transaction based at least in
cryptocurrency into a vault connected to a network and 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 of miners
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 45 further operable to determine whether the number of
vault from the network . 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- 50 the third party that the cryptocurrency transaction is not
ated with the customer and determine that the customer 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 55 a processor. The memory may store a customer account
upon data received from the electronic payment service and 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, 60 an electronic request for a currency exchange from the
the quantity of cryptocurrency associated with the customer 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. processor may 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 65 exchange rate , the processor may cause the system to
request from a user to perform a cryptocurrency transaction 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
US 10 ,275 ,772 B2
account. The processor may also cause the system to transfer tion resources consumed by correcting erroneous cryptocur
the first amount of the first currency into the first float rency transaction after completion .
account and determine a second amount of the second Furthermore , in some embodiments , the system is able to
currency . The processor is further able to associate the conserve network and computing resources by securely
second amount of the second currency with the second float 5 storing information associated with cryptocurrency and pre
account and transfer the second amount of the second venting potential malicious activity involving such informa
currency to the customer. tion , conserving bandwidth , memory , and computation
In a further embodiment, a system comprises a memory resources .
operable to store a set of conversion rules . The system also As another example , in at least one embodiment, energy
comprises a processor that may be communicatively coupled 10 and power consumption is conserved and security is
to the memory and may cause the system to receive an 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 15 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 A s 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 ,275 ,772 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 ,275 ,772 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. include an ad hoc network , an intranet, an extranet, a VPN ,
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 ,275 ,772 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 . in the instruction caches may be copies of instructions in
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 ,275 ,772 B2
12
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 ,275,772 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 ,275 ,772 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 ,275,772 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 ,275 ,772 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 ,275 ,772 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 tution operated by an enterprise . As a result, an amount of
prise , financial institution , or any other entity that may have 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 On is
15 Device 110 may communicate 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 .
In some embodiments, a float account 204 includesas aa total
total 3030 For example , aggregation engine 222 may determine an
approximately equivalent value of the amount of cryptocur
amount of cryptocurrency (in one or more cryptocurrencies ) 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 amount of cryptocurrency .
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 ,275 ,772 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 ,275,772 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 . 55 instrument to provide customer 102 with electronic access to
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 ,275 ,772 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
rency for an approximately equivalent quantity of crypto - mine block chain cryptoidentifiers . In certain embodiments ,
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 ,275 ,772 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,