US10510053B2 — Send cryptographic currency to email address (Part 4 of 5)
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.
332 for
Key
CFHSoiympsr14utsetrm 11 11 MSahsaKey11trerd 10
312 for
Key
PSrtivoarte
308 to
Use
Seed
Generate MasKeyt r 310 ??? Key
Mas314SetKeyer
PSutbolriec MasForte
.
FIG
64
U.S. Patent Dec. 17 , 2019 Sheet 62 of 76 US 10,510,053 B2
forKey Key
390 PErnitvaetre User Verification Scr372ipt
SAilgno:artiutrhem PriKeyvSignwitha e
CIonliet374Keycatioen . 1 1 392 tsriangdsnmeit authorization
DFUeisvr18iescrte 346 DisplayedPrivKeyateforUserKey 376 Inter:face Enter Pasword
360 BTRUriesatqnciouseaniscgnt CAVUodnatsrf-uoelsertd
SAilgnoar:tiurhemPriSignwithvKeyate
334
Set
Key
User 374
Receive ESnceryptde -N
Decryption EDnecrypytpetd
378 Algor:ithm obtSeed
toain PrivKeyate
380 tsriangdsnmeit authorization
Key Key
PSutbolriec
344 User
for 37B
364
Authorization 334 Store Encrypted Seedfor
SharKey11ed N
394
Verification Signature
Mod:ule Verify PusblincgKey 396 Correct Y
398 Tranto
duesact SbigenaitnurgeCor ect
ShaKeyet336red
332 for
Key
CFHSoiympsr14utsetmr
Fm
Il
PSrutibvolartiec MSKahesaytreurd Verification Signature
382 Mod:ule Verify Pusblincg Key 384 Cor ect Y
386 Trandue
tosact Sbigeniatnurge Correct 370 required out
3
2
of
362
TPraoncsaecstiorn 312 for
Key
Mas314SetKeyer
310 PSutbolriec Key MasForte Key
366 PriKeyvSign
witha e 368 Transact
65
.
FIG
400
Authorize Transaction
U.S. Patent Dec. 17 , 2019 Sheet 63 of 76 US 10,510,053 B2
MT
User PrivKeyate 420 O
/
M
UserKey Se408d
/1OM
PUusbleirc 418Key /
M
Shared PrivKeyate 416 M0M1
GAe4dner0aetso2r ShaKeyred Se406d FIG
.
66
M
1
/
Shared PublKeyic 414 MO Ad r1es
M
1
/
Master PrivKeyate 412 M70 Adores
MasKeyt r Se404ed
M1
Master PublKeyic 410 O
/
M
U.S. Patent Dec. 17 , 2019 Sheet 64 of 76 US 10,510,053 B2
RA4eceIDoiuvn4etr
430URLPostBlog
CFHSoiympsr14utsetrm EGCmenboerdateodr
RA4ece3oiuvne4tr Det442aLogin-ls RAece-ID444oiuvnetr 448 PostBlog URL GBeunetandIDratonr 438
462
e
ButID460on BA5idtcr0oeis2n ABdidt510rceosin
But460IDon 458 ButIDon 480Bits
PCaormtpunter Sy422stem 440 ACcreoautnet 446 AIcnoLogutnot EBPnloURLtsegtr 452 ECm4boe5d e0d -B430URLPostlog -AR4ceceIDoiuvne4tr C-Satl545arteurp -B430URLPostlog ECm4boe5d e0d -B430URLPostlog A-4RcecIDoeiuvn4etr C-Satl454arteurp
428
Post
Blog
PUJI
RCeocmepiuvterSys424tem Receiver Brow426ser 432 Create PostBlog 456 Embed ECmboeded
FIG
.
67
U.S. Patent Dec. 17 , 2019 Sheet 65 of 76 US 10,510,053 B2
1 j
B
A
5 i
d1
CS4oen7kdie2rs ButID460on actrBlones
t c
r
0 o
e i
s
1 n In
Signed
-
454 RCeotorkievse Co549L.kie
ButID460ton 491 SButoIDtroen
SCoemnpduterSys464tem Dis490play
Bits480
EC4mboe5dde0d -ARceceoID444iuvnert SCtal454rteurp
-B436URLPostlog -B430URLPostlog -ARcecoID444eiuvnetr 428Post
Blog But484on
Init492iate Secsripont 486
474
428PostBlog Callrtup -B430
Sta: URLPostlog
-4Co7kie2s
RAece444IDoiuvnetr
430URLPostBlog
R e t ri e v e478 ButIDon
StaCallrtupResp476onder 483 RSCetsap:roltnuspe -Scesr486sipont -BuIDt460on
CFHSoyimpsr14utsetrm -Bu484t on -B480its
466
Download 482 ButIDForon RBetiritevse ButID460ton AB5dit0rceosi2n BAidtdcr510oeisns
But460IDon 480Bits
68
.
FIG
CPoamrptunterSys422tem 430
URL
Post
- B l o g ECm4boe5d e0d -ARcecID444oeiuvnetr
-B430URLPostlog C-Satl454alrteurp
428
Post
Blog
U.S. Patent Dec. 17 , 2019 Sheet 66 of 76 US 10,510,053 B2
First Host Computer System 14 Sender Computer
System 464
Display 490
Button ID 460
Blog Post 428
Bits 480
Button 484 Bits 480
Bitcoin Address 502
492 Initiate Button ID 460
Bitcoin Address 510
Session Script
508 500 486
Store Bitcoin Checks Data
Address and Button ID for Button ID
496 494
Session Call: Retrieve Cookies
Bitcoin -Cookies
Address and Session
Generator 506 Responder 498 Sender Cookies 472
Store Button ID
Button ID 460
504 Bitcoin Address 510
Was Bitcoin
Address 516 Signed-In
Received Signed Into Sender L Cookie 549
Account (singed -in
Y cookie found) ?
512 514
Bitcoin -Store Bitcoin Address 548
Address and Button ID Store Cookie
N
Listen Code 3rd Party Pmt
524 Script 526
Display 490
518 Sign - In Panel 520
Send Sign In Third Party
-Sign - In Panel 520 Button Wallet Button
-Sign - In Script 522 530 544
-Listen Code 524
- 3rd Party Pmt Script 526 QR Code Bitcoin
-Pull Code 528 546 Address 510
Sender Account 536 532 Sign -In Script
- Login Details 534 Initiate 522
Pull Code
540 528
Sign In
FIG . 69
U.S. Patent Dec. 17, 2019 Sheet 67 of 76 US 10,510,053 B2
Sender Computer
First Host Computer System 14 System 464
Button ID 460 Display 490
Bits 480 Blog Post 428
Bitcoin Address 502 Button 484 Bits 480
Bitcoin Address 510 492 Initiate Button ID 460
Session Script
Receiver Account 434 486
- Login Details 442
- Receiver Account ID 444
Transfer
Sender Account536
- Login Details 534 Sender Cookies 472
516
Bon
Button ID 460
Bitcoin Address 510 |
Signed Into Sender Bits 480
Account( singed-in
cookie found )? Signed - In
L Cookie 549
Y
550 ww
Send Listen Code 3rd Party Pmt
-Signed - In Panel 552 524 Script526
-Listen Code 524
-3rd Party Pmt Script 526 Display 490 566
-Pull Code 528 Signed - In Panel 520 Update Bits
-Host Acct Pmt Script 554 Host Acc . Third Party
Button Wallet Button
530 544
561 QR Code Bitcoin
Pay Using Sender Account 546 Address 510
560
564 154 Initiate
Transaction
Update Bits Processor Host Acct Pmt Pull Code
Script554 528
566
Pull New Bit Count FIG . 70
U.S. Patent Dec. 17 , 2019 Sheet 68 of 76 US 10,510,053 B2
First Host Computer System 14 Sender Computer
System 464
Display 490
Blog Post 428
Button 484 Bits 480
492 Initiate Button ID 460
Button ID 460
Session Script
Bits 480 486
Bitcoin Address 502
Bitcoin Address 510 Sender Cookies 472
Button ID 460
572
Update Bits Bitcoin Address 510 I
566
y Bits 480 Update Bits
568 Signed -In
Bit Updater Cookie 549
572
Push Update Notification
570 567
Check Block Chain
Block Chain Checker Listen Code 3rd Party Pmt
524 Script526
Display 490 560
12 Initiate
Bitcoin Network Signed - In Panel xxx
Host Acc . Third Party
564 Button Wallet Button
Broadcast to 556 544
Block Chain QR Code Bitcoin
www
562 546 Address 510
Third Party
Transaction
Processor
Host Acct Pmt Pull Code
Script554 528
574
Pull New Bit Count
FIG . 71
U.S. Patent Dec. 17 , 2019 Sheet 69 of 76 US 10,510,053 B2
WalAet WalBet WalClet EUxcshaengre 618 $
+
10 10
$
+
Led620ger
Sys600tem
10
$
+ $
+
10
Exch616ange User
A B
User User
C
OBTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer MPuilpteiclaisnte610
OGratdewary 604
User CompButer I6nte0rfnae2cte MEantgchineg 606 FIG
.
72
User CompAuter
OGartdewary604
U.S. Patent Dec. 17 , 2019 Sheet 70 of 76 US 10,510,053 B2
WalAet WalBet WalCet EUxcshaengre618 10
$
+ 10
+
$
Led620ger
Sys600tem TCorht2bo-easclks BPreocfeodrineg
CRerhq2a-oeuscskt
10
$
+ 10
$
+
Exch616ange User
A User
B User
C
OBTC
+
ExchangeDatabase 612
MCloedaurilneg614
TRreaqnu1bsefsert
GeFneraetodr 608
User Computer
OGartdewary604
User CompButer TRreaqnus1aefsrt In6ter0fnaec2te MEantcghinge 606 FIG
73a
.
Tran-Insfer User CompAuter OGartdewary 604
U.S. Patent Dec. 17 , 2019 Sheet 71 of 76 US 10,510,053 B2
WalAet WalBet WalClet EUxcshaengre 618 10
$
+ 20
$
+ +
30
$
Led620ger 20
$
Sys600tem
Tran3sfer Upd46ate
Upd4ate
10
$
+ 20
$
+ +
30
$
Exch616ange A
User B
User User
C
+
OBTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer
OGartdewary 604
User CompButer I6nte0rfnae2cte MEantgchineg 606 FIG
73b
.
User CompAuter
OGartdewary604
U.S. Patent Dec. 17 , 2019 Sheet 72 of 76 US 10,510,053 B2
WalAet WalBet WalClet EUxcshaengre 618 $ 20
10
+ $
+ 30
$
+
NRW
+5BTC 5BTC+
Led620ger
Sys600tem
10
$
+ 20
$
+ $
+
30
Exch616ange A
User B
User User
C
5BTC
+ +
5BTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer
OGartdewary 604
User CompButer I6nte0rfnae2cte MEantgchineg 606 FIG
.
73C
User CompAuter
OGartdewary604
U.S. Patent Dec. 17 , 2019 Sheet 73 of 76 US 10,510,053 B2
WalAet WalBet WalCet EUxcshaengre 618 10
$
+ 20
$
+ 30
$
+
5BTC +
+ 5BTC
Led620ger
Sys600tem
10
$
+ 20
$
+ +
30
$
E6xch1an6ge User
A 10
$
-
2BTC
+ User
B User
C
-2BTC
+
10
$
+
5BTC BTC
+
Upd9ate Upd9bate
ExchangeDatabase 612
MCloedaurilneg604
,OMaftSell
Feed
8
Offers
Buy
( ,c)ehres GFeneraetodr 608
M-ult7icast M-ult7icabst MPu6ilptei1lcians0et
User Computer
5b Sell
BTC each
2 $
5
@ OGartdewary604
User CompButer In6ter0fnaec2te MEantcghinge606 FIG
73d
.
OfSell
andBuy
5cers OfSell
and
Buy5ders
Trading User CompAuter
5a BTC
2
Buy each
@
$
5
OGartdewary 604 $
@
each
5
2
Buy
:
A
User each
Sell
User
5
$
:
C
2
BTC BTC
@
Match
6
:
U.S. Patent Dec. 17 , 2019 Sheet 74 of 76 US 10,510,053 B2
WalAet WalBet WalCet EUxcshaengre618 $ 20
10
+ $
+ 30
$
+
5BTC +5BTC
+
Led620ger
Sys600tem CTorhto-11beasclks BPreocfeodrineg
CRerhqo11a-eusckt
10
$
+ 20
$
+ 30
+
$
+
$
10
Exch616ange A
User 2BTC
10
+
$
- User
B User
C
5BTC
+ -2BTC 5BTC+
ExchangeDatabase 612
MCloedaurilneg614
WRi1ethqdu0raewsablt
GeFneraetodr 608
User Computer
OGartdewary 604
User CompButer
WRi1tehqdur0aewsalt In6ter0fnaec2te MEantcghinge606 FIG
73e
.
OGartdewary604
Withdrawal User CompAuter
U.S. Patent Dec. 17 , 2019 Sheet 75 of 76 US 10,510,053 B2
WalAet WalBet WalClet EUxcshaengre 618 $ -
$ 20
10
+ + 10
$ 20
$
+
5BTC+ 5BTC+ MNRW
Led620ger 10
$
Sys600tem
Tran12sfer Upd13bate
Upd13ate
10
$
+ 20
$
+ 10
$
- +
20
$
Exch616ange A
User 10
$
-
+
2BTC B
User User
C
10
+
-2BTC
$
5BTC
+ +
5BTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer
OGartdewary 604
User CompButer I6nte0rfnae2cte MEantgchineg 606 73f
.
FIG
User CompAuter
OGartdewary604
U.S. Patent Dec. 17, 2019 Sheet 76 of 76 US 10,510,053 B2
900
930 938
PROCESSOR
VIDEO DISPLAY
INSTRUCTIONS
952
932 940
MAIN MEMORY
ALPHA -NUMERIC
INSTRUCTIONS INPUT DEVICE
952
934 936 942
STATIC MEMORY CURSOR CONTROL
DEVICE
948 944
DRIVE UNIT
NETWORK
BUS 950
INTERFACE DEVICE MACHINE
READABLE
MEDIUM
952
INSTRUCTIONS
954
946
NETWORK
SIGNAL
GENERATION
DEVICE
FIG . 74
US 10,510,053 B2
1 2
SEND CRYPTOGRAPHIC CURRENCY TO addresses while still allowing the users to use Bitcoin
EMAIL ADDRESS addresses within their wallets for transacting with other
users .
CROSS -REFERENCE TO RELATED A merchant computer system often has an online store and
APPLICATIONS 5 a website . A customer at a customer computer system may
use a browser to access the online store via the website .
This patent application claims priority from U.S. Provi Items are displayed for purchase in a local currency .
sional Patent Application No. 61/954,434 , filed on Mar. 17 , Exchange rate between bitcoin and local currency changes
2014 ; U.S. Provisional Patent Application No.61/990,017 , over short periods of time. The price in local currency may
filed on May 7 , 2014 ; U.S. Provisional Patent Application 10 thus change between the time that the local currency is
No. 62 /042,676 , filed on Aug. 27 , 2014 ; U.S. Provisional displayed
decides to
to the customer and the time that the customer
make the purchase . As a result , the customer or
Patent Application No. 62/ 056,100 , filed on Sep. 26 , 2014 ; the merchant may incur a loss in local currency. The
U.S. ProvisionalPatent Application No. 62 /086,669, filed on customer or merchant may then be reluctant to purchase
Dec. 2 , 2014 and U.S. Provisional Patent Application No. 15 using bitcoin .
62/099,992 , filed on Jan. 5 , 2015 , each of which is incor In order for a user to access their wallet, the user may log
porated herein by reference in its entirety. into their account through the website using a user name and
BACKGROUND OF THE INVENTION password . If the user name and password become compro
mised then it may be possible for bitcoin to be stolen out of
1 ) . Field of the Invention
20 the wallet. Users may therefore be reluctant to store bitcoin
in their wallets without any additional security features.
This invention relates to a computer system and method Bitcoin transacting requires the use of a public key and a
for transacting bitcoin . private key . The private key is used to sign an authorization
2 ). Discussion of Related Art and the public key is used to verify the signature . Someusers
The Bitcoin network is a peer- to -peer payment system 25 may require control over their private keys in order to ensure
having a plurality of nodes that are connected to one another. to such users that bitcoin transacting will not take place
Bitcoin exchange computer systems allow for users to without their express authorization .
exchange local currency into or out of bitcoin . Users send Content creators often put a lot of time and energy into
payments by broadcasting digitally signed messages to the their blog posts . These efforts are rarely rewarded because
Bitcoin network . Users may, for example, send and receive 30 efficient technology does not exist for rewarding bloggers
payments using mobile applications on mobile devices, for their efforts .
client software or a web browser .
Transactions do not explicitly identify the payor and SUMMARY OF THE INVENTION
payee by name or wallet . Instead , a bitcoin transaction
transfers ownership to a new address , referred to as a 35 The invention provides a host computer system for trans
“ Bitcoin address ” . The Bitcoin address is derived from the acting bitcoin including a processor, a network interface
public portion of one or more cryptographic key pairs. The device connected to the processor, a computer readable
private portion of a key pair is not disclosed to the public . medium connected to the processor, a data store on the
To send bitcoin sent to an address , a user broadcasts a computer readable medium and a set of instructions on the
paymentmessage that is digitally signed with the associated 40 computer readable medium that are executable by the pro
private key. cessor. The set of instructions includes a wallet establish
Participants known as “ miners ” at miner computer sys mentmodule , a login module, a hosted email module and a
tems verify and timestamp transactions into a shared public walletmanagement. The wallet establishmentmodule estab
database called a “ block chain " . The miners are rewarded lishes a first wallet in the data store, stores login details for
with transaction fees and newly minted bitcoin for their 45 the first wallet and storing a value representative of an
effort. The miner computer systems are specialized comput amount of bitcoin held by the first wallet. The login module
ers that append blocks of transactions to the block chain . receives login credentials over the network interface device
Solving a cryptographic puzzle required to append a block for the first wallet from a first user device , verifies whether
carries a reward plus fees included in transactions in the the login credentials match the login details for the first
block . 50 wallet, and if the login credentials match the login details
Host computer systems reside at various nodes and may then logs the first user device into the first wallet. The hosted
host accounts or “ wallets ” that allow users to make and email module , if the first user device is logged into the
accept payments using bitcoin . The wallet stores the public wallet, permits transmission of an email by a user of the first
key of the Bitcoin address and its associated private key . user device to an email address of a second user device . The
The transfer ofbitcoin may be an onerous task if the entire 55 wallet managementmodule, in response to the transmission
public key of the Bitcoin address has to be copied and of the email, records a transfer in the first wallet for an
transmitted . amount of bitcoin from the first wallet to a second wallet
When a transaction is made between two wallets at the identified by the email address .
same or different host computer systems, the transaction is The invention also provides a method of transacting
broadcast to the Bitcoin network for block chain verifica- 60 bitcoin . A processor establishes a first wallet in a data store
tion . Such a block chain verification may take a long time to connected to the processor. The processor stores login
complete .Miner fees are also associated with such a transfer details for the first wallet. The processor stores a value
and have to be paid by a host computer system requesting representative of an amount of bitcoin held by the first
the transfer. wallet . The processor receives login credentials for the first
It may be a security concern for users that their Bitcoin 65 wallet from a first user device . The processor verifies
addresses may be stolen from theirwallets . Existing systems whether the login credentials match the login details for the
do not provide a solution formaintaining security of Bitcoin first wallet. The processor, if the login credentials match the
US 10,510,053 B2
3 4
login details then , logs the first user device into the first wallet and an identifier of the second wallet . The processor ,
wallet. The processor, if the first user device is logged into in response to the first transfer instruction , records a transfer
the wallet, permits transmission of an email by a user to the in the firstwallet for the amount ofbitcoin in the first transfer
first user device to an email address of a second user device instruction out of the first wallet and a transfer in the second
and in response to the transmission of the email. The 5 wallet, identified by the identifier of the second wallet, for
processor records a transfer in the first wallet for an amount the amount of bitcoin in the first transfer instruction into the
of bitcoin from the first wallet to a second wallet identified second wallet without paying a miner's fee for the first
by the email address. transfer. The processor receives a second transfer instruction
The invention further provides a non -transitory computer for an amount of bitcoin from the first wallet and a bitcoin
readable medium having stored thereon a set of instructions 10 address associated with a second node of the bitcoin net
that are executable by a processor to carry out a method of work . The processor, in response to the second transfer
transacting bitcoin . The processor establishes a firstwallet in instruction records a transfer in the first wallet for the
a data store connected to the processor. The processor stores amount of bitcoin in the second transfer instruction out of
login details for the firstwallet. The processor stores a value the first wallet, broadcasts a message to the Bitcoin network ,
representative of an amount of bitcoin held by the first 15 including to the second node, to record a transfer associated
wallet. The processor receives login credentials for the first with the bitcoin address associated with the second node, for
wallet from a first user device . The processor verifies the amount of bitcoin in the second transfer instruction and
whether the login credentials match the login details for the pays a miner's fee for the second transfer .
first wallet. The processor, if the login credentials match the The invention further provides a non -transitory computer
login details then , logs the first user device into the first 20 readable medium having stored thereon a set of instructions
wallet. The processor, if the first user device is logged into that are executable by a processor of a first host computer
the wallet, permits transmission of an email by a user to the system at a first node of the Bitcoin network to carry out a
first user device to an email address of a second user device method of transacting bitcoin . The processor establishes first
and in response to the transmission of the email. The and second wallets in a data store connected to the processor.
processor records a transfer in the first wallet for an amount 25 The processor stores a value representative of an amount of
of bitcoin from the first wallet to a second wallet identified bitcoin held by the first wallet. The processor receives a first
by the email address . transfer instruction for an amount of bitcoin from the first
The invention further provides a first host computer wallet and an identifier of the second wallet. The processor,
system for transacting bitcoin including a processor at a first in response to the first transfer instruction , records a transfer
node of the Bitcoin network , a network interface device 30 in the first wallet for the amount ofbitcoin in the first transfer
connected to the processor, a computer readable medium instruction out of the first wallet and a transfer in the second
connected to the processor, a data store on the computer wallet, identified by the identifier of the second wallet, for
readable medium and a set of instructions on the computer the amount of bitcoin in the first transfer instruction into the
readable medium that are executable by the processor. The second wallet without paying a miner's fee for the first
set of instructions includes a wallet establishment module. 35 transfer. The processor receives a second transfer instruction
The wallet establishment module establishes a first and for an amount of bitcoin from the first wallet and a bitcoin
second wallets in the data store and stores a value repre address associated with a second node of the bitcoin net
sentative of an amount of bitcoin held by the first wallet. The work . The processor, in response to the second transfer
wallet management module receives, over the network inter instruction records a transfer in the first wallet for the
face device , a first transfer instruction for an amount of 40 amount of bitcoin in the second transfer instruction out of
bitcoin from the first wallet and an identifier of the second the first wallet,broadcasts a message to the Bitcoin network ,
wallet , in response to the first transfer instruction , records a including to the second node, to record a transfer associated
transfer in the first wallet for the amount of bitcoin in the first with the bitcoin address associated with the second node, for
transfer instruction out of the first wallet and a transfer in the the amount of bitcoin in the second transfer instruction and
second wallet, identified by the identifier of the second 45 pays a miner's fee for the second transfer.
wallet, for the amount of bitcoin in the first transfer instruc The invention also provides a host computer system for
tion into the second wallet without paying a miner's fee for transacting bitcoin including a processor, a computer read
the first transfer. In order to execute a subsequent on -block able medium connected to the processor, a local storage on
chain transaction , the wallet managementmodule receives , the computer readable medium and a set of instructions on
over the network interface device , a second transfer instruc- 50 the computer readable medium that are executable by the
tion for an amount of bitcoin from the first wallet and a processor. The set of instructions includes a register, a
bitcoin address associated with a second node of the Bitcoin Bitcoin address and an associated private key and value
network , and in response to the second transfer instruction , stored in the register, a local controller, a splitter, an offline
records a transfer in the first wallet for the amount of bitcoin distribution module , at least one restoration interface, and an
in the second transfer instruction out of the first wallet, 55 assembler. The local controller transfers a private key for a
broadcasts a message to the Bitcoin network , including to Bitcoin address of a vault , to a local storage connected to a
the second node, to record a transfer associated with the processor and transfers the value of the Bitcoin address in
bitcoin address associated with the second node, for the the register to the vault . The splitter splits the private key of
amount of bitcoin in the second transfer instruction , and the Bitcoin address of the vault into a plurality of codes. The
pays a miner's fee for the second transfer. 60 offline distribution module distributes the codes to remote
The invention further provides a method of transacting distributed storage locations, removes the private key of the
bitcoin including. A processor of a first host computer Bitcoin address of the vault from the local storage , and
system at a first node of the Bitcoin network establishes first removes the value for the Bitcoin address of the register
and second wallets in a data store connected to the processor. from the Bitcoin address of the register . The restoration
The processor stores a value representative of an amount of 65 interface receives at least some of the codes into which the
bitcoin held by the first wallet. The processor receives a first private key for Bitcoin address of the vault has been split .
transfer instruction for an amount of bitcoin from the first The assembler assembles the codes that have been received
US 10,510,053 B2
5 6
into the private key of the Bitcoin address of the vault . The coin addresses of the first transfer set due to the portions
local controller restores the private key of the Bitcoin thereof being transferred to the first vault . The processor
address of the vault from the local storage , and restores the restores the portion of the Bitcoin addresses of the first
value for the Bitcoin address in the register from the vault . transfer set from the first vault to the wallet. The processor
The invention further provides a method of transacting 5 transacts using the Bitcoin addresses of the first transfer set
bitcoin . processor transfers a private key of the Bitcoin due to the portions thereofbeing restored from the first vault
address of a vault to a local storage connected to the to the wallet.
processor. The processor splits the private key of the Bitcoin The invention further provides a non - transitory computer
address of the vault into a plurality of codes . The processor readable medium having stored thereon a set of instructions
distributes the codes to remote distributed storage locations. 10 that are executable by a processor to carry out a method of
The processor transfers a value of a Bitcoin address in a transacting . A processor stores a plurality of Bitcoin
register to the vault . The processor receives at least some of addresses in a wallet. The processor selects a first transfer set
the codes into which the private key of the Bitcoin address of the Bitcoin addresses for cold storage in a first vault . The
of the vault has been split. The processor assembles the processor transfers at least a portion of each of the Bitcoin
codes that have been received into the private key of the 15 addresses of the first transfer set to the first vault while
Bitcoin address of the vault. The processor restores the keeping the portions a first transaction set in the register. The
private key of the Bitcoin address of the vault to the vault . processor transacts using the Bitcoin addresses of the first
The processor restores the value of the Bitcoin address in the transacting set without permitting transacting with the Bit
register from the vault. coin addresses of the first transfer set due to the portions
The invention also provides a non - transitory computer- 20 thereof being transferred to the first vault. The processor
readable medium having stored thereon a set of instructions restores the portion of the Bitcoin addresses of the first
that are executable by a processor to carry out a method of transfer set from the first vault to the wallet. The processor
transacting bitcoin . A processor transfers a private key of the transacts using the Bitcoin addresses of the first transfer set
Bitcoin address of a vault to a local storage connected to the due to the portions thereof being restored from the first vault
processor. The processor splits the private key of the Bitcoin 25 to the wallet.
address of the vault into a plurality of codes . The processor The invention also provides a method of effecting pay
distributes the codes to remote distributed storage locations . ment including receiving, by a host computer system , a
The processor transfers a value of a Bitcoin address in a request for payment from a merchant computer system ,
register to the vault. The processor receives at least some of including an amount in a currency, determining, by the host
the codes into which the private key of the Bitcoin address 30 computer system , a first exchange rate , wherein the first
of the vault has been split. The processor assembles the exchange rate fluctuates and the first exchange rate is
codes that have been received into the private key of the determined at a first moment in time, converting, by the host
Bitcoin address of the vault. The processor tores the computer system , the amount in the currency to an amoun
private key of the Bitcoin address of the vault to the vault . in bitcoin using the first exchange rate at the firstmoment in
The processor restores the value of the Bitcoin address in the 35 time, receiving , by the host computer system , a send instruc
register from the vault. tion from the customer computer system , wherein the send
The invention further provides a host computer system for instruction is at a second moment in time later than the first
transacting bitcoin including a processor, a network inter moment in time and the exchange rate at the second moment
face device connected to the processor, a computer readable in time is a second exchange rate that is different than the
medium connected to the processor, a local storage on the 40 first exchange rate at the first moment in time, receiving , by
computer readable medium and a set of instructions on the the host computer system , payment in bitcoin from the
computer readable medium that are executable by the pro customer in an amount that is based on the amount in bitcoin
cessor. The set of instructions includes a wallet, a plurality and transmitting, by the host computer system , in response
of Bitcoin addresses stored in the wallet , a first vault , and a to receiving the send instruction from the customer com
local controller. The local controller is executable for select- 45 puter system , a payment instruction to pay currency to the
ing a first transfer set of the Bitcoin addresses for cold merchant, wherein the currency paid to the merchant is for
storage in the first vault , transferring at least a portion of an amount that is at least in part based on the amount in the
each of the Bitcoin addresses of the first transfer set to a firstcurrency that is converted to bitcoin at the first moment in
vault while keeping the portions a first transaction set in the time even though the exchange rate is different at the second
register, and restoring at least the portion of the Bitcoin 50 moment in time.
addresses of the first transfer set from the first vault to the The invention further provides a host computer system for
wallet and a wallet managementmodule transacting using effecting payment including a processor, a computer read
the Bitcoin addresses of the first transacting set without able medium connected to the processor and a set of
permitting transacting with the Bitcoin addresses of the first instructions on the computer readable medium that are
transfer set due to the portions thereof being restored to the 55 executable by the processor. The set of instructions includes
first vault , and transacting using the Bitcoin addresses of the an application programmable interface (API) receiving a
first transfer set due to the portions thereof being restored request for payment from a merchant computer system ,
from the first vault to the wallet. including an amount in a currency, a currency converter
The invention also provides a method of transacting determining a first exchange rate, wherein the first exchange
bitcoin . A processor stores a plurality of Bitcoin addresses in 60 rate fluctuates and the first exchange rate is determined at a
a wallet. The processor selects a first transfer set of the first moment in time, and converting, by the host computer
Bitcoin addresses for cold storage in a first vault. The system , the amount in the currency to an amount in bitcoin
processor transfers at least a portion of each of the Bitcoin using the first exchange rate at the first moment in time,
addresses of the first transfer set to the first vault while transaction processor receiving a send instruction from the
keeping the portions a first transaction set in the register. The 65 customer computer system , wherein the send instruction is
processor transacts using the Bitcoin addresses of the first at a second moment in time later than the first moment in
transacting set without permitting transacting with the Bit time and the exchange rate at the second moment in time is
US 10,510,053 B2
7 8
a second exchange rate that is different than the first users reacting to the first and second messages sent to the
exchange rate at the first moment in time, and receiving a first and second addresses and transferring , by the host
payment in bitcoin from the customer in an amount that is computer system , the amount of bitcoin out of the vault only
based on the amount in bitcoin and a bank transfer module if both the first and second authorization instructions are
transmitting in response to receiving the send instruction 5 detected .
from the customer computer system , a payment instruction The invention further provides a bitcoin management
to pay currency to the merchant, wherein the currency paid system , including a processor, a computer -readable medium
to the merchant is for an amount that is at least in part based connected to the processor and a set of instructions on the
on the amount in the currency that is converted to bitcoin at computer readable medium that are executable by the pro
the first moment in time even though the exchange rate is 10 cessor. The set of instructions includes a vault establishment
different at the second moment in time. wizard establishing a vault and storing first and second
The invention also provides a non -transitory computer electronic communication addresses in relation to the vault,
readable medium having stored thereon a set of instructions transaction processor storing bitcoin in the vault and a vault
that are executable by a processor to carry out a method of management module receiving a request to transfer an
transacting bitcoin including receiving ,by a host computer 15 amount of the bitcoin out of the vault, transmitting, in
system , a request for payment from a merchant computer response to the request, first and second messages over a
system , including an amount in a currency, determining, by network to the first and second addresses, detecting whether
the host computer system , a first exchange rate , wherein the first and second authorization instructions are received due
first exchange rate fluctuates and the first exchange rate is to one or more users reacting to the first and second
determined at a firstmoment in time, converting , by the host 20 messages sent to the first and second addresses, and instruct
computer system , the amount in the currency to an amount ing the transaction processor to transfer the amount of
in bitcoin using the first exchange rate at the firstmoment in bitcoin out of the vault only if both the first and second
time, receiving, by the host outer system , a send instruc authorization instructions are detected .
tion from the customer computer system , wherein the send The invention also provides a method of transacting
instruction is at a second moment in time later than the first 25 bitcoin including storing, by a host computer system , a
moment in time and the exchange rate at the second moment public key , receiving, by the host computer system , a request
in time is a second exchange rate that is different than the from a user computer system to transact using a bitcoin
first exchange rate at the first moment in time, receiving , by address, transmitting, by the host computer system , a veri
the host computer system , payment in bitcoin from the fication script to the user computer system , the verification
customer in an amount that is based on the amount in bitcoin 30 script including an authorization and a signature algorithm
and transmitting, by the host computer system , in response that is executable on the user computer system to sign the
to receiving the send instruction from the customer com authorization with a private key to obtain a signed authori
puter system , a payment instruction to pay currency to the zation that includes the signature and transmit the signed
merchant, wherein the currency paid to the merchant is for authorization to the host computer system , receiving, by the
an amount that is at least in part based on the amount in the 35 host computer system , the signed authorization including the
currency that is converted to bitcoin at the first moment in signature from the user computer system , verifying, by the
time even though the exchange rate is different at the second host computer system , the signature of the signed authori
moment in time. zation received from the user computer system using a
The invention further provides a method of managing public key ; and transacting, by the host computer system ,
bitcoin , including establishing , by a host computer system , 40 with the bitcoin address , the transacting being permitted due
a vault and storing first and second electronic communica to a successful verification of the signature but not upon an
tion addresses in relation to the vault, storing, by the host unsuccessful verification of the signature .
computer system , bitcoin in the vault, receiving , by the host The invention further provides a host computer system
computer system , a request to transfer an amount of the including a processor, a set of data and instructions on the
bitcoin out of the vault , transmitting , by the host computer 45 computer-readable medium that are executable by the pro
system , in response to the request, first and second messages cessor that are executable by the processor, a public key, a
over a network to the first and second addresses, detecting , transaction processor receiving a request from a user com
by the host computer system , whether first and second puter system to transact using a bitcoin address, a verifica
authorization instructions are received due to one or more tion script that is transmitted to the user computer system ,
users reacting to the first and second messages sent to the 50 the verification script including an authorization and a
first and second addresses and transferring, by the host signature algorithm that is executable on the user computer
computer system , the amountofbitcoin out of the vault only system to sign the authorization with a private key to obtain
if both the first and second authorization instructions are a signed authorization that includes the signature and trans
detected . mit the signed authorization to the host computer system , the
The invention also provides a non -transitory computer- 55 host computer system receiving the signed authorization
readable medium having stored thereon a set of instructions including the signature from the user computer system , and
which , when executed by a processor, executes a method a verification module verifying the signature of the signed
including establishing, by a host computer system , a vault authorization received from the user computer system using
and storing first and second electronic communication a public key, the transaction processor transacting with the
addresses in relation to the vault, storing , by the host 60 bitcoin address , the transacting being permitted due to a
computer system , bitcoin in the vault, receiving , by the host successful verification of the signature but not upon an
computer system , a request to transfer an amount of the unsuccessful verification of the signature .
bitcoin out of the vault, transmitting, by the host computer The invention also provides a host computer system
system , in response to the request, first and second messages including a processor, a network interface device connected
over a network to the first and second addresses, detecting, 65 to the processor, a computer readable medium connected to
by the host computer system , whether first and second the processor and a set of instructions on the computer
authorization instructions are received due to one or more readable medium that are readable and executable by the
US 10,510,053 B2
9 10
processor. The set of instructions include an embedded code FIG . 1A is a block diagram of a network environment that
generator generating an embedded code for inclusion within includes the Bitcoin network and a number of systems
a website of a partner computer system , the embedded code forming part thereof or connected thereto ;
including a startup caller causing transmission of a startup FIG . 1B is a block diagram of a first host computer system
systemfrom, a the
call sendercallcomputer
startup respondersystem to thethehoststartup
receiving computer
call 5 andFIGa .first2 isanddiagrammatic
second user devices connected thereto ;
from the sender computer system and transmitting, in within a first host computerviewsystem of a first wallet that is held
in FIG . 1 ;
response to the startup call, a tip button and a session script FIG . 3 is a view similar to FIG . 2 , further illustrating a
to the sender computer system , the session script being
executable by the sender computer system to transmit a 10 second wallet that has been established within the first host
session call to the host computer system and a session computer system ;
responder transmitting, in response to the session call, at FIG . 4 is a view of an email that is received by the second
least one payment button and a payment script to the sender user device in FIG . 1 ;
computer system , the payment button being selectable by
the user of the sender computer system to execute the 15 withFIGfields . 5 is a view of a browser displaying a user interface
for creating login details for the second wallet;
payment script, the payment script transmitting an instruc
tion to a transaction processor to transfer funds from a of the second 30useraredevice
FIGS . 6 to views similar to FIG . 5 that step a user
through a wallet set up ;
sender account to a receiver account. FIGS. 31 to 33 are views of the browser wherein the user
The invention further provides a method of transferring interface discloses various tools that can be used by the user ;
funds including generating, by a host computer system , an
embedded code for inclusion within a website of a partner 20 FIGS. 34 to 37 are views of the browser wherein the user
computer system , the embedded code including a startup interface is used by the user to purchase bitcoin from the first
caller causing transmission of a startup call from the sender host computer system ;
computer system to the host computer system , receiving , by FIG . 38 is an email that is received by the second user
the host computer system , the startup call from the sender device to confirm the purchase of the bitcoin from the first
computer system , transmitting, by the host computer system 25 host computer system ;
in response to the startup call, a tip button and a session FIG . 39 is an email that is received by the second user
script to the sender computer system , the session script being device with a notification that bitcoin has been added to their
executable by the sender computer system to transmit a wallet as part of a referral bonus system ;
session call to the host computer system and transmitting, by FIG . 40 is a view of the browser wherein the user interface
the host computer system in response to the session call, at
least one payment selection and a payment script to the 30 displays “ Limits and Verifications” associated with the sec
sender computer system , the payment selection being select ondFIGwallet . 41
;
is a view similar to FIG . 3 displaying transfer of
able by the user of the sender computer system to execute
the payment script, the payment script transmitting an bitcoin FIGS
from the second wallet to the first
. 42 and 43 are views of the browser
et ;
when the user
instruction to a transaction processor to transfer funds from
a sender account to a receiver account . 35 interface steps the user through the transfer of bitcoin from
The invention also provides a method of transacting the second wallet to the first wallet;
bitcoin including executing, by a host computer system , a FIG . 44 is a view of the browserwherein the user interface
trading algorithm , including receiving sell offers for bitcoin displays Bitcoin addresses associated with transactions that
from a sellers , receiving a buy offers for bitcoin from a have been completed ;
buyers , creating respective matches wherein each match 40 FIG . 45 is a view similar to FIG . 40 further showing the
includes one of the buy offers and one of the sell offers, transfer of bitcoin from the second wallet to a third wallet
broadcasting each respective match over a multicast pipe that is connected to a second host computer system ;
line, receiving each respective match with a clearing module FIG . 46 is a block diagram illustrating splitting of a
and clearing the respective match by updating an exchange private key of a vault and offline distribution ;
database to reflect the respective match by transferring a 45 FIG . 47 is a block diagram illustrating removal of the
representation of bitcoin from the seller to the buyer and private key of the vault;
transferring a representation of currency from the buyer to FIG . 48 is a block diagram illustrating offline or “ cold ”
the seller. storage of values of Bitcoin addresses of a wallet in the
The invention further provides a system for transacting vault;
bitcoin including an order gateway receiving sell offers for 50 FIG . 49 is a block diagram illustrating isolation of the
bitcoin from a sellers and receiving a buy offers for bitcoin vault with its private key removed;
from a buyers , a matching engine creating respective FIG . 50 is a block diagram illustrating how the private key
matches wherein each match includes one of the buy offers of the vault and the value of the Bitcoin addresses are
and one of the sell offers , a multicast pipeline, the matching restored ;
engine broadcasting each respective match over the multi- 55 FIGS . 51a to 51d are block diagrams that illustrate how
cast pipeline, an exchange database; and a clearing module values of certain Bitcoin addresses in a wallet are removed
receiving each respective and clearing the respective match and others are maintained ;
by updating the exchange database to reflect the respective FIG . 52 is a graph illustrating how the wallet is main
match by transferring a representation of bitcoin from the tained within a range so that only a portion of the wallet is
seller to the buyer and transferring a representation of 60 “ hot” in the sense that a user of the wallet can use the “ hot”
currency from the buyer to the seller, thereby executing a portion for transacting with another user;
trading algorithm . FIG . 53 is a block diagram that shows how an interme
diate hot wallet is used to collect value from multiple wallets
BRIEF DESCRIPTION OF THE DRAWINGS before transfer to a vault;
65 FIG . 54 is a block diagram of a network environment that
The invention is further described by way of example includes a customer computer system and merchant com
with reference to the accompanying drawings, wherein : puter system ;
US 10,510,053 B2
11 12
FIG . 55 is a block diagram illustrating functioning for module 38. As further illustrated in the drawing , the hosted
purposes of locking an exchange rate in when processing a email module 46 is connected over the Internet 22 to the
transaction made by the customer computer system on the second user device 20 and the second user device 20 is
merchant computer system in FIG . 54 ; connected over the Internet 22 and the user interface 36 to
FIG . 56 is a flow chart illustrating the establishment of a 5 the wallet establishmentmodule 40 .
personal vault; As shown in FIG . 2 , the first host computer system 14
FIG . 57 is a flow chart illustrating how bitcoin is trans already has one wallet (Wallet A ) stored among the wallets
ferred into and out of the vault; 42 corresponding to the first user device 18. The first wallet
FIG . 58 is a block diagram of the first host computer (Wallet A ) includes an email address (email address A ) and
system illustrating components that are used for establishing 10 login details for the wallet. The first wallet (Wallet A ) also
the vault and transferring bitcoin into and out of the vault; includes a number of Bitcoin addresses (Bitcoin address 1 ;
FIG . 59 is an email that is transmitted to verify a sec Bitcoin address 2 ) that have been created due to respective
ondary email address ; transfers or purchases ( Transfer 1; Transfer 2 ). The first
FIG . 60 is a view of a browser wherein a user interface Bitcoin address (Bitcoin address 1) is created due to a
displays options for transferring bitcoin out of a vault ; 15 purchase (Transfer 1 ) from a master wallet of the first host
FIGS. 61 and 62 are emails that are transmitted to primary computer system 14 (First Host) and is recorded for a value
and secondary email addresses to approve a withdrawal; in an amount in bitcoin . The second Bitcoin address (Bitcoin
FIG . 63 is a view of the browser with the user interface address 2 ) is created due to a transfer ( Transfer 2 ) from
displaying a transaction status window ; another location within the Bitcoin network 12 having a
FIG . 64 is a block diagram illustrating the establishment 20 network address outside of the first host computer system 14
of a user- controlled vault; and is recorded for a particular amount in bitcoin . The first
FIG . 65 is a block diagram illustrating the user of the wallet (Wallet A ) was originally established by the wallet
user -controlled vault for authorizing a transaction establishment module 40 in FIG . 1B . The email address
FIG . 66 is a block diagram of an address generator that is (email address A ) and login details of the first wallet were
used by the user -controlled vault ; 25 also recorded by the wallet establishment module 40. The
FIG . 67 to FIG . 71 are a block diagrams illustrating the wallet establishment module 40 and wallet management
functioning of a tip button ; module 44 were used to record the transfers and purchases
FIG . 72 is a block diagram of a system for transacting ( Transfer 1 ; Transfer 2 ), their Bitcoin addresses (Bitcoin
bitcoin according to an embodiment of the invention; address 1 ; Bitcoin address 2 ), their values and other details
FIGS. 73a to 73f illustrate the use of the system of FIG . 30 within the wallet .
72 for executing transfer -in , trading and withdrawal algo A user of the first user device 18 in FIG . 1B may use a
rithms; and mobile application on the first user device 18 to communi
FIG . 74 is a block diagram of a machine in the form of a cate over the Internet 22 directly with the login module 38
computer system forming part of the network environment. or may use a browser on the first user device 18 to com
35 municate via the Internet 22 and the website 34 with the
DETAILED DESCRIPTION OF THE login module 38. A browser application on the first user
INVENTION device 18 transmits a user interface request over the Internet
22 to the website 34. The website 34 responds to the user
FIG . 1A of the accompanying drawings illustrates a interface request by transmitting the user interface 36 over
network environment 10 , including the Bitcoin network 12 , 40 the Internet 22 to the first user device 18. The user interface
a first host computer system 14 within which the invention 36 is then displayed on the first user device 18. The user
manifests itself, a second host computer system 16 , first and interface 36 includes fields for entering login credentials,
second user devices 18 and 20 connected over the Internet which are then transmitted from the first user device 18 over
22 to the first host computer system 14 , a third user device the Internet 22 to the login module 38. The login module 38
24 connected to the second host computer system 16 , a 45 verifies whether the login credentials match the login details
bitcoin exchange computer system 26 and a miner computer for the wallet (Wallet A ). If the login credentials match the
system 28 . login details, then the login module 38 logs the first user
The Bitcoin network 12 includes a host node 30 and a device 18 into the wallet (Wallet A ) in FIG . 2. If the login
plurality of remote nodes 32A to D that are connected to one credentials do not match the login details , then the first user
another. The first host computer system 14 is connected to 50 device 18 is not logged in to the wallet.
the host node 30. The bitcoin exchange computer system 26 If the first user device 18 in FIG . 1B is logged in to the
is connected to the remote node 32A . The second host wallet, the login module 38 also provides access for the first
computer system 16 is connected to the remote node 32B . user device 18 to the hosted email module 46 and transmis
The miner computer system 28 is connected to the remote sion of an email by a user of the first user device 18 to an
node 32D or could reside on the same computer system . 55 email address of the second user device 20. The user
The first host computer system 14 is used primarily for interface 36 provides a field for entering the email address
transacting bitcoin and , as shown in FIG . 1B , includes a of the second user device 20. The user interface 36 also
website 34 having a user interface 36 , a login module 38 , a includes a field for entering an amount in bitcoin (or an
wallet establishmentmodule 40, a plurality of wallets 42, a amount in local currency that is converted to bitcoin using
wallet management module 44 and a hosted email module 60 an exchange rate ) that is being transferred from the wallet
46. The login module 38 is connected to the website 34 and (Wallet A ) corresponding to the first user device 18 to a
the hosted emailmodule 46 is connected to the login module respective wallet among the wallets 42 corresponding to the
38. The wallet establishment module 40 is connected to the second user device 20 that has not yet been established at
wallets 42. The hosted email module 46 is connected via the this point in time. The user of the first user device 18 then
wallet management module 44 to the wallets 42. As illus- 65 uses the hosted email module 46 to send an email at 50 to
trated in the drawing, the first user device 18 is connected the second user device 20. The hosted email module 46
over the Internet 22 and the user interface 36 to the login simultaneously at 52 instructs the wallet establishmentmod
US 10,510,053 B2
13 14
ule 40 to establish a wallet corresponding to the email amount of bitcoin at the Bitcoin address (Bitcoin address 4 )
address within the wallets 42. The hosted email module 46 in FIG . 3. The user can select various tools down the left
simultaneously instructs the wallet management module 44 margin , including sending or requesting bitcoin , buying or
to record the amount ofbitcoin that is being transferred from selling bitcoin , account settings and various merchant tools .
the wallet (Wallet A ) within the wallet corresponding to the 5 FIG . 8 illustrates a view that is displayed to the user if the
email address . user selects the “ Buy /Sell” link in FIG . 7. The user is
FIG . 3 illustrates further activity within the wallets 42 due prompted to add a bank account. FIGS. 9 through 15 step the
to the email represented by a third transfer ( Transfer 3 ). user through the entry of bank account details and verifica
When the user of the first wallet (Wallet A ) transmits the tion of the bank account. The user can also select a credit
email , the system uses an existing Bitcoin address (Bitcoin 10 card as a backup payment. FIGS . 16 to 19 step the user
address 2 ) to which the outgoing transfer is charged . Asso through the entry of a credit card number and a billing
ciated with the transfer ( Transfer 3 ) are the email address to address, and FIGS. 20 and 21 step the user through a
which the email has been transmitted , the amount in bitcoin , verification process to verify that the user is in control of the
a miner's fee of zero bitcoin that is paid by the first host credit card account. FIGS. 22 and 23 request additional
computer system 14 to any miner computer system such as 15 information from the user . FIG . 23 also allows the user to
the miner computer system 28 in FIG . 1A , and a host fee of verify a phone at a phone number and FIGS. 24 through 27
zero bitcoin that are charged to the wallet (Wallet A ) for the step the user through a process for verifying their phone and
transfer. A second wallet (Wallet B ) is established by the phone number. FIGS. 28 through 30 illustrate a process for
wallet establishmentmodule 40 and the email address ( email verifying an identity of the user of the second user device 20.
address B ) of the second user device 20 is recorded as an 20 As illustrated in FIGS. 31 to 33, the top margin within the
identifier of the wallet (Wallet B ). A Bitcoin address (Bitcoin account settings allow for additional tools such as referrals
address 3 ) is recorded within the second wallet (Wallet B ) (FIG . 31 ), viewing of Bitcoin addresses (FIG . 32 ), and
for the transfer ( Transfer 3 ). Within the second wallet integration with an application programmable interface
(Wallet B ), the transfer ( Transfer 3 ) has the Bitcoin address (FIG . 33).
(Bitcoin address 3 ), the identifier of the wallet (Wallet A ) 25 FIG . 34 illustrates a process that is initiated by the user to
from where the funds are transferred associated therewith , purchase bitcoin from a wallet of the first host computer
and the amount in bitcoin that has been transferred . The system 14. In the present example , the user selects one (1 )
amount in bitcoin corresponding to the transfer ( Transfer 3 ) bitcoin (BTC ) to purchase . FIGS. 35 and 36 step the user
ofboth wallets (Wallet A ; Wallet B ) is the same, consistent through the process of purchasing the bitcoin . Once the
with double entry accounting principles. The second wallet 30 bitcoin is purchased , the user can select on “History ” tab in
(Wallet B ) so far has no login details or any other user the top margin to display a view as shown in FIG . 37
information and has not been accessed by a user of the wherein the transaction is displayed and is marked as
second user device 20 this point in time. “ PENDING ” .
FIG . 4 illustrates the email when it is received at the FIG . 38 shows an email that is transmitted by the hosted
second user device 20 in FIG . 1B . The email is received and 35 email module 46 in FIG . 1B to the second user device 20 to
viewed within an email application on the second user confirm the purchase of the bitcoin following selection of a
device 20. The email includes a link (“ Click here to sign in “ Confirm " button in FIG . 35. The email also has a link that,
and claim this amount” ) that, when selected by the user of when selected by the user, opens the browser on the second
the second user device 20 , transmits a user interface request user device 20 and allows the user to login to their wallet and
from the browser on the second user device 20 over the 40 view the transaction .
Internet 22 to the website 34. The website 34 responds to the FIG . 39 shows an email that is transmitted by the hosted
user interface request to transmit the user interface 36 over email module 46 in FIG . 1B to the second user device 20
the Internet 22 to the second user device 20 for viewing with a notification that bitcoin has been added to their wallet
within the browser. as part of a referral bonus system .
FIG . 5 illustrates the user interface 36 as displayed on the 45 FIG . 40 illustrates a view that is displayed when the user
second user device 20 in FIG . 1B . The user interface 36 selects a “ Limits and Verifications ” tab in the top margin of
includes a plurality of fields for the user of the second user the “ Buy / Sell” page .
device 20 to enter login details for the second wallet (Wallet When the user selects the “ Send /Request” link in the left
B ), including a password and a confirmation of the pass margin in FIG . 40 , the user is provided an option to send
word . After the user has entered a password , the user can 50 bitcoin from their wallet (Wallet B ) in FIG . 3 to another
access their wallet by selecting the button " Access My wallet (e.g. the first wallet (Wallet A )) in FIG . 3 .
Wallet” . The wallet establishment module 40 in FIG . 1B FIG . 41 illustrates further transfers or purchases ( Transfer
stores the login credentials in association with the second 4 ; Transfer 5 ; Transfer 6 ). The fourth transfer ( Transfer 4 )
wallet (Wallet B ). The login module 38 also logs the second represents the purchase of bitcoin from the first host com
user device 20 into the second wallet (Wallet B ). If the user 55 puter system's 14 master wallet.
is logged out, the user can be provided with a login page The fifth transfer ( Transfer 5 ) represents the transfer of
where the user can enter login credentials that are compared bitcoin from the second wallet (Wallet B ) to the first wallet
with the login details in the second wallet (Wallet B ) and (Wallet A ). The second wallet (Wallet B ) now has login
then log into the second wallet (Wallet B ) following a details stored therein . If the second user device 20 in FIG .
favorable match between the login credentials and the login 60 1B has been logged out of the second wallet (Wallet B ), then
details . the second user device 20 is first directed to the login module
FIG . 6 shows a view that is displayed on the second user 38 which receives login details for the second wallet (Wallet
device 20 in FIG . 1B . The user is already logged into the B ) from the second user device 20 , verifies whether the login
wallet, as shown in the top right. The user can accept or credentials for the second wallet (Wallet B ) match the login
decline an agreement. FIG . 7 displays the first page that is 65 details for the second wallet (Wallet B ). If the login details
displayed to the user following acceptance of the agreement. match the login credentials , then the login module 38 logs
The page shows the current balance corresponding to the the second user device 20 into the second wallet (Wallet B ).
US 10,510,053 B2
15 16
The login module 38 then provides the second user device bitcoin to be transferred to the third wallet (Wallet C ) . A
20 with access to the hosted email module 46. The user of transfer ( Transfer 7 ) is recorded within the second wallet
the second user device 20 then enters the email address (Wallet B ). Associated with the transfer (Transfer 7 ) are the
(email address A ) of the user of the first wallet (Wallet A ) Bitcoin address (Bitcoin address 6 ), the amount in bitcoin
and an amount of bitcoin that the user of the second user 5 that is being transferred and a miner's fee that is charged for
device 20 wishes to transfer from the second wallet (Wallet the transfer and has to be paid by the first host computer
B ) to the first wallet (Wallet A ). The user of the second user system 14 to the miner computer system 28 in FIG . 1A . No
device 20 then uses the hosted email module 46 to send an fee is charged by the first host computer system 14 for a
email via the Internet 22 to the first user device 18. As soon transfer to another Bitcoin address .
as the email is sent, a transfer ( Transfer 5 ) is recorded within 10 When the user of the second user device 20 in FIG . 1A
the second wallet (Wallet B ). Because one of the Bitcoin completes the purchase, a transfer instruction is created and
addresses (Bitcoin address 4 ) has funds associated there is broadcast via the host node 30 to all remote nodes 32A - D
with , it can be charged for the transfer (Transfer 4 ). Within within the Bitcoin network 12. The transfer instruction thus
the second wallet (Wallet B ) the transfer ( Transfer 4 ) has the traverses the first node and the second remote node 32B to
email address (email address A ) to which the email has been 15 reach the second host computer system 16. The second host
sent and the amount in bitcoin associated therewith . computer system 16 and all other computer systems con
As indicated , the miner's fee that is paid by the first host nected to the remote nodes 32A - D record the transfer
computer system 14 and the host fee that is charged for the ( Transfer 7 ) with respect to the Bitcoin addresses (Bitcoin
transfer are zero bitcoin because the first wallet (Wallet A ) address 4 ; Bitcoin address 6 ). The transfer ( Transfer 7) has
is stored within the wallets 42 of the first host computer 20 associated therewith the amount in bitcoin .
system 14. The user of the first user device 18 receives the The transfer instruction that results in the transfer ( Trans
email indicating the transfer ofbitcoin to their wallet (Wallet fer 5 ) thus results in nominer's fee being charged to and paid
A ). A Bitcoin address (Bitcoin address 5 ) is recorded within by the first host computer system 14. No host fee is charged
the first wallet (Wallet A ) for the transfer ( Transfer 5 ) to the second wallet (Wallet B ) because the transfer ( Trans
together with the identifier of the second wallet (Wallet B ) 25 fer 7 ) is made to another wallet (Wallet A ) within the wallets
from which the transfer has been made and the amount in 42 of the first host computer system 14. By contrast, the
bitcoin . The amount in bitcoin corresponding to the transfer transfer instruction that results in the transfer ( Transfer 7 )
( Transfer 4 ) in the second wallet (Wallet B ) is the same as representing the transfer to the Bitcoin address (Bitcoin
the amount in bitcoin as in the first wallet (Wallet A ). address 6 ) in the third wallet (Wallet C ) results in a miner's
As illustrated by the next transfer ( Transfer 6), the user of 30 fee that is paid by the first host computer system 14 to the
the second wallet (Wallet B ) can opt to send bitcoin to a miner computer system 28. The miner computer system 28
Bitcoin address of the first wallet (Wallet A ). The transfer is responsible for verifying transfers of bitcoin over the
( Transfer 6 ) is the same as the preceding transfer ( Transfer Bitcoin network 12. In the present scenario , the miner
5 ) in all other respects. computer system 28 verifies the transfer of bitcoin from the
FIG . 42 shows a view that is displayed to the user of the 35 second wallet (Wallet B ) to the third wallet (Wallet C ).
second user device 20 in FIG . 1B in order to make the Another transfer may comprise that bitcoin is sent to one
transfer from their wallet (Wallet B ) to the first wallet of the nodes, e.g.node 32C . The node 32C could be a fourth
(Wallet A ). The view includes a field for the user to enter the user device which is owned by the recipient of the bitcoin
email address ( email address A ) and fields for entering either transfer having its own bitcoin address .
an amount in bitcoin (BTC ) or an amount in a local currency 40 FIG . 46 illustrates components that are used for cold
(USD -United States Dollar). The exchange rate between storage of value of bitcoin, including a local storage 56 , a
bitcoin and the local currency is shown in the top left corner . local controller 58 , a vault 64, a splitter 66 , one or more
The view also includes a button “ Send Money ” which , when encryption algorithms 68 and 70 and an offline distribution
selected by the user, initiates the transfer of bitcoin . module 72 .
FIG . 43 is a view that is displayed to the user indicating 45 The vault 64 has a Bitcoin address 80 with a private key
transactions that have been initiated or completed . The 79. The private key 79 is, for purposes of illustration , shown
purchase of bitcoin discussed with reference to FIGS. 35 to as a nine digit sequence ofcharacters that are provided to the
37 is shown as “ PENDING ” . A block chain verification splitter 66. For purposes of illustration , the splitter 66 splits
notice has to be broadcast by the miner computer system 28 the nine digits of the private key 79 into seven overlapping
and be received by the first host computer system 14 in FIG . 50 codes (Codes 1 to 7 ). The encryption algorithm 68 encrypts
1A before a determination is made to change the marker the first code (Code 1) into an encrypted code (Encrypted
“ PENDING ” to “ COMPLETE " . The other transactions rep Code 1). In a similar manner, the second code (Code 2 ) is
resenting transfers between the first and second wallets encrypted by an encryption algorithm (not shown ) into an
(Wallet A and Wallet B ) in FIG . 41 are shown as completed encrypted code (Encrypted Code 2 ). Each one of the seven
because they do not need block chain verification outside of 55 codes is encrypted into a separate encrypted code. A separate
the first host computer system 14. No block chain verifica key may be used for each one of seven codes. Alternatively ,
tion notice is thus required for these transactions to be a separate encryption algorithm may be used for each one of
marked " COMPLETE " . FIG . 44 shows a view that can be the seven codes .
selected by the user by selecting a tab in the top margin Once all the codes have been encrypted , the offline
wherein the user is shown the Bitcoin addresses associated 60 distribution module 72 transmits each one of the encrypted
with transactions that have been completed . codes (Encrypted Code 1 to 7) to a separate location . The
FIG . 45 illustrates a further transaction ( Transfer 7 ) locations are remote locations that are geographically sepa
wherein bitcoin is transferred from the second wallet (Wallet rated from one another . The offline distribution module 72
B ) to a third wallet (Wallet C ) held by the second host may also be used to print one or more of the encrypted codes
computer system 16 in FIG . 1A . The user of the second user 65 for paper delivery to respective remote locations.
device 20 enters a bitcoin address (Bitcoin address 6 ) that is FIG . 47 illustrates functioning of the offline distribution
located in the third wallet (Wallet C ) and an amount of module 72 following distribution of the encrypted codes in
US 10,510,053 B2
17 18
FIG . 46. The offline distribution module 72 removes the been restored is the same private key 79 thatwas previously
private keys 79 of the Bitcoin address 80 of the vault 64. The associated with the Bitcoin address. Only upon confirmation
offline distribution module 72 also removes the private key from the block chain will it be possible to transfer the value
79 of the Bitcoin address 80 within the local storage 56 . from the vault 64 to the local register 60.
As shown in FIG . 48 , a local register 60 includes a 5 The local controller 58 restores the respective value of the
plurality of wallets 42 , one of which is shown. Thewallet 42 Bitcoin addresses 76 and 78 in the vault 64 to the Bitcoin
has a plurality of Bitcoin addresses 74 , 76 and 78 associated addresses 76 and 78 in the wallet 42. Because the values
therewith . Each Bitcoin address 74 , 76 and 78 has a respec have been restored to the Bitcoin addresses 76 and 78 in the
tive value and a respective private key. The local controller wallet 42 they are usable for transacting with other users .
58 transfers the entire value of the Bitcoin addresses 76 and 10 FIGS. 51a to 51d illustrate the use of a “ hot” wallet in
78 into the vault 64. The value relating to the Bitcoin address combination with “ cold storage ” . As shown in FIG . 51a , the
74 is not transferred into the vault 64. The local controller 58 wallet 42 has the Bitcoin addresses 74 , 76 , 78 and a further
calculates the total value of the Bitcoin addresses 76 and 78 Bitcoin address 98 , each having a respective value associ
that have been transferred into the vault 64 and records the ated therewith . The local storage 56 has first, second and
total value in the local storage 56 in association with the 15 third Bitcoin addresses 80A to 80C for first, second and third
Bitcoin address 80 . vaults 64A to 64C , respectively . The Bitcoin addresses 76
As shown in FIG . 49, following removal of the value of and 78 form a first transfer set that is selected for cold
the Bitcoin addresses 76 and 78 within the wallet 42 , the storage . The Bitcoin addresses 74 and 98 form a first
value of the Bitcoin addresses 76 and 78 are only held within transacting set . The values of the Bitcoin addresses 76 and
the vault 64 and the local storage 56. The private key 79 is 20 78 of the first transfer set are transferred into the first vault
only held in a split and encrypted form at the distributed 64A , as represented by “ Value” in the first vault 64A .
locations where the offline distribution module 72 in FIG . 46 The private key of the Bitcoin address 80A of the first
has distributed them to . Unless access can be gained to the vault 64A is then transferred into the local storage 56 and is
private key 79 that has now been split and distributed , it is stored in association with the first Bitcoin address 80A . As
not possible to access the value of the Bitcoin addresses 76 25 hereinbefore described with reference to FIG . 46 , the private
and 78. It is now possible for a user to which the wallet 42 key of the Bitcoin address 80A in the local storage 56 is then
is registered to use the Bitcoin address 74 for transacting split and distributed . As hereinbefore described with refer
with another user via the wallet management module 44 in ence to FIGS . 47 and 48 , the private keys of the Bitcoin
FIG . 1B . The Bitcoin addresses 76 and 78 are not usable by address 80 and the value of the Bitcoin address 76 and 78 are
the wallet managementmodule 44 for purposes of transact- 30 then removed . It is then not possible for a user of the wallet
ing with another user at this time because their values, 42 to use the Bitcoin address 76 and 78 for transacting with
within the wallet 42 , have been removed . another user. The user can still transact with another user
FIG . 50 shows how the private keys of the vault 64 and using the Bitcoin addresses 74 and 98 of the first transacting
the Bitcoin addresses 76 and 78 that were removed in FIG . set because their values are still associated with them within
46 are restored . Components that are provided for restora- 35 the wallet 42 .
tion include a plurality of restoration interfaces 82, 84 and FIG . 51b shows the Bitcoin addresses 76 and 78 within
86 , one or more decryption algorithms 88 , 90 and 92 and an the wallet 42 with their values removed and the Bitcoin
assembler 94. The holder of the first encrypted code (En address 80A within the local storage 56 with its private key
crypted Code 1 ) is called upon to enter the encrypted code removed . The private key of the Bitcoin address 80B of
into the restoration interface 82. The restoration interface 82 40 second vault 64B is transferred into the local storage 56 and
may for example be a web page with a field for entry of the associated with the second Bitcoin address 80B within the
first encrypted code . Alternatively, the restoration interface local storage 56. The private key of the second Bitcoin
82 may be an application programmable interface (API) and address 80B in the local storage 56 is split and distributed
the first encrypted code can be entered into the API with or and then removed from the local storage 56. The Bitcoin
without human involvement. 45 address 98 is selected as part of a second transfer set of one
In the given example , the second , third , fifth and sixth or more Bitcoin addresses . The value of the Bitcoin address
encrypted codes are not received at this time. The fourth and 98 is transferred from the wallet 42 into the second vault
seventh encrypted codes are received through the restoration 64B , as represented by “ Value ” in the second vault 64B . The
interfaces 84 and 86 , similar to the first encrypted code. value of the Bitcoin address 98 within the wallet 42 is thus
The decryption algorithm 88 decrypts the first encrypted 50 removed . The user of the wallet 42 can now not use the
code (Encrypted Code 1 ) into the first code (Code 1). In the Bitcoin address 98 for purposes of transacting with another
given example, the decryption algorithms 90 and 92 decrypt user because the value of the Bitcoin address 98 has been
the fourth and seventh encrypted codes ( Encrypted Code 4 removed from the wallet 42. The Bitcoin address 74 forms
and Encrypted Code 7 ) into the fourth and seventh codes part of a second transacting set thatmay include one ormore
(Code 4 and Code 7) respectively. In the given example , 55 another
three codes are the minimum number of codes that are
Bitcoin user
addresses
.
that can be used for transacting with
required in order to reassemble the private key 79. The FIG . 51c shows the Bitcoin address 98 having its value
minimum number of codes required for reassembly in FIG . removed and the second Bitcoin address 80B within the
48 is thus less than the total number of codes into which the local storage 56 having its private key removed .Atthis stage
private key 79 has been split in FIG . 46. The assembler 94 60 it may be desirable to restore the values of the Bitcoin
assembles the private key 79 when the minimum number of addresses 76 and 78. The private key of the first Bitcoin
codes has been received . address 80A within the local storage 56 is restored to the
The private key 79 of the Bitcoin address 80 in the local vault 64 as hereinbefore described with reference to FIG . 50 .
storage 56 is used to access the vault 64. The local controller The respective values of the Bitcoin addresses 76 and 78 are
58 then restores the private key 79 from the local storage 65 then restored from the vault 64A to the Bitcoin addresses 76
into the vault for association with the Bitcoin address. The and 78 in the wallet 42. Because the values of the Bitcoin
block chain will know whether the private key 79 that has addresses 76 and 78 are restored within the wallet 42, the
US 10,510,053 B2
19 20
Bitcoin addresses 76 and 78 of the first transfer set can , at FIG . 54 illustrates a network environment 136 that, in
least for the time being , be used together with the second addition to the first host computer system 14 , includes a
transacting set for transacting with another user . customer computer system 138 and a merchant computer
The same Bitcoin addresses 74 , 76 , 78 and 98 that are system 140 that are connected to one another over the
shown in FIG . 51a are also shown in FIGS. 516 and 51c . It 5 Internet 142. The merchant computer system 140 has an
should be understood that the Bitcoin addresses may change online store 144 and a website 146. The customer computer
between the figures. The system allows for the value that system 138 has a browser 148. A customer at the customer
computer system 138 can use the browser 148 to access the
was previously associated with one Bitcoin address to be website 136 over the Internet 142. The website 136 is then
restored to another Bitcoin address if necessary .
As shown in FIG . 51d , the first vault 64A is discarded 10 the
displayed on the browser 148. The website 136 allows for
customer to make purchase on the online store 144. The
after the value therein is restored . The first Bitcoin address
customer may, for example, purchase real goods, virtual
80A within the local storage 56 and the first vault 64A will goods
never be used again . or services from the online store 144.
The first host computer system 14 includes an application
TheTheprivate
Bitcoinkeyaddress 78 is selected
of the Bitcoin address as80Ca third
of thetransfer set. 15 programmable interface ( API) 150, a reference code gen
third vault
erator 152, a transaction processor 154 , a currency converter
64C is transferred into the local storage 56 and stored in 156 and merchant, and customer and host wallets 158, 160
association with a third Bitcoin address 80C . The value of and 162. The wallets 158 , 160 and 162 may be of the kind
the Bitcoin address 78 is transferred from the wallet 42 to the as hereinbefore described .
third vault 64C . The user of the wallet 42 can now not use 20 As shown in FIG . 55, the customer is shown a shopping
the Bitcoin address 78 for transacting with another user. The cart with several payment options, including " Pay with
Bitcoin address 76 forms part of a third transacting set that Credit Card ” and “Pay with bitcoin .” Prior to being dis
could include one or more Bitcoin addresses . The Bitcoin played the shopping cart , the customer has traveled through
address 76 can be used by the user of the wallet 42 for the shopping flow of the merchant computer system 140 , has
transacting with another user because the value of the 25 selected one or more items to be purchased and has selected
Bitcoin address 76 is associated therewith within the wallet a shopping or checkout cart, which causes the display of the
42. The second and third transacting sets can thus be used by view shown in FIG . 55. When the user selects the button
the user for transacting with another user. The second and “ Pay with bitcoin ” the merchant computer system 140, at
third transfer sets are unusable for transacting with another 166 , transmits an API call to the first host computer system
user because their private keys have been removed . 30 14. The API call includes a request for payment. The request
FIG . 52 illustrates how the local controller 58 (see FIGS . for payment includes an amount in a currency, in the present
46 to 50 ) maintains transaction sets of a wallet 42 within a example $ 14.00 , an order name (usually a number ), order
target range 101. Should all the Bitcoin addresses of the descriptions (usually items in the checkout cart in a single
wallet 42 have values associated therewith , the wallet 42 is line - item entry separated by commas ), and a success uni
said to be 100 % hot and 0 % cold . If all the Bitcoin addresses 35 form resource locater (URL) if desired (a page to which the
in a wallet 42 have their values removed , the wallet 42 is to customer is redirected at checkout if the order completes).
be 0 % hot and 100 % cold . The target range 101 for the total When the first host computer system 14 receives the API
bitcoin value within the wallet may for example be 5 % to call at 166 , the reference code generator 152 generates a
10 % hot. At 102 , the values of the first transacting set are unique reference code for the specific order. The reference
transferred from the wallet 42 as described with reference to 40 code is thus uniquely generated for each API call. The first
FIG . 51a . At 104 , the user transacts with someof the Bitcoin host computer system 14 then stores the reference code in its
addresses and the total value within the wallet 42 of the database . At 168 , the first host computer system 14 responds
Bitcoin addresses that are hot is reduced . At 106 , the values to the API call received at 166 to transmit the reference code
of the second transfer set are removed from the wallet 42 as to the merchant computer system 140. The merchant com
described with reference to FIG . 51b . At 108 , the values of 45 puter system 140 then receives the reference code as refer
the first transfer set are restored as described with reference ence code 170. The merchant computer system 140 stores
to FIG . 51c. At 110 , the user transacts and gains further the reference code as reference code 172 within its account
Bitcoin addresses for additional value within their wallet 42 . ing system 173 and associates the reference code 172 with
At 112 , values of the third transfer set are transferred out of the particular order shown in the shopping cart . The mer
the wallet 42 as described with reference to FIG . 51d . It can 50 chant computer system 140 also creates a URL 174. The
thus be seen that the local controller 58 in FIGS. 46 to 50 reference code 170 is used as a reference code 176 within the
adjusts the total value of bitcoin that is not within the target URL 174 when the URL 174 is created .
range 101. The local controller 58 typically recalculates the The firsthost computer system 14 creates a URL 180 that
hot/cold value ratio of each wallet on a daily basis and includes a reference code 182. The reference code 182 and
automatically adjusts the value to the target range 101. 55 the reference code 176 are the same.
FIG . 53 illustrates the use of an intermediate hot wallet The merchant computer system 140 at 178 redirects the
114 that is used to collect bitcoin values from a plurality of browser 148 (FIG . 54 ) using the URL 174. The browser is
wallets 42A to C. The wallet 42 A is that same as the wallet then redirected to the URL 180 of the first host computer
42 as described above. The wallet 42B has bitcoin addresses system 14 .
120 , 122, 124 and 126 associated therewith . The wallet 42C 60 The URL 180 may, for example , be the URL of a landing
has bitcoin addresses 128 , 130, 132 and 134 associated page, iFrame or modal window 184. The landing page,
therewith . Each wallet 42A , B or C is held within the target iFrame or modal window 184 presents checkout options to
range 101 in FIG . 50. The values of the bitcoin addresses 76 , the customer , including to pay with the customer wallet 160
78, 120 , 122 , 128 and 130 are identified for transfer to the if one exists, to pay with bitcoin using an external account,
vault 64A and are first transferred or " swept” to the inter- 65 or to create a wallet at the first host computer system 14 for
mediate hot wallet 114 from where they are transferred to the purposes of completing the purchase . In a different embodi
vault 64A . ment, instead of being automatically redirected by the mer
US 10,510,053 B2
21 22
chant computer system 140 to the first computer system 14 , computer system 14 communicates with a bank of the
the customer may be redirected to a different page at the merchant computer system 140. Such communication , at
merchant computer system 140, which will then contain a 204, results in transfer of funds from a host bank account
link for the customer to navigate to the landing page , iFrame 206 to a merchant bank account 208 .
or modal window 184 . 5 In the present example , the customer uses their customer
When the browser 148 of the customer computer system wallet 160 to transfer funds in the form of bitcoin from the
138 downloads the landing page, iFrame or modal window customer wallet 160 to the merchant wallet 158 and the
184 , the first host computer system 14 automatically gen funds are then transferred in the form of bitcoin from the
erates a bitcoin address 186 specifically for the customer's merchant wallet 158 to the host wallet 162. In another
order within the merchant wallet 158. 10 embodiment, the merchant wallet 158 can be bypassed such
The first host computer system 14 also creates a bitcoin that the customer transfers funds in the form of bitcoin from
price based on the price in local currency and displays the the customer wallet 160 directly into the host wallet 162. In
bitcoin price within the landing page/ iFrame or modal either embodiment the funds that are received by the host
window 184 within the browser 148. The graph illustrates a wallet 162 are used as a basis for calculating the amount of
fluctuating bitcoin to dollar exchange rate. In the present 15 money in local currency that is transferred by the bank
example , the exchange rate at minute ( is used at 190 to transfermodule 200 ,minus a fee that is held back by the first
calculate the exchange rate . The local currency price in the host computer system 14 for purposes of processing the
present example is $ 14.00 which gives a bitcoin price of transaction .
0.02 BTC . The price of 0.02 BTC that is based on the Referring again to FIG . 54, the API 150 sends and
exchange rate at minute 0 is maintained for a select period 20 receives API calls at 166 , 168 and the order status message
of time, in the present example 10 minutes, before it resets. in response to the send instruction 192 in FIG . 55. The
The customer may not wish to immediately send the bitcoin , currency converter 156 is responsible for receiving and
butmay do so at any time before the price resets atminute maintaining exchange rate for bitcoin to local currency and
10 and the exchange rate remains locked in and the bitcoin for calculating the bitcoin price based on the local currency
price thus remains unchanged at 0.02 BTC during that time. 25 price and the exchange rate at any particular moment in
An